pub struct Material { /* private fields */ }Expand description
Describes a render pipeline + its own bind group, the source type
GPUMaterial is built from via build_material. Fields are private —
start from Material::new and chain the setters below (or
Material::default() for an opaque material with no shader source yet)
rather than constructing one as a struct literal.
Implementations§
Source§impl Material
impl Material
Sourcepub fn new(shader_source: &'static str) -> Self
pub fn new(shader_source: &'static str) -> Self
Start building a material with the given WGSL shader source.
All other fields are set to their defaults (see Default).
pub fn label(self, label: &'static str) -> Self
pub fn vertex_entry(self, entry: &'static str) -> Self
pub fn fragment_entry(self, entry: &'static str) -> Self
pub fn vertex_layouts(self, layouts: Vec<VertexBufferLayout>) -> Self
pub fn entries(self, entries: Vec<BindingEntry>) -> Self
pub fn cull_mode(self, mode: Option<Face>) -> Self
pub fn depth(self, depth: DepthStencilState) -> Self
pub fn targets(self, targets: Vec<ColorTargetState>) -> Self
pub fn polygon_mode(self, mode: PolygonMode) -> Self
pub fn sample_count(self, count: u32) -> Self
pub fn own_group(self, group: u32) -> Self
Sourcepub fn no_own_group(self) -> Self
pub fn no_own_group(self) -> Self
Clear own_group — this material has no bind group entries of its
own (only extra_layouts). The counterpart to
own_group, which can only set it to Some.
pub fn extra_layouts(self, layouts: Vec<OwnedGroupLayout>) -> Self
Sourcepub fn build_asset(self, name: &str, assets: &mut Assets<Self>) -> Handle<Self>
pub fn build_asset(self, name: &str, assets: &mut Assets<Self>) -> Handle<Self>
Consume the builder, insert into assets under name, and return
the resulting Handle<Material>.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Material
impl !UnwindSafe for Material
impl Freeze for Material
impl Send for Material
impl Sync for Material
impl Unpin for Material
impl UnsafeUnpin for Material
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> Component for T
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> DowncastSync for T
impl<T> DowncastSync for T
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
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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().