Struct glium::texture::compressed_texture2d::CompressedTexture2dMipmap
[−]
[src]
pub struct CompressedTexture2dMipmap<'t>(_, _);
Represents a single mipmap level of a CompressedTexture2d
.
Can be obtained by calling CompressedTexture2d::mipmap()
, CompressedTexture2d::main_level()
,
CompressedTexture2dLayer::mipmap()
or CompressedTexture2dLayer::main_level()
.
Methods
impl<'t> CompressedTexture2dMipmap<'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: CompressedFormat) -> 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<(CompressedFormat, 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 CompressedTexture2d
Returns the corresponding texture.
fn get_level(&self) -> u32
Returns the texture level.
fn first_layer(&self) -> CompressedTexture2dLayerMipmap<'t>
Access the first layer of this texture.
fn layer(&self, layer: u32) -> Option<CompressedTexture2dLayerMipmap<'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.