pub struct TextureDataMut<'a> { /* private fields */ }Expand description
A guarded mutable view of a single ImTextureData.
This exists because the texture list is exposed from a shared &DrawData reference in order to
keep renderer APIs ergonomic, but the list still needs to be mutated by the backend. The guard
ensures at runtime that only one mutable view is alive at a time, preventing Rust aliasing UB.
Methods from Deref<Target = TextureData>§
Sourcepub fn as_raw(&self) -> *const ImTextureData
pub fn as_raw(&self) -> *const ImTextureData
Get the raw pointer to the underlying ImTextureData
Sourcepub fn as_raw_mut(&mut self) -> *mut ImTextureData
pub fn as_raw_mut(&mut self) -> *mut ImTextureData
Get the raw mutable pointer to the underlying ImTextureData
Sourcepub fn status(&self) -> TextureStatus
pub fn status(&self) -> TextureStatus
Get the current status of this texture
Sourcepub fn set_status(&mut self, status: TextureStatus)
pub fn set_status(&mut self, status: TextureStatus)
Set the status of this texture
This should only be called by renderer backends after handling a request.
Sourcepub fn backend_user_data(&self) -> *mut c_void
pub fn backend_user_data(&self) -> *mut c_void
Get the backend user data
Sourcepub fn set_backend_user_data(&mut self, data: *mut c_void)
pub fn set_backend_user_data(&mut self, data: *mut c_void)
Set the backend user data
Sourcepub fn set_tex_id(&mut self, tex_id: TextureId)
pub fn set_tex_id(&mut self, tex_id: TextureId)
Set the texture ID
This should only be called by renderer backends after creating or destroying the texture.
Sourcepub fn format(&self) -> TextureFormat
pub fn format(&self) -> TextureFormat
Get the texture format
Sourcepub fn bytes_per_pixel(&self) -> i32
pub fn bytes_per_pixel(&self) -> i32
Get the bytes per pixel
Sourcepub fn unused_frames(&self) -> i32
pub fn unused_frames(&self) -> i32
Get the number of unused frames
Sourcepub fn use_colors(&self) -> bool
pub fn use_colors(&self) -> bool
Check if the texture uses colors (rather than just white + alpha)
Sourcepub fn want_destroy_next_frame(&self) -> bool
pub fn want_destroy_next_frame(&self) -> bool
Check if the texture is queued for destruction next frame
Sourcepub fn pixels(&self) -> Option<&[u8]>
pub fn pixels(&self) -> Option<&[u8]>
Get the pixel data
Returns None if no pixel data is available.
Sourcepub fn used_rect(&self) -> TextureRect
pub fn used_rect(&self) -> TextureRect
Get the bounding box of all used pixels in the texture
Sourcepub fn update_rect(&self) -> TextureRect
pub fn update_rect(&self) -> TextureRect
Get the bounding box of all queued updates
Sourcepub fn updates(&self) -> impl Iterator<Item = TextureRect> + '_
pub fn updates(&self) -> impl Iterator<Item = TextureRect> + '_
Iterate over queued update rectangles (copying to safe TextureRect)
Sourcepub fn pixels_at(&self, x: i32, y: i32) -> Option<&[u8]>
pub fn pixels_at(&self, x: i32, y: i32) -> Option<&[u8]>
Get the pixel data at a specific position
Returns None if no pixel data is available or coordinates are out of bounds.
Sourcepub fn create(&mut self, format: TextureFormat, width: i32, height: i32)
pub fn create(&mut self, format: TextureFormat, width: i32, height: i32)
Create a new texture with the specified format and dimensions
This allocates pixel data and sets the status to WantCreate.
Sourcepub fn destroy_pixels(&mut self)
pub fn destroy_pixels(&mut self)
Destroy the pixel data
This frees the CPU-side pixel data but doesn’t affect the GPU texture.
Sourcepub fn set_data(&mut self, data: &[u8])
pub fn set_data(&mut self, data: &[u8])
Set the pixel data for the texture
This copies the provided data into the texture’s pixel buffer.
Sourcepub fn set_height(&mut self, height: u32)
pub fn set_height(&mut self, height: u32)
Set the height of the texture
Sourcepub fn set_format(&mut self, format: TextureFormat)
pub fn set_format(&mut self, format: TextureFormat)
Set the format of the texture