Enum BuiltIn
pub enum BuiltIn {
Show 36 variants
Position {
invariant: bool,
},
ViewIndex,
BaseInstance,
BaseVertex,
ClipDistance,
CullDistance,
InstanceIndex,
PointSize,
VertexIndex,
DrawID,
FragDepth,
PointCoord,
FrontFacing,
PrimitiveIndex,
Barycentric,
SampleIndex,
SampleMask,
GlobalInvocationId,
LocalInvocationId,
LocalInvocationIndex,
WorkGroupId,
WorkGroupSize,
NumWorkGroups,
NumSubgroups,
SubgroupId,
SubgroupSize,
SubgroupInvocationId,
MeshTaskSize,
CullPrimitive,
PointIndex,
LineIndices,
TriangleIndices,
VertexCount,
Vertices,
PrimitiveCount,
Primitives,
}unstable-wgpu-28 only.Expand description
Built-in inputs and outputs.
Variants§
Position
Written in vertex/mesh shaders, read in fragment shaders
ViewIndex
Read in task, mesh, vertex, and fragment shaders
BaseInstance
Read in vertex shaders
BaseVertex
Read in vertex shaders
ClipDistance
Written in vertex & mesh shaders
CullDistance
Written in vertex & mesh shaders
InstanceIndex
Read in vertex shaders
PointSize
Written in vertex & mesh shaders
VertexIndex
Read in vertex shaders
DrawID
Read in vertex & task shaders, or mesh shaders in pipelines without task shaders
FragDepth
Written in fragment shaders
PointCoord
Read in fragment shaders
FrontFacing
Read in fragment shaders
PrimitiveIndex
Read in fragment shaders, written in mesh shaders
Barycentric
Read in fragment shaders
SampleIndex
Read in fragment shaders
SampleMask
Read or written in fragment shaders
GlobalInvocationId
Read in compute, task, and mesh shaders
LocalInvocationId
Read in compute, task, and mesh shaders
LocalInvocationIndex
Read in compute, task, and mesh shaders
WorkGroupId
Read in compute, task, and mesh shaders
WorkGroupSize
Read in compute, task, and mesh shaders
NumWorkGroups
Read in compute, task, and mesh shaders
NumSubgroups
Read in compute, task, and mesh shaders
SubgroupId
Read in compute, task, and mesh shaders
SubgroupSize
Read in compute, fragment, task, and mesh shaders
SubgroupInvocationId
Read in compute, fragment, task, and mesh shaders
MeshTaskSize
Written in task shaders
CullPrimitive
Written in mesh shaders
PointIndex
Written in mesh shaders
LineIndices
Written in mesh shaders
TriangleIndices
Written in mesh shaders
VertexCount
Written to a workgroup variable in mesh shaders
Vertices
Written to a workgroup variable in mesh shaders
PrimitiveCount
Written to a workgroup variable in mesh shaders
Primitives
Written to a workgroup variable in mesh shaders
Trait Implementations§
§impl Ord for BuiltIn
impl Ord for BuiltIn
§impl PartialOrd for BuiltIn
impl PartialOrd for BuiltIn
§impl TryToWgsl for BuiltIn
impl TryToWgsl for BuiltIn
§const DESCRIPTION: &'static str = "builtin value"
const DESCRIPTION: &'static str = "builtin value"
Self represents.§fn try_to_wgsl(self) -> Option<&'static str>
fn try_to_wgsl(self) -> Option<&'static str>
impl Copy for BuiltIn
impl Eq for BuiltIn
impl StructuralPartialEq for BuiltIn
Auto Trait Implementations§
impl Freeze for BuiltIn
impl RefUnwindSafe for BuiltIn
impl Send for BuiltIn
impl Sync for BuiltIn
impl Unpin for BuiltIn
impl UnwindSafe for BuiltIn
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.