Enum re_renderer::draw_phases::DrawPhase
source · pub enum DrawPhase {
Opaque,
Background,
PickingLayer,
OutlineMask,
Compositing,
CompositingScreenshot,
}
Expand description
Determines a (very rough) order of rendering and describes the active [wgpu::RenderPass
].
Currently we do not support sorting within a rendering phase!
See #702
Within a phase DrawData
are drawn in the order they are submitted in.
TODO(andreas): Should every phase/processor be associated with a single wgpu::RenderPass
?
Note that this implies sub-phases (e.g. Opaque & background render to the same target).
Also we should then the higher level one to RenderPass
or similar!
Variants§
Opaque
Opaque objects, performing reads/writes to the depth buffer.
Typically they are order independent, so everything uses this same index.
Background
Background, rendering where depth wasn’t written.
PickingLayer
Everything that can be picked with GPU based picking.
This should be everything in the Opaque
phase.
OutlineMask
Render mask for things that should get outlines.
Compositing
Drawn when compositing with the main target.
CompositingScreenshot
Drawn when compositing with the main target, but for screenshots. This is a separate phase primarily because screenshots may be rendered with a different texture format.
Trait Implementations§
source§impl EnumSetTypePrivate for DrawPhase
impl EnumSetTypePrivate for DrawPhase
§type ConstHelper = __EnumSetConstHelper
type ConstHelper = __EnumSetConstHelper
enum_set!
macro among other things.source§const CONST_HELPER_INSTANCE: __EnumSetConstHelper = __EnumSetConstHelper
const CONST_HELPER_INSTANCE: __EnumSetConstHelper = __EnumSetConstHelper
ConstHelper
.source§const ALL_BITS: Self::Repr = {transmute(0x3f): <draw_phases::DrawPhase as enumset::__internal::EnumSetTypePrivate>::Repr}
const ALL_BITS: Self::Repr = {transmute(0x3f): <draw_phases::DrawPhase as enumset::__internal::EnumSetTypePrivate>::Repr}
source§const VARIANT_COUNT: u32 = 6u32
const VARIANT_COUNT: u32 = 6u32
source§fn enum_into_u32(self) -> u32
fn enum_into_u32(self) -> u32
source§unsafe fn enum_from_u32(val: u32) -> Self
unsafe fn enum_from_u32(val: u32) -> Self
source§impl PartialEq<EnumSet<DrawPhase>> for DrawPhase
impl PartialEq<EnumSet<DrawPhase>> for DrawPhase
source§impl PartialEq for DrawPhase
impl PartialEq for DrawPhase
impl Copy for DrawPhase
impl EnumSetType for DrawPhase
impl Eq for DrawPhase
Auto Trait Implementations§
impl Freeze for DrawPhase
impl RefUnwindSafe for DrawPhase
impl Send for DrawPhase
impl Sync for DrawPhase
impl Unpin for DrawPhase
impl UnwindSafe for DrawPhase
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
§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