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
impl Scene
Sourcepub fn bump_estimate(&self, transform: Option<Affine>) -> BumpAllocatorMemory
Available on crate feature bump_estimate
only.
pub fn bump_estimate(&self, transform: Option<Affine>) -> BumpAllocatorMemory
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.
Sourcepub fn encoding_mut(&mut self) -> &mut Encoding
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.
Sourcepub fn push_layer(
&mut self,
blend: impl Into<BlendMode>,
alpha: f32,
transform: Affine,
clip: &impl Shape,
)
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
.
Sourcepub fn draw_blurred_rounded_rect(
&mut self,
transform: Affine,
rect: Rect,
brush: Color,
radius: f64,
std_dev: f64,
)
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.
Sourcepub fn draw_blurred_rounded_rect_in(
&mut self,
shape: &impl Shape,
transform: Affine,
rect: Rect,
brush: Color,
radius: f64,
std_dev: f64,
)
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.
Sourcepub fn fill<'b>(
&mut self,
style: Fill,
transform: Affine,
brush: impl Into<BrushRef<'b>>,
brush_transform: Option<Affine>,
shape: &impl Shape,
)
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.
Sourcepub fn stroke<'b>(
&mut self,
style: &Stroke,
transform: Affine,
brush: impl Into<BrushRef<'b>>,
brush_transform: Option<Affine>,
shape: &impl Shape,
)
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.
Sourcepub fn draw_image(&mut self, image: &Image, transform: Affine)
pub fn draw_image(&mut self, image: &Image, transform: Affine)
Draws an image at its natural size with the given transform.
Sourcepub fn draw_glyphs(&mut self, font: &Font) -> DrawGlyphs<'_>
pub fn draw_glyphs(&mut self, font: &Font) -> DrawGlyphs<'_>
Returns a builder for encoding a glyph run.