pub enum Render<'a, 'pass>where
'pass: 'a,{
None,
Default(Instanced<'a>),
Defaults(Vec<Instanced<'a>>),
Transparent(Instanced<'a>),
Transparents(Vec<Instanced<'a>>),
GUI(Flat<'a>),
Terrain(Geometry<'a>),
Composed(Vec<Render<'a, 'pass>>),
Custom(Box<dyn FnOnce(&Context, &mut RenderPass<'pass>) + 'a>),
}Expand description
Specifies how a scene object should be rendered.
Render is an enum that allows flexible composition of render operations.
It can represent a single instanced object, a batch of objects, transparent
objects, GUI elements, terrain, a composite of multiple renders, or a custom
render closure for special effects.
§Variants
Nonerenders nothingDefault(Instanced)renders a single opaque instanced objectDefaults(Vec<Instanced>)renders a batch of opaque instanced objectsTransparent(Instanced)renders a single transparent instanced objectTransparents(Vec<Instanced>)renders a batch of transparent objectsGUI(Flat)renders 2D elements (flat geometry)Terrain(Flat)renders terrain meshComposed(Vec<Render>)recursively renders composition of multiple rendersCustom(...)invokes a user-defined closure for custom rendering
Variants§
None
Default(Instanced<'a>)
Defaults(Vec<Instanced<'a>>)
Transparent(Instanced<'a>)
Transparents(Vec<Instanced<'a>>)
GUI(Flat<'a>)
Terrain(Geometry<'a>)
Composed(Vec<Render<'a, 'pass>>)
Custom(Box<dyn FnOnce(&Context, &mut RenderPass<'pass>) + 'a>)
Trait Implementations§
Source§impl<'a, 'pass> From<&'a BuildingBlocks> for Render<'a, 'pass>
impl<'a, 'pass> From<&'a BuildingBlocks> for Render<'a, 'pass>
Source§fn from(blocks: &'a BuildingBlocks) -> Self
fn from(blocks: &'a BuildingBlocks) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<'a, 'pass> Freeze for Render<'a, 'pass>
impl<'a, 'pass> !RefUnwindSafe for Render<'a, 'pass>
impl<'a, 'pass> !Send for Render<'a, 'pass>
impl<'a, 'pass> !Sync for Render<'a, 'pass>
impl<'a, 'pass> Unpin for Render<'a, 'pass>
impl<'a, 'pass> UnsafeUnpin for Render<'a, 'pass>
impl<'a, 'pass> !UnwindSafe for Render<'a, 'pass>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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<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>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().