Struct glium::texture::compressed_srgb_texture2d::CompressedSrgbTexture2dMipmap [] [src]

pub struct CompressedSrgbTexture2dMipmap<'t>(_, _);

Represents a single mipmap level of a CompressedSrgbTexture2d.

Can be obtained by calling CompressedSrgbTexture2d::mipmap(), CompressedSrgbTexture2d::main_level(), CompressedSrgbTexture2dLayer::mipmap() or CompressedSrgbTexture2dLayer::main_level().

Methods

impl<'t> CompressedSrgbTexture2dMipmap<'t>

fn write<'a, T>(&self, rect: Rect, data: T) where T: Texture2dDataSource<'a>

Uploads some data in the texture level.

Note that this may cause a synchronization if you use the texture right before or right after this call.

Panic

Panics if the the dimensions of data don't match the Rect.

Calling this for compressed textures will result in a panic of type INVALID_OPERATION if Rect::bottom or Rect::width is not equal to 0 (border). In addition, the contents of any texel outside the region modified by such a call are undefined. These restrictions may be relaxed for specific compressed internal formats whose images are easily edited.

fn write_compressed_data(&self, rect: Rect, data: &[u8], width: u32, height: u32, format: CompressedSrgbFormat) -> Result<(), ()>

Uploads some data in the texture level by using a compressed format as input.

Note that this may cause a synchronization if you use the texture right before or right after this call.

Panic

Panics if the the dimensions of data don't match the Rect.

Calling this will result in a panic of type INVALID_OPERATION error if Rect::width or Rect::height is not equal to 0 (border), or if the written dimensions do not match the original texture dimensions. The contents of any texel outside the region modified by the call are undefined. These restrictions may be relaxed for specific compressed internal formats whose images are easily edited.

fn read_compressed_data(&self) -> Option<(CompressedSrgbFormat, Vec<u8>)>

Reads the content of the texture level to RAM without decompressing it before.

You should avoid doing this at all cost during performance-critical operations (for example, while you're drawing).

Returns the compressed format of the texture and the compressed data, gives None when the internal compression format is generic or unknown.

fn get_texture(&self) -> &'t CompressedSrgbTexture2d

Returns the corresponding texture.

fn get_level(&self) -> u32

Returns the texture level.

fn first_layer(&self) -> CompressedSrgbTexture2dLayerMipmap<'t>

Access the first layer of this texture.

fn layer(&self, layer: u32) -> Option<CompressedSrgbTexture2dLayerMipmap<'t>>

Access a single layer of this texture.

Methods from Deref<Target=TextureAnyMipmap<'a>>

fn get_width(&self) -> u32

Returns the width of the mipmap.

fn get_height(&self) -> Option<u32>

Returns the height of the mipmap.

fn get_depth(&self) -> Option<u32>

Returns the depth of the mipmap.

fn get_samples(&self) -> Option<u32>

Returns the number of samples of the texture.

fn get_texture(&self) -> &'a TextureAny

Returns the texture.

fn get_level(&self) -> u32

Returns the level of the texture.

fn first_layer(&self) -> TextureAnyLayerMipmap<'a>

Returns a structure that represents the first layer of this mipmap of the texture. All textures have a first layer.

fn layer(&self, layer: u32) -> Option<TextureAnyLayerMipmap<'a>>

Returns a structure that represents a specific layer of this mipmap of the texture.

Non-array textures have only one layer. The number of layers can be queried with get_array_size.

Returns None if out of range.

fn raw_upload_from_pixel_buffer<P>(&self, source: BufferSlice<[P]>, x: Range<u32>, y: Range<u32>, z: Range<u32>) where P: PixelValue

Uploads data to the texture from a buffer.

Panic

Panics if the offsets and dimensions are outside the boundaries of the texture. Panics if the buffer is not big enough to hold the data.

fn raw_upload_from_pixel_buffer_inverted<P>(&self, source: BufferSlice<[P]>, x: Range<u32>, y: Range<u32>, z: Range<u32>) where P: PixelValue

Uploads data to the texture from a buffer. The R, G and B components are flipped.

Panic

Panics if the offsets and dimensions are outside the boundaries of the texture. Panics if the buffer is not big enough to hold the data.

Trait Implementations

impl<'a> Deref for CompressedSrgbTexture2dMipmap<'a>

type Target = TextureAnyMipmap<'a>

fn deref(&self) -> &TextureAnyMipmap<'a>

Derived Implementations

impl<'t> Clone for CompressedSrgbTexture2dMipmap<'t>

fn clone(&self) -> CompressedSrgbTexture2dMipmap<'t>

fn clone_from(&mut self, source: &Self)

impl<'t> Copy for CompressedSrgbTexture2dMipmap<'t>