pub enum BlockLayout {
Struct {
members: Vec<(String, BlockLayout)>,
},
BasicType {
ty: UniformType,
offset_in_buffer: usize,
},
Array {
content: Box<BlockLayout>,
length: usize,
},
DynamicSizedArray {
content: Box<BlockLayout>,
},
}Expand description
Layout of a shader storage buffer or a uniform buffer.
Variants§
Struct
Multiple elements, each having a name.
Fields
§
members: Vec<(String, BlockLayout)>The list of elements, with name/layout pairs.
BasicType
A basic element.
Fields
§
ty: UniformTypeType of data.
Array
A fixed-size array.
For example:
uint data[12];Fields
§
content: Box<BlockLayout>Type of data of each element.
DynamicSizedArray
An array whose size isn’t known at compile-time. Can only be used as the last element of a buffer.
Its actual size depends on the size of the buffer.
For example:
buffer MyBuffer {
uint data[];
}Fields
§
content: Box<BlockLayout>Type of data of each element.
Trait Implementations§
Source§impl Clone for BlockLayout
impl Clone for BlockLayout
Source§fn clone(&self) -> BlockLayout
fn clone(&self) -> BlockLayout
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BlockLayout
impl Debug for BlockLayout
Source§impl PartialEq for BlockLayout
impl PartialEq for BlockLayout
impl Eq for BlockLayout
impl StructuralPartialEq for BlockLayout
Auto Trait Implementations§
impl Freeze for BlockLayout
impl RefUnwindSafe for BlockLayout
impl Send for BlockLayout
impl Sync for BlockLayout
impl Unpin for BlockLayout
impl UnwindSafe for BlockLayout
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SetParameter for T
impl<T> SetParameter for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.