Skip to main content

Vertices

Struct Vertices 

Source
pub struct Vertices { /* private fields */ }
Expand description

A mesh of triangles in user space, with optional texture coordinates.

Texture coordinates run from zero to one across the image and are read per vertex, which is the point of supplying them: every other way of drawing an image here maps it by position, and a mesh that wanted that mapping would not need coordinates at all.

Implementations§

Source§

impl Vertices

Source

pub fn new(mode: VertexMode, positions: Vec<Vec2>) -> Result<Vertices, Error>

A mesh from positions alone, filled by the paint.

The paint is sampled by position, as it is for any shape: a gradient runs across the mesh the way it would across a path covering the same area.

Source

pub fn textured( mode: VertexMode, positions: Vec<Vec2>, texture_coords: Vec<Vec2>, ) -> Result<Vertices, Error>

A mesh whose vertices name where in the paint they read.

Any shader reads there, which is what dart:ui means by a color source at a mesh’s coordinates: an image samples its texture, a gradient measures its ramp, and a caller’s program receives them as uv beside the clip position and chooses. This used to say “requires an image paint”, which was true of neither the last two.

Source

pub fn colored( mode: VertexMode, positions: Vec<Vec2>, colors: Vec<Color>, ) -> Result<Vertices, Error>

A mesh whose vertices each carry a color.

The color multiplies whatever the paint produced, so a white paint leaves the mesh’s own colors, and a gradient paint is shaded by them. Multiplying is the only combination offered: dart:ui takes a blend mode here, and every other mode either discards one of the two inputs or is not expressible without a second value per fragment.

Source

pub fn indexed( mode: VertexMode, positions: Vec<Vec2>, texture_coords: Vec<Vec2>, indices: Vec<u32>, ) -> Result<Vertices, Error>

The same, with the triangles named by index rather than by order.

Source

pub fn full( mode: VertexMode, positions: Vec<Vec2>, texture_coords: Vec<Vec2>, colors: Vec<Color>, indices: Vec<u32>, ) -> Result<Vertices, Error>

Everything at once, for a caller who has all of it.

Source

pub fn positions(&self) -> &[Vec2]

Source

pub fn texture_coords(&self) -> &[Vec2]

Texture coordinates, or empty where the mesh carries none.

Source

pub fn colors(&self) -> &[Color]

Per-vertex colors, or empty where the mesh carries none.

Source

pub fn indices(&self) -> &[u32]

Triangle indices, three per triangle, whatever mode built them.

Source

pub fn is_empty(&self) -> bool

Trait Implementations§

Source§

impl Clone for Vertices

Source§

fn clone(&self) -> Vertices

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 Debug for Vertices

Source§

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

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

impl Default for Vertices

Source§

fn default() -> Vertices

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Vertices

Source§

fn eq(&self, other: &Vertices) -> 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 Vertices

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<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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