pub trait Surface {
    // Required method
    fn as_ptr(&self) -> NonNull<RawSurface>;

    // Provided methods
    fn cloned(&self) -> Cloned { ... }
    fn clipped(self, area: Rect) -> Clipped<Self>
       where Self: Sized { ... }
    fn blend(self, mode: BlendMode) -> Blended<Self>
       where Self: Sized { ... }
    fn alpha_mod(self, alpha: u8) -> AlphaMod<Self>
       where Self: Sized { ... }
    fn color_mod(self, color: Rgb) -> ColorMod<Self>
       where Self: Sized { ... }
    fn fill_rect(&self, area: Option<Rect>, color: Pixel) { ... }
    fn fill_rects(&self, areas: impl IntoIterator<Item = Rect>, color: Pixel) { ... }
    fn set_palette(&self, palette: &Palette) { ... }
    fn copy_to<S: Surface>(&self, src_area: Rect, dst: &S, dst_pos: Point) { ... }
    fn rle(&mut self) -> Rle<'_, Self>
       where Self: Sized { ... }
}
Expand description

A trait that provides flexible modification methods.

Required Methods§

source

fn as_ptr(&self) -> NonNull<RawSurface>

Returns the raw non-null pointer.

Provided Methods§

source

fn cloned(&self) -> Cloned

Clones the surface.

source

fn clipped(self, area: Rect) -> Clipped<Self>
where Self: Sized,

Clips the surface by area.

source

fn blend(self, mode: BlendMode) -> Blended<Self>
where Self: Sized,

Changes blend mode of the surface.

source

fn alpha_mod(self, alpha: u8) -> AlphaMod<Self>
where Self: Sized,

Modifies the alpha of the surface.

source

fn color_mod(self, color: Rgb) -> ColorMod<Self>
where Self: Sized,

Modifies the color of the surface.

source

fn fill_rect(&self, area: Option<Rect>, color: Pixel)

Fills in the area with the color, or whole if area is None.

source

fn fill_rects(&self, areas: impl IntoIterator<Item = Rect>, color: Pixel)

Fills in the areas with the color.

source

fn set_palette(&self, palette: &Palette)

Overwrites the palette of the surface.

source

fn copy_to<S: Surface>(&self, src_area: Rect, dst: &S, dst_pos: Point)

Copies src_area area in the surface into dst_pos on another surface.

source

fn rle(&mut self) -> Rle<'_, Self>
where Self: Sized,

Run-length encodes the surface.

Object Safety§

This trait is not object safe.

Implementors§