Struct PrimitiveState
#[repr(C)]pub struct PrimitiveState {
pub topology: PrimitiveTopology,
pub strip_index_format: Option<IndexFormat>,
pub front_face: FrontFace,
pub cull_mode: Option<Face>,
pub unclipped_depth: bool,
pub polygon_mode: PolygonMode,
pub conservative: bool,
}unstable-wgpu-27 only.Expand description
Describes the state of primitive assembly and rasterization in a render pipeline.
Corresponds to WebGPU GPUPrimitiveState.
Fields§
§topology: PrimitiveTopologyThe primitive topology used to interpret vertices.
strip_index_format: Option<IndexFormat>When drawing strip topologies with indices, this is the required format for the index buffer. This has no effect on non-indexed or non-strip draws.
Specifying this value enables primitive restart, allowing individual strips to be separated
with the index value 0xFFFF when using Uint16, or 0xFFFFFFFF when using Uint32.
front_face: FrontFaceThe face to consider the front for the purpose of culling and stencil operations.
cull_mode: Option<Face>The face culling mode.
unclipped_depth: boolIf set to true, the polygon depth is not clipped to 0-1 before rasterization.
Enabling this requires Features::DEPTH_CLIP_CONTROL to be enabled.
polygon_mode: PolygonModeControls the way each polygon is rasterized. Can be either Fill (default), Line or Point
Setting this to Line requires Features::POLYGON_MODE_LINE to be enabled.
Setting this to Point requires Features::POLYGON_MODE_POINT to be enabled.
conservative: boolIf set to true, the primitives are rendered with conservative overestimation. I.e. any rastered pixel touched by it is filled.
Only valid for [PolygonMode::Fill]!
Enabling this requires Features::CONSERVATIVE_RASTERIZATION to be enabled.
Trait Implementations§
§impl Clone for PrimitiveState
impl Clone for PrimitiveState
§fn clone(&self) -> PrimitiveState
fn clone(&self) -> PrimitiveState
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for PrimitiveState
impl Debug for PrimitiveState
§impl Default for PrimitiveState
impl Default for PrimitiveState
§fn default() -> PrimitiveState
fn default() -> PrimitiveState
§impl Hash for PrimitiveState
impl Hash for PrimitiveState
§impl PartialEq for PrimitiveState
impl PartialEq for PrimitiveState
impl Copy for PrimitiveState
impl Eq for PrimitiveState
impl StructuralPartialEq for PrimitiveState
Auto Trait Implementations§
impl Freeze for PrimitiveState
impl RefUnwindSafe for PrimitiveState
impl Send for PrimitiveState
impl Sync for PrimitiveState
impl Unpin for PrimitiveState
impl UnwindSafe for PrimitiveState
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<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
§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> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().§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.