Struct sdl2::surface::SurfaceRef

source ·
pub struct SurfaceRef { /* private fields */ }
Expand description

An unsized Surface reference.

This type is used whenever Surfaces need to be borrowed from the SDL library, without concern for freeing the Surface.

Implementations§

source§

impl SurfaceRef

source

pub unsafe fn from_ll<'a>(raw: *const SDL_Surface) -> &'a SurfaceRef

source

pub unsafe fn from_ll_mut<'a>(raw: *mut SDL_Surface) -> &'a mut SurfaceRef

source

pub fn raw(&self) -> *mut SDL_Surface

source

pub fn width(&self) -> u32

source

pub fn height(&self) -> u32

source

pub fn pitch(&self) -> u32

source

pub fn size(&self) -> (u32, u32)

source

pub fn rect(&self) -> Rect

Gets the rect of the surface.

source

pub fn pixel_format(&self) -> PixelFormat

source

pub fn pixel_format_enum(&self) -> PixelFormatEnum

source

pub fn with_lock<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

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

source

pub fn with_lock_mut<R, F: FnOnce(&mut [u8]) -> R>(&mut self, f: F) -> R

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

source

pub fn without_lock(&self) -> Option<&[u8]>

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

source

pub fn without_lock_mut(&mut self) -> Option<&mut [u8]>

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

source

pub fn must_lock(&self) -> bool

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

source

pub fn save_bmp_rw(&self, rwops: &mut RWops<'_>) -> Result<(), String>

source

pub fn save_bmp<P: AsRef<Path>>(&self, path: P) -> Result<(), String>

source

pub fn set_palette(&mut self, palette: &Palette) -> Result<(), String>

source

pub fn enable_RLE(&mut self)

source

pub fn disable_RLE(&mut self)

source

pub fn set_color_key( &mut self, enable: bool, color: Color ) -> Result<(), String>

source

pub fn color_key(&self) -> Result<Color, String>

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

source

pub fn set_color_mod(&mut self, color: Color)

source

pub fn color_mod(&self) -> Color

source

pub fn fill_rect<R>(&mut self, rect: R, color: Color) -> Result<(), String>
where R: Into<Option<Rect>>,

source

pub fn fill_rects(&mut self, rects: &[Rect], color: Color) -> Result<(), String>

source

pub fn set_alpha_mod(&mut self, alpha: u8)

source

pub fn alpha_mod(&self) -> u8

source

pub fn set_blend_mode(&mut self, mode: BlendMode) -> Result<(), String>

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

source

pub fn blend_mode(&self) -> BlendMode

source

pub fn set_clip_rect<R>(&mut self, rect: R) -> bool
where R: Into<Option<Rect>>,

Sets the clip rectangle for the surface.

If the rectangle is None, clipping will be disabled.

source

pub fn clip_rect(&self) -> Option<Rect>

Gets the clip rectangle for the surface.

Returns None if clipping is disabled.

source

pub fn convert(&self, format: &PixelFormat) -> Result<Surface<'static>, String>

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

source

pub fn convert_format( &self, format: PixelFormatEnum ) -> Result<Surface<'static>, String>

Copies the surface into a new one of a specified pixel format.

source

pub fn blit<R1, R2>( &self, src_rect: R1, dst: &mut SurfaceRef, dst_rect: R2 ) -> Result<Option<Rect>, String>
where R1: Into<Option<Rect>>, R2: Into<Option<Rect>>,

Performs surface blitting (surface copying).

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

source

pub unsafe fn lower_blit<R1, R2>( &self, src_rect: R1, dst: &mut SurfaceRef, dst_rect: R2 ) -> Result<(), String>
where R1: Into<Option<Rect>>, R2: Into<Option<Rect>>,

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.

source

pub unsafe fn soft_stretch_linear<R1, R2>( &self, src_rect: R1, dst: &mut SurfaceRef, dst_rect: R2 ) -> Result<Option<Rect>, String>
where R1: Into<Option<Rect>>, R2: Into<Option<Rect>>,

Performs bilinear scaling between two surfaces of the same format, 32BPP.

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

source

pub fn blit_scaled<R1, R2>( &self, src_rect: R1, dst: &mut SurfaceRef, dst_rect: R2 ) -> Result<Option<Rect>, String>
where R1: Into<Option<Rect>>, R2: Into<Option<Rect>>,

Performs scaled surface bliting (surface copying).

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

source

pub unsafe fn lower_blit_scaled<R1, R2>( &self, src_rect: R1, dst: &mut SurfaceRef, dst_rect: R2 ) -> Result<(), String>
where R1: Into<Option<Rect>>, R2: Into<Option<Rect>>,

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§

source§

impl<'a> AsMut<SurfaceRef> for Surface<'a>

source§

fn as_mut(&mut self) -> &mut SurfaceRef

Converts this type into a mutable reference of the (usually inferred) input type.
source§

impl<'a> AsRef<SurfaceRef> for Surface<'a>

source§

fn as_ref(&self) -> &SurfaceRef

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl AsRef<SurfaceRef> for SurfaceRef

source§

fn as_ref(&self) -> &SurfaceRef

Converts this type into a shared reference of the (usually inferred) input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.