Trait bevy::sprite::Material2d
[−]pub trait Material2d: Asset + RenderAsset {
fn bind_group(material: &Self::PreparedAsset) -> &BindGroup;
fn bind_group_layout(render_device: &RenderDevice) -> BindGroupLayout;
fn vertex_shader(asset_server: &AssetServer) -> Option<Handle<Shader>> { ... }
fn fragment_shader(asset_server: &AssetServer) -> Option<Handle<Shader>> { ... }
fn dynamic_uniform_indices(material: &Self::PreparedAsset) -> &[u32] { ... }
}
Expand description
Materials are used alongside Material2dPlugin
and MaterialMesh2dBundle
to spawn entities that are rendered with a specific Material2d
type. They serve as an easy to use high level
way to render Mesh2dHandle
entities with custom shader logic. For materials that can specialize their RenderPipelineDescriptor
based on specific material values, see SpecializedMaterial2d
. Material2d
automatically implements SpecializedMaterial2d
and can be used anywhere that type is used (such as Material2dPlugin
).
Required methods
fn bind_group(material: &Self::PreparedAsset) -> &BindGroup
fn bind_group(material: &Self::PreparedAsset) -> &BindGroup
Returns this material’s BindGroup
. This should match the layout returned by Material2d::bind_group_layout
.
fn bind_group_layout(render_device: &RenderDevice) -> BindGroupLayout
fn bind_group_layout(render_device: &RenderDevice) -> BindGroupLayout
Returns this material’s BindGroupLayout
. This should match the BindGroup
returned by Material2d::bind_group
.
Provided methods
fn vertex_shader(asset_server: &AssetServer) -> Option<Handle<Shader>>
fn vertex_shader(asset_server: &AssetServer) -> Option<Handle<Shader>>
fn fragment_shader(asset_server: &AssetServer) -> Option<Handle<Shader>>
fn fragment_shader(asset_server: &AssetServer) -> Option<Handle<Shader>>
fn dynamic_uniform_indices(material: &Self::PreparedAsset) -> &[u32]
fn dynamic_uniform_indices(material: &Self::PreparedAsset) -> &[u32]
The dynamic uniform indices to set for the given material
’s BindGroup
.
Defaults to an empty array / no dynamic uniform indices.