Struct kludgine::Kludgine

source ·
pub struct Kludgine { /* private fields */ }
Expand description

A 2d graphics instance.

This type contains the GPU state for a single instance of Kludgine. To render graphics correctly, it must know the size and scale of the surface being rendered to. These values are provided in the constructor, but can be updated using resize().

To draw using Kludgine, create a Frame using next_frame(). [wgpu] has lifetime requirements on the [wgpu::RenderPass] which causes each item being rendered to be attached to the lifetime of the render pass. This means that no temporary variables can be used to render.

Instead, graphics must be prepared before rendering, and stored somewhere during the remainder of the RenderingGraphics. To prepare graphics to be rendered, call Frame::prepare() to receive a Graphics instance that can be used in various Kludgine APIs such as Shape::prepare.

Implementations§

source§

impl 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§

impl Kludgine

source

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

The features that wgpu requires in compatible devices.

source

pub fn new( device: &Device, queue: &Queue, format: TextureFormat, multisample: MultisampleState, initial_size: Size<UPx>, scale: f32 ) -> Self

Returns a new instance of Kludgine with the provided parameters.

source

pub fn adjust_limits(limits: Limits) -> Limits

Adjusts and returns the wgpu limits to support features used by Kludgine.

source

pub const 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 const fn size(&self) -> Size<UPx>

Returns the currently configured size to render.

source

pub const fn scale(&self) -> Fraction

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

Trait Implementations§

source§

impl Debug for Kludgine

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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,