pub struct OwnedTextureData { /* private fields */ }Expand description
Owned texture data managed by Dear ImGui.
This owns an ImTextureData instance allocated by Dear ImGui (C++) and will
destroy it on drop. It dereferences to TextureData so you can call the
same APIs as on borrowed texture data (e.g. items returned by
DrawData::textures_mut()).
Implementations§
Source§impl OwnedTextureData
impl OwnedTextureData
Sourcepub fn into_raw(self) -> *mut ImTextureData
pub fn into_raw(self) -> *mut ImTextureData
Leak the underlying ImTextureData* without destroying it.
Sourcepub unsafe fn from_raw_owned(raw: *mut ImTextureData) -> Self
pub unsafe fn from_raw_owned(raw: *mut ImTextureData) -> Self
Take ownership of a raw ImTextureData*.
§Safety
rawmust be a valid pointer returned byImTextureData_ImTextureData().- The caller must ensure no other owner will call
ImTextureData_destroy(raw).
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 unique_id(&self) -> ManagedTextureId
pub fn unique_id(&self) -> ManagedTextureId
Get this managed texture’s stable ImGui identity.
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 texture_ref(&mut self) -> TextureRef<'_>
pub fn texture_ref(&mut self) -> TextureRef<'_>
Get the current texture reference for this managed texture.
Sourcepub fn format(&self) -> TextureFormat
pub fn format(&self) -> TextureFormat
Get the texture format
Sourcepub fn bytes_per_pixel(&self) -> usize
pub fn bytes_per_pixel(&self) -> usize
Get the bytes per pixel
Sourcepub fn unused_frames(&self) -> usize
pub fn unused_frames(&self) -> usize
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: u32, y: u32) -> Option<&[u8]>
pub fn pixels_at(&self, x: u32, y: u32) -> 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: u32, height: u32)
pub fn create(&mut self, format: TextureFormat, width: u32, height: u32)
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