Struct PaintCtx
pub struct PaintCtx<'a> {
pub scene: &'a mut Scene,
pub transform: Affine,
pub text: &'a mut TextRenderer,
pub theme: &'a Theme,
}Expand description
The renderer state one immediate-mode paint pass threads through its helpers.
A helper takes &mut PaintCtx plus the geometry and model it paints, instead
of repeating scene, transform, text renderer and theme in every signature.
Fields§
§scene: &'a mut Scene§transform: Affine§text: &'a mut TextRenderer§theme: &'a ThemeImplementations§
§impl<'a> PaintCtx<'a>
impl<'a> PaintCtx<'a>
pub fn new( scene: &'a mut Scene, transform: Affine, text: &'a mut TextRenderer, theme: &'a Theme, ) -> PaintCtx<'a>
pub fn with_transform(&mut self, transform: Affine) -> PaintCtx<'_>
pub fn with_transform(&mut self, transform: Affine) -> PaintCtx<'_>
Borrow the same state with transform in place of the current one.
pub fn translated(&mut self, offset: Vec2) -> PaintCtx<'_>
pub fn translated(&mut self, offset: Vec2) -> PaintCtx<'_>
Borrow the same state with the current transform followed by a translation.
pub fn fill_rect(&mut self, rect: Rect, color: AlphaColor<Srgb>)
pub fn stroke_rect(&mut self, rect: Rect, color: AlphaColor<Srgb>, width: f64)
pub fn fill_round(&mut self, rect: Rect, radius: f64, color: AlphaColor<Srgb>)
pub fn stroke_round( &mut self, rect: Rect, radius: f64, color: AlphaColor<Srgb>, width: f64, )
pub fn text(
&mut self,
text: &str,
style: &TextStyle,
color: AlphaColor<Srgb>,
origin: Point,
max_width: Option<f32>,
)
pub fn text( &mut self, text: &str, style: &TextStyle, color: AlphaColor<Srgb>, origin: Point, max_width: Option<f32>, )
Paint text in style with its layout origin at origin, wrapping at
max_width when one is given.
pub fn text_role(
&mut self,
text: &str,
role: TextRole,
color: AlphaColor<Srgb>,
origin: Point,
max_width: Option<f32>,
)
pub fn text_role( &mut self, text: &str, role: TextRole, color: AlphaColor<Srgb>, origin: Point, max_width: Option<f32>, )
Paint text in the theme’s role with its line box’s top-left at
origin, wrapping at max_width when one is given. The role is
resolved against this context’s theme, so it is scaled exactly once.
pub fn measure_role(
&mut self,
text: &str,
role: TextRole,
max_width: Option<f32>,
) -> Size
pub fn measure_role( &mut self, text: &str, role: TextRole, max_width: Option<f32>, ) -> Size
The size text takes in role, wrapped at max_width when one is
given: exactly what Self::text_role paints.
pub fn line_box(&mut self, role: TextRole) -> f64
pub fn line_box(&mut self, role: TextRole) -> f64
The measured height of one line of role: what a band, row or
control sizes itself from, and what
crate::text_metrics::centered_text_top centres. Grows with the text
scale because the role does.
pub fn text_role_in_band(
&mut self,
text: &str,
role: TextRole,
color: AlphaColor<Srgb>,
x: f64,
band: Rect,
max_width: Option<f32>,
)
pub fn text_role_in_band( &mut self, text: &str, role: TextRole, color: AlphaColor<Srgb>, x: f64, band: Rect, max_width: Option<f32>, )
Paint one line of text in role, starting at x and vertically
centred on its measured line box inside band — the row, bar or
control it labels.
Auto Trait Implementations§
impl<'a> Freeze for PaintCtx<'a>
impl<'a> !RefUnwindSafe for PaintCtx<'a>
impl<'a> Send for PaintCtx<'a>
impl<'a> Sync for PaintCtx<'a>
impl<'a> Unpin for PaintCtx<'a>
impl<'a> UnsafeUnpin for PaintCtx<'a>
impl<'a> !UnwindSafe for PaintCtx<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more