Struct kludgine::drawing::Renderer

source ·
pub struct Renderer<'render, 'gfx> { /* private fields */ }
Expand description

An easy-to-use graphics renderer that batches operations on the GPU automatically.

Using the draw operations on this type don’t immediately draw. Instead, once this type is dropped, the Drawing that created this renderer will be updated with the new drawing instructions. All of the pending operations can be drawn using Drawing::render.

Implementations§

source§

impl<'render, 'gfx> Renderer<'render, 'gfx>

source

pub fn as_plot_area( &mut self ) -> DrawingArea<PlotterBackend<'_, 'render, 'gfx>, Shift>

Returns this renderer as a [DrawingArea] compatible with the plotters crate.

source§

impl<'gfx> Renderer<'_, 'gfx>

source

pub fn measure_text<'a, Unit>( &mut self, text: impl Into<Text<'a, Unit>> ) -> MeasuredText<Unit>
where Unit: ScreenUnit,

Measures text using the current text settings.

default_color does not affect the

source

pub fn draw_text<'a, Unit, Source>(&mut self, text: Source)
where Unit: ScreenUnit, Source: Into<Drawable<Text<'a, Unit>, Unit>>,

Draws text using the current text settings.

source

pub fn draw_text_buffer<'a, Unit>( &mut self, buffer: impl Into<Drawable<&'a Buffer, Unit>>, default_color: Color, origin: TextOrigin<Px> )
where Unit: ScreenUnit,

Prepares the text layout contained in buffer to be rendered.

When the text in buffer has no color defined, default_color will be used.

origin allows controlling how the text will be drawn relative to the coordinate provided in render().

source

pub fn measure_text_buffer<Unit>( &mut self, buffer: &Buffer, default_color: Color ) -> MeasuredText<Unit>
where Unit: ScreenUnit,

Measures buffer and caches the results using default_color when the buffer has no color associated with text.

source

pub fn draw_measured_text<'a, Unit>( &mut self, text: impl Into<Drawable<&'a MeasuredText<Unit>, Unit>>, origin: TextOrigin<Unit> )
where Unit: ScreenUnit,

Prepares the text layout contained in buffer to be rendered.

When the text in buffer has no color defined, default_color will be used.

origin allows controlling how the text will be drawn relative to the coordinate provided in render().

source§

impl<'render, 'gfx> Renderer<'render, 'gfx>

source

pub fn draw_shape<'shape, Unit>( &mut self, shape: impl Into<Drawable<&'shape Shape<Unit, false>, Unit>> )
where Unit: Zero + ShaderScalable + ScreenUnit + Unit + Copy,

Draws a shape at the origin, rotating and scaling as needed.

source

pub fn draw_texture<Unit>( &mut self, texture: &impl TextureSource, destination: Rect<Unit>, opacity: f32 )
where Unit: Unit + ScreenUnit + ShaderScalable, i32: From<<Unit as IntoSigned>::Signed>,

Draws texture at destination, scaling as necessary.

source

pub fn draw_texture_at<Unit>( &mut self, texture: &impl TextureSource, destination: Point<Unit>, opacity: f32 )
where Unit: Unit + ScreenUnit + ShaderScalable, i32: From<<Unit as IntoSigned>::Signed>,

Draws texture at destination.

source

pub fn draw_textured_shape<'shape, Unit, Shape>( &mut self, shape: impl Into<Drawable<&'shape Shape, Unit>>, texture: &impl TextureSource )
where Unit: Zero + ShaderScalable + ScreenUnit + Unit + Copy, i32: From<<Unit as IntoSigned>::Signed>, Shape: ShapeSource<Unit, true> + 'shape,

Draws a shape that was created with texture coordinates, applying the provided texture.

source

pub fn vertex_count(&self) -> usize

Returns the number of vertexes that compose the drawing commands.

source

pub fn triangle_count(&self) -> usize

Returns the number of triangles that are being rendered in the drawing commands.

source

pub fn command_count(&self) -> usize

Returns the number of drawing operations that will be sent to the GPU during render().

source

pub fn clipped_to(&mut self, clip: Rect<UPx>) -> ClipGuard<'_, Self>

Returns a ClipGuard that causes all drawing operations to be offset and clipped to clip until it is dropped.

This function causes the Renderer to act as if the origin of the context is clip.origin, and the size of the context is clip.size. This means that rendering at 0,0 will actually render at the effective clip rect’s origin.

clip is relative to the current clip rect and cannot extend the current clipping rectangle.

Methods from Deref<Target = Graphics<'gfx>>§

source

pub fn prepare_text( &mut self, buffer: &Buffer, default_color: Color, origin: TextOrigin<Px> ) -> PreparedText

Prepares the text layout contained in buffer to be rendered.

When the text in buffer has no color defined, default_color will be used.

origin allows controlling how the text will be drawn relative to the coordinate provided in render().

source

pub fn device(&self) -> &'gfx Device

Returns a reference to the underlying [wgpu::Device].

source

pub fn queue(&self) -> &'gfx Queue

Returns a reference to the underlying [wgpu::Queue].

source

pub fn font_system(&mut self) -> &mut FontSystem

Returns a mutable reference to the [cosmic_text::FontSystem] used when rendering text.

source

pub fn size(&self) -> Size<UPx>

Returns the current clipped size of the context.

If this context has not been clipped, the value returned will be equivalent to Kludgine::size.

source

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

Returns the current rectangular area of the context.

If this context has not been clipped, the value returned will be equivalent to Kludgine::size with an origin of 0,0.

Methods from Deref<Target = Kludgine>§

source

pub fn font_system(&mut self) -> &mut FontSystem

Returns a mutable reference to the [cosmic_text::FontSystem] used when rendering text.

source

pub fn rebuild_font_system(&mut self)

Rebuilds the font system, invalidating font database caches.

This function can be invoked after loading fonts into the font database to ensure that all future text rendering considers the newly loaded fonts.

source

pub fn set_font_size(&mut self, size: impl ScreenScale<Lp = Lp>)

Sets the font size.

source

pub fn font_size(&self) -> Lp

Returns the current font size.

source

pub fn set_line_height(&mut self, size: impl ScreenScale<Lp = Lp>)

Sets the line height for multi-line layout.

source

pub fn line_height(&self) -> Lp

Returns the current line height.

source

pub fn set_font_family(&mut self, family: FamilyOwned)

Sets the current font family.

source

pub fn font_family(&self) -> Family<'_>

Returns the current font family.

source

pub fn set_font_style(&mut self, style: Style)

Sets the current font style.

source

pub fn font_style(&self) -> Style

Returns the current font style.

source

pub fn set_font_weight(&mut self, weight: Weight)

Sets the current font weight.

source

pub fn font_weight(&self) -> Weight

Returns the current font weight.

source

pub fn set_text_stretch(&mut self, width: Stretch)

Sets the current text stretching.

source

pub fn text_stretch(&self) -> Stretch

Returns the current text stretch.

source

pub fn text_attrs(&self) -> Attrs<'_>

Returns the current text attributes.

source

pub fn set_text_attributes(&mut self, attrs: Attrs<'_>)

Sets the current text attributes.

source

pub fn reset_text_attributes(&mut self)

Resets all of the text related properties to their default settings.

source

pub const REQURED_FEATURES: Features = wgpu::Features::PUSH_CONSTANTS

source

pub fn id(&self) -> KludgineId

Returns the unique id of this instance.

source

pub fn resize(&mut self, new_size: Size<UPx>, new_scale: f32, queue: &Queue)

Updates the size and scale of this Kludgine instance.

This function updates data stored in the GPU that affects how graphics are rendered. It should be called before calling next_frame() if the size or scale of the underlying surface has changed.

source

pub fn next_frame(&mut self) -> Frame<'_>

Begins rendering a new frame.

source

pub fn size(&self) -> Size<UPx>

Returns the currently configured size to render.

source

pub fn scale(&self) -> Fraction

Returns the current scaling factor for the display this instance is rendering to.

Trait Implementations§

source§

impl Clipped for Renderer<'_, '_>

source§

fn push_clip(&mut self, clip: Rect<UPx>)

Pushes a new clipping state to the clipping stack. Read more
source§

fn pop_clip(&mut self)

Restores the clipping rect to the previous state before the last call to Clipped::push_clip(). Read more
source§

fn clipped_to(&mut self, clip: Rect<UPx>) -> ClipGuard<'_, Self>

Returns a ClipGuard that causes all drawing operations to be offset and clipped to clip until it is dropped. Read more
source§

impl<'render, 'gfx> Debug for Renderer<'render, 'gfx>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'gfx> Deref for Renderer<'_, 'gfx>

§

type Target = Graphics<'gfx>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<'gfx> DerefMut for Renderer<'_, 'gfx>

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl Drop for Renderer<'_, '_>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'render, 'gfx> Freeze for Renderer<'render, 'gfx>

§

impl<'render, 'gfx> !RefUnwindSafe for Renderer<'render, 'gfx>

§

impl<'render, 'gfx> Send for Renderer<'render, 'gfx>

§

impl<'render, 'gfx> Sync for Renderer<'render, 'gfx>

§

impl<'render, 'gfx> Unpin for Renderer<'render, 'gfx>

§

impl<'render, 'gfx> !UnwindSafe for Renderer<'render, 'gfx>

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
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, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar> ) -> T

Converts self into C, using the provided parameters.
§

impl<A> Cast for A

§

fn cast<To>(self) -> To
where To: CastFrom<A>,

Casts self to the To type. This may be a lossy operation.
§

impl<A> CastFrom<A> for A

§

fn from_cast(from: A) -> A

Returns from as Self.
§

impl<A, B> CastInto<A> for B
where A: CastFrom<B>,

§

fn cast_into(self) -> A

Returns self as To.
source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

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

Convert 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)

Convert &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)

Convert &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
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromAngle<T> for T

source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoAngle<U> for T
where U: FromAngle<T>,

source§

fn into_angle(self) -> U

Performs a conversion into T.
source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar> ) -> T

Converts self into C, using the provided parameters.
source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

impl<T> IntoStimulus<T> for T

source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
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.
source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
§

impl<T> Upcast<T> for T

§

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

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

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

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

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