Skip to main content

QuadKind

Enum QuadKind 

Source
#[repr(u32)]
pub enum QuadKind { Solid = 0, GlyphMask = 1, GlyphColor = 2, Image = 3, GlyphSubpixel = 4, Shadow = 5, Segment = 6, Fragment = 7, Texture = 8, }

Variants§

§

Solid = 0

Rounded rect with optional border; ignores uv.

§

GlyphMask = 1

Alpha-mask glyph: atlas alpha times color.

§

GlyphColor = 2

Color bitmap glyph (emoji): atlas rgb, alpha times color.a.

§

Image = 3

Registered image blitted into the atlas: atlas rgba tinted by color (white = as-is), rounded by radius like a solid. border_w is the sampling flag — 0 linear, 1 nearest — a slot this kind had no other use for; blur is 0.

§

GlyphSubpixel = 4

LCD subpixel glyph: atlas rgb is per-channel coverage (times color.a), color.rgb the text color. Needs per-channel (dual source) blending; a backend without it treats the atlas alpha as a plain mask.

§

Shadow = 5

Drop shadow: color filling a rounded rect inset from rect by blur on every side, its edge ramped over blur px. The core emits it just before the node’s own quads, already offset and spread, so a backend only has to soften the SDF it already computes. Ignores uv, border_color and border_w.

§

Segment = 6

A round-capped stroke between two endpoints. uv holds the endpoints as [x0, y0, x1, y1] in physical px, each an f32 stored through to_bits — Quad::segment_ends reads them back — border_w is the stroke width and color the stroke. rect is the bounding box, the endpoints inflated by half the width plus two logical px so the edge ramp is never cut by the quad’s own edge. A backend evaluates an SDF capsule against the fragment’s position. Ignores radius, border_color and blur.

§

Fragment = 7

A box a host-registered WGSL function paints. uv[0] indexes DisplayList::fragments, which carries the handle and the sixteen parameters; the other three words of uv are zero. rect, radius, clip and clip_radius are the node’s and mean what they mean everywhere else — the backend rounds and clips a fragment exactly as it rounds and clips a solid. color carries the group opacity in its alpha and nothing else (rgb is zero), because a fragment returns its own colour and a faded subtree still has to fade it. border_color, border_w and blur are zero and ignored. A backend that cannot draw one — anything predating this kind — draws nothing, which is what a missing handle does too.

§

Texture = 8

A registered image drawn from a texture of its own rather than the atlas: one that did not fit a page, or whose pixels the app has replaced. uv[0] indexes DisplayList::textures, which carries the handle and the texel rect in that texture; the other three words of uv are zero. Everything else is what an Image quad’s is — rect, radius, clip, color as a tint (white = as-is) with the group opacity in its alpha, and border_w the sampling flag. A backend binds the texture in place of the atlas for the run and draws it as an Image; one that predates the kind draws nothing.

Implementations§

Source§

impl QuadKind

Source

pub const ALL: [QuadKind; 9]

Every kind, in discriminant order — what the conformance report’s kinds line counts and the C header’s KUI_QUAD_* mirror.

Trait Implementations§

Source§

impl Clone for QuadKind

Source§

fn clone(&self) -> QuadKind

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for QuadKind

Source§

impl Debug for QuadKind

Source§

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

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

impl Eq for QuadKind

Source§

impl PartialEq for QuadKind

Source§

fn eq(&self, other: &QuadKind) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for QuadKind

Auto Trait Implementations§

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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

Source§

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

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

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

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

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

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

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<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

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

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

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<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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,

Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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