Struct sdl2::surface::Surface

source ·
pub struct Surface<'a> { /* private fields */ }
Expand description

Holds a Rc<SurfaceContext>.

Note: If a Surface goes out of scope but it cloned its context, then the SDL_Surface will not be free’d until there are no more references to the SurfaceContext.

Implementations

Creates a new surface using a pixel format.

Example
use sdl2::pixels::PixelFormatEnum;
use sdl2::surface::Surface;

let surface = Surface::new(512, 512, PixelFormatEnum::RGB24).unwrap();

Creates a new surface using pixel masks.

Example
use sdl2::pixels::PixelFormatEnum;
use sdl2::surface::Surface;

let masks = PixelFormatEnum::RGB24.into_masks().unwrap();
let surface = Surface::from_pixelmasks(512, 512, masks).unwrap();

Creates a new surface from an existing buffer, using a pixel format.

Creates a new surface from an existing buffer, using pixel masks.

Creates a Software Canvas to allow rendering in the Surface itself. This Canvas will never be accelerated materially, so there is no performance change between Surface and Canvas coming from a Surface.

The only change is this case is that Canvas has a better API to draw stuff in the Surface in that case, but don’t expect any performance changes, there will be none.

Methods from Deref<Target = SurfaceRef>

Locks a surface so that the pixels can be directly accessed safely.

Locks a surface so that the pixels can be directly accessed safely.

Returns the Surface’s pixel buffer if the Surface doesn’t require locking (e.g. it’s a software surface).

Returns the Surface’s pixel buffer if the Surface doesn’t require locking (e.g. it’s a software surface).

Returns true if the Surface needs to be locked before accessing the Surface pixels.

The function will fail if the surface doesn’t have color key enabled.

The function will fail if the blend mode is not supported by SDL.

Sets the clip rectangle for the surface.

If the rectangle is None, clipping will be disabled.

Gets the clip rectangle for the surface.

Returns None if clipping is disabled.

Copies the surface into a new one that is optimized for blitting to a surface of a specified pixel format.

Performs surface blitting (surface copying).

Returns the final blit rectangle, if a dst_rect was provided.

Performs low-level surface blitting.

Unless you know what you’re doing, use blit() instead, which will clip the input rectangles. This function could crash if the rectangles aren’t pre-clipped to the surface, and is therefore unsafe.

Performs scaled surface bliting (surface copying).

Returns the final blit rectangle, if a dst_rect was provided.

Performs low-level scaled surface blitting.

Unless you know what you’re doing, use blit_scaled() instead, which will clip the input rectangles. This function could crash if the rectangles aren’t pre-clipped to the surface, and is therefore unsafe.

Trait Implementations

Converts this type into a mutable reference of the (usually inferred) input type.
Converts this type into a shared reference of the (usually inferred) input type.
The resulting type after dereferencing.
Dereferences the value.
Mutably dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.