gdk4::prelude

Trait TextureExtManual

Source
pub trait TextureExtManual:
    Sealed
    + IsA<Texture>
    + 'static {
    // Provided method
    fn download(&self, data: &mut [u8], stride: usize) { ... }
}
Expand description

Trait containing manually implemented methods of Texture.

Provided Methods§

Source

fn download(&self, data: &mut [u8], stride: usize)

Downloads the @self into local memory.

This may be an expensive operation, as the actual texture data may reside on a GPU or on a remote display server.

The data format of the downloaded data is equivalent to CAIRO_FORMAT_ARGB32, so every downloaded pixel requires 4 bytes of memory.

Downloading a texture into a Cairo image surface: ⚠️ The following code is in c ⚠️

surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
                                      gdk_texture_get_width (texture),
                                      gdk_texture_get_height (texture));
gdk_texture_download (texture,
                      cairo_image_surface_get_data (surface),
                      cairo_image_surface_get_stride (surface));
cairo_surface_mark_dirty (surface);

For more flexible download capabilities, see TextureDownloader.

§data

pointer to enough memory to be filled with the downloaded data of @self

§stride

rowstride in bytes

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§