pub struct Texture<'r> { /* private fields */ }
Expand description
A texture for a rendering context.
Every Texture is owned by a TextureCreator
. Internally, a texture is destroyed via its Drop
implementation. A texture can only be used by the Canvas
it was originally created from, it
is undefined behavior otherwise.
Implementations§
source§impl<'r> Texture<'r>
impl<'r> Texture<'r>
sourcepub fn query(&self) -> TextureQuery
pub fn query(&self) -> TextureQuery
Queries the attributes of the texture.
sourcepub fn set_color_mod(&mut self, red: u8, green: u8, blue: u8)
pub fn set_color_mod(&mut self, red: u8, green: u8, blue: u8)
Sets an additional color value multiplied into render copy operations.
sourcepub fn color_mod(&self) -> (u8, u8, u8)
pub fn color_mod(&self) -> (u8, u8, u8)
Gets the additional color value multiplied into render copy operations.
sourcepub fn set_alpha_mod(&mut self, alpha: u8)
pub fn set_alpha_mod(&mut self, alpha: u8)
Sets an additional alpha value multiplied into render copy operations.
sourcepub fn alpha_mod(&self) -> u8
pub fn alpha_mod(&self) -> u8
Gets the additional alpha value multiplied into render copy operations.
sourcepub fn set_blend_mode(&mut self, blend: BlendMode)
pub fn set_blend_mode(&mut self, blend: BlendMode)
Sets the blend mode used for drawing operations (Fill and Line).
sourcepub fn blend_mode(&self) -> BlendMode
pub fn blend_mode(&self) -> BlendMode
Gets the blend mode used for texture copy operations.
sourcepub fn update<R>(
&mut self,
rect: R,
pixel_data: &[u8],
pitch: usize,
) -> Result<(), UpdateTextureError>
pub fn update<R>( &mut self, rect: R, pixel_data: &[u8], pitch: usize, ) -> Result<(), UpdateTextureError>
Updates the given texture rectangle with new pixel data.
pitch
is the number of bytes in a row of pixel data, including padding
between lines
- If
rect
isNone
, the entire texture is updated.
sourcepub fn update_yuv<R>(
&mut self,
rect: R,
y_plane: &[u8],
y_pitch: usize,
u_plane: &[u8],
u_pitch: usize,
v_plane: &[u8],
v_pitch: usize,
) -> Result<(), UpdateTextureYUVError>
pub fn update_yuv<R>( &mut self, rect: R, y_plane: &[u8], y_pitch: usize, u_plane: &[u8], u_pitch: usize, v_plane: &[u8], v_pitch: usize, ) -> Result<(), UpdateTextureYUVError>
Updates a rectangle within a planar YV12 or IYUV texture with new pixel data.
sourcepub fn with_lock<F, R, R2>(&mut self, rect: R2, func: F) -> Result<R, String>
pub fn with_lock<F, R, R2>(&mut self, rect: R2, func: F) -> Result<R, String>
Locks the texture for write-only pixel access. The texture must have been created with streaming access.
F
is a function that is passed the write-only texture buffer,
and the pitch of the texture (size of a row in bytes).
§Remarks
As an optimization, the pixels made available for editing don’t necessarily contain the old texture data. This is a write-only operation, and if you need to keep a copy of the texture data you should do that at the application level.
sourcepub unsafe fn gl_bind_texture(&mut self) -> (f32, f32)
pub unsafe fn gl_bind_texture(&mut self) -> (f32, f32)
Binds an OpenGL/ES/ES2 texture to the current context for use with when rendering OpenGL primitives directly.
sourcepub unsafe fn gl_unbind_texture(&mut self)
pub unsafe fn gl_unbind_texture(&mut self)
Unbinds an OpenGL/ES/ES2 texture from the current context.
sourcepub fn gl_with_bind<R, F: FnOnce(f32, f32) -> R>(&mut self, f: F) -> R
pub fn gl_with_bind<R, F: FnOnce(f32, f32) -> R>(&mut self, f: F) -> R
Binds and unbinds an OpenGL/ES/ES2 texture from the current context.