Struct Permutation

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

The permutation of a buffer containing vertex attribute data. The Permutation maps the layout of an input buffer’s fields to the input registers used in the picasso shader.

Implementations§

Source§

impl Permutation

Source

pub fn from_layout(layout: &[Register]) -> Result<Self, Error>

Construct the permutation for a buffer whos fields (in order) correspond to the provided list of input registers (as used in the picasso shader).

§Example
§Picasso
; Inputs (defined as aliases for convenience)
.alias inpos         v0 ; fvec3
.alias innorm        v1 ; fvec3
.alias intex         v2 ; fvec2
§Rust
struct Vertex {
    pos: [f32; 3],
    tex: [f32; 2],
}

impl Vertex {
    pub fn permutation() -> Permutation {
        Permutation::from_layout(&[Register::V0, Register::V2]).unwrap()
    }
}

struct Normal {
    norm: [f32; 3],
}

impl Normal {
    pub fn permutation() -> Permutation {
        Permutation::from_layout(&[Register::V1]).unwrap()
    }
}
§Errors
  • If more than 16 attribute registers are provided (i.e. layout.len() > 16)

Trait Implementations§

Source§

impl Clone for Permutation

Source§

fn clone(&self) -> Permutation

Returns a duplicate of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Permutation

Source§

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

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

impl Copy for Permutation

Auto Trait Implementations§

§

impl Freeze for Permutation

§

impl RefUnwindSafe for Permutation

§

impl Send for Permutation

§

impl Sync for Permutation

§

impl Unpin for Permutation

§

impl UnwindSafe for Permutation

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

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
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

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

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

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

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.