Skip to main content

Mesh2D

Struct Mesh2D 

Source
pub struct Mesh2D {
    pub visibility: bool,
    pub handle: MeshHandle,
    pub shader: Option<Shader>,
    pub transform: Transform2D,
    pub draw_mode: DrawMode,
}
Expand description

High-level mesh with visibility, shader, transform, and draw mode.

Cloning is cheap — the handle shares the same GPU buffers.

Fields§

§visibility: bool§handle: MeshHandle§shader: Option<Shader>§transform: Transform2D§draw_mode: DrawMode

Implementations§

Source§

impl Mesh2D

Source

pub fn set_shader(&mut self, shader: Shader)

Attaches a shader to this mesh.

Source

pub fn remove_shader(&mut self)

Detaches the current shader.

Source

pub fn get_draw_mode(&self) -> DrawMode

Returns the current draw mode.

Source

pub fn set_draw_mode(&mut self, draw_mode: DrawMode)

Sets the draw mode.

Source

pub fn index_count(&self) -> u32

Returns the index count.

Source

pub fn vertex_count(&self) -> u32

Returns the vertex count.

Source

pub fn has_indices(&self) -> bool

Returns true if this mesh uses indexed drawing.

Source

pub fn is_empty(&self) -> bool

Returns true when the mesh has no vertices.

Source

pub fn is_visible(&self) -> bool

Returns true when the mesh is both visible and non-empty.

Source

pub fn set_visibility(&mut self, enable: bool)

Shows or hides this mesh.

Source

pub fn toggle_visibility(&mut self)

Toggles visibility.

Source

pub fn update(&mut self)

Recomputes the transformation matrix.

Source

pub fn delete(self)

Deletes the GPU resources for this mesh’s handle.

Source§

impl Mesh2D

Source

pub fn log_info(&self)

Prints debug information about this mesh to stdout.

Source

pub fn render(&self, proj: &Matrix4<f32>)

Renders this 2D mesh with an orthographic projection matrix.

Sets uProj, uTfm, uLayer uniforms, binds textures and storage buffers, then issues the draw call.

Trait Implementations§

Source§

impl Clone for Mesh2D

Source§

fn clone(&self) -> Mesh2D

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 Mesh2D

Source§

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

Formats the value using the given formatter. Read more

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

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

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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 = 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>,

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>