Struct sdl2::surface::Surface [] [src]

pub struct Surface<'a> { /* fields omitted */ }

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.

Methods

impl<'a> Surface<'a>
[src]

[src]

[src]

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();

[src]

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();

[src]

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

[src]

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

[src]

[src]

[src]

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.

[src]

Methods from Deref<Target = SurfaceRef>

[src]

[src]

[src]

[src]

[src]

[src]

[src]

[src]

[src]

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

[src]

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

[src]

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

[src]

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

[src]

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

[src]

[src]

[src]

[src]

[src]

[src]

[src]

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

[src]

[src]

[src]

[src]

[src]

[src]

[src]

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

[src]

[src]

Sets the clip rectangle for the surface.

If the rectangle is None, clipping will be disabled.

[src]

Gets the clip rectangle for the surface.

Returns None if clipping is disabled.

[src]

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

[src]

Performs surface blitting (surface copying).

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

[src]

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.

[src]

Performs scaled surface bliting (surface copying).

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

[src]

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

impl<'a> Deref for Surface<'a>
[src]

The resulting type after dereferencing.

[src]

Dereferences the value.

impl<'a> DerefMut for Surface<'a>
[src]

[src]

Mutably dereferences the value.

impl<'a> AsRef<SurfaceRef> for Surface<'a>
[src]

[src]

Performs the conversion.

impl<'a> AsMut<SurfaceRef> for Surface<'a>
[src]

[src]

Performs the conversion.

impl<'s> RenderTarget for Surface<'s>
[src]