pub enum TextureData {
RU8(Vec<u8>),
RgU8(Vec<[u8; 2]>),
RgbU8(Vec<[u8; 3]>),
RgbaU8(Vec<[u8; 4]>),
RF16(Vec<f16>),
RgF16(Vec<[f16; 2]>),
RgbF16(Vec<[f16; 3]>),
RgbaF16(Vec<[f16; 4]>),
RF32(Vec<f32>),
RgF32(Vec<[f32; 2]>),
RgbF32(Vec<[f32; 3]>),
RgbaF32(Vec<[f32; 4]>),
}Expand description
The pixel/texel data for a Texture2D or Texture3D.
If 2D data, the data array should start with the top left texel and then one row at a time.
The indices (row, column) into the 2D data would look like
[
(0, 0), (1, 0), .., // First row
(0, 1), (1, 1), .., // Second row
..
]If 3D data, the data array would look like the 2D data, one layer/image at a time.
The indices (row, column, layer) into the 3D data would look like
[
(0, 0, 0), (1, 0, 0), .., // First row in first layer
(0, 1, 0), (1, 1, 0), .., // Second row in first layer
..
(0, 0, 1), (1, 0, 1), .., // First row in second layer
(0, 1, 1), (1, 1, 1), .., // Second row in second layer
..
]Variants§
RU8(Vec<u8>)
One byte in the red channel.
RgU8(Vec<[u8; 2]>)
One byte in the red and green channel.
RgbU8(Vec<[u8; 3]>)
One byte in the red, green and blue channel.
RgbaU8(Vec<[u8; 4]>)
One byte in the red, green, blue and alpha channel.
RF16(Vec<f16>)
16-bit float in the red channel.
RgF16(Vec<[f16; 2]>)
16-bit float in the red and green channel.
RgbF16(Vec<[f16; 3]>)
16-bit float in the red, green and blue channel.
RgbaF16(Vec<[f16; 4]>)
16-bit float in the red, green, blue and alpha channel.
RF32(Vec<f32>)
32-bit float in the red channel.
RgF32(Vec<[f32; 2]>)
32-bit float in the red and green channel.
RgbF32(Vec<[f32; 3]>)
32-bit float in the red, green and blue channel.
RgbaF32(Vec<[f32; 4]>)
32-bit float in the red, green, blue and alpha channel.
Implementations§
Source§impl TextureData
impl TextureData
Sourcepub fn to_linear_srgb(&mut self)
pub fn to_linear_srgb(&mut self)
Converts the texture data to linear sRGB color space if the data is either TextureData::RgbU8 (assuming sRGB color space) or TextureData::RgbaU8 (assuming sRGB color space with an alpha channel). Does nothing if the data is any other data type.
Sourcepub fn to_color(&mut self)
pub fn to_color(&mut self)
Converts the texture data to color TextureData::RgbU8 if the data is TextureData::RU8 (assuming gray scale colors). Does nothing if the data is any other data type.
Trait Implementations§
Source§impl Clone for TextureData
impl Clone for TextureData
Source§fn clone(&self) -> TextureData
fn clone(&self) -> TextureData
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TextureData
impl Debug for TextureData
Source§impl<'de> Deserialize<'de> for TextureData
impl<'de> Deserialize<'de> for TextureData
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for TextureData
impl PartialEq for TextureData
Source§impl Serialize for TextureData
impl Serialize for TextureData
impl StructuralPartialEq for TextureData
Auto Trait Implementations§
impl Freeze for TextureData
impl RefUnwindSafe for TextureData
impl Send for TextureData
impl Sync for TextureData
impl Unpin for TextureData
impl UnwindSafe for TextureData
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more