Struct Scene

Source
pub struct Scene { /* private fields */ }
Expand description

The main datatype for rendering graphics.

A Scene stores a sequence of drawing commands, their context, and the associated resources, which can later be rendered.

Most users will render this using Renderer::render_to_texture.

Rendering from a Scene will not clear it, which should be done in a separate step, by calling Scene::reset.

If this is not done for a scene which is retained (to avoid allocations) between frames, this will likely quickly increase the complexity of the render result, leading to crashes or potential host system instability.

Implementations§

Source§

impl Scene

Source

pub fn new() -> Self

Creates a new scene.

Source

pub fn reset(&mut self)

Removes all content from the scene.

Source

pub fn bump_estimate(&self, transform: Option<Affine>) -> BumpAllocatorMemory

Available on crate feature bump_estimate only.

Tally up the bump allocator estimate for the current state of the encoding, taking into account an optional transform applied to the entire scene.

Source

pub fn encoding(&self) -> &Encoding

Returns the underlying raw encoding.

Source

pub fn encoding_mut(&mut self) -> &mut Encoding

Returns a mutable reference to the underlying raw encoding.

This can be used to more easily create invalid scenes, and so should be used with care.

Source

pub fn push_layer( &mut self, blend: impl Into<BlendMode>, alpha: f32, transform: Affine, clip: &impl Shape, )

Pushes a new layer clipped by the specified shape and composed with previous layers using the specified blend mode.

Every drawing command after this call will be clipped by the shape until the layer is popped.

However, the transforms are not saved or modified by the layer stack.

Clip layers (blend = Mix::Clip) should have an alpha value of 1.0. For an opacity group with non-unity alpha, specify Mix::Normal.

Source

pub fn pop_layer(&mut self)

Pops the current layer.

Source

pub fn draw_blurred_rounded_rect( &mut self, transform: Affine, rect: Rect, brush: Color, radius: f64, std_dev: f64, )

Draw a rounded rectangle blurred with a gaussian filter.

Source

pub fn draw_blurred_rounded_rect_in( &mut self, shape: &impl Shape, transform: Affine, rect: Rect, brush: Color, radius: f64, std_dev: f64, )

Draw a rounded rectangle blurred with a gaussian filter in shape.

For performance reasons, shape should not extend more than approximately 2.5 times std_dev away from the edges of rect (as any such points will not be perceptably painted to, but calculations will still be performed for them).

This method effectively draws the blurred rounded rectangle clipped to the given shape. If just the blurred rounded rectangle is desired without clipping, use the simpler Self::draw_blurred_rounded_rect. For many users, that method will be easier to use.

Source

pub fn fill<'b>( &mut self, style: Fill, transform: Affine, brush: impl Into<BrushRef<'b>>, brush_transform: Option<Affine>, shape: &impl Shape, )

Fills a shape using the specified style and brush.

Source

pub fn stroke<'b>( &mut self, style: &Stroke, transform: Affine, brush: impl Into<BrushRef<'b>>, brush_transform: Option<Affine>, shape: &impl Shape, )

Strokes a shape using the specified style and brush.

Source

pub fn draw_image(&mut self, image: &Image, transform: Affine)

Draws an image at its natural size with the given transform.

Source

pub fn draw_glyphs(&mut self, font: &Font) -> DrawGlyphs<'_>

Returns a builder for encoding a glyph run.

Source

pub fn append(&mut self, other: &Self, transform: Option<Affine>)

Appends a child scene.

The given transform is applied to every transform in the child. This is an O(N) operation.

Trait Implementations§

Source§

impl Clone for Scene

Source§

fn clone(&self) -> Scene

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for Scene

Source§

fn default() -> Scene

Returns the “default value” for a type. Read more
Source§

impl From<Encoding> for Scene

Source§

fn from(encoding: Encoding) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Scene

§

impl !RefUnwindSafe for Scene

§

impl Send for Scene

§

impl Sync for Scene

§

impl Unpin for Scene

§

impl !UnwindSafe for Scene

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,