Skip to content

Commit bb10502

Browse files
authored
Add explicit mesh key initialization for manual_material example. (#22611)
Ideally this should be fully defaultable, but is problematic until we complete the 2d->3d rework where more items can be exported from `bevy_material`. The temp fix is just to initialize a few more fields. There are other hacky things we could do to keep the default initialization working but I'd rather just fix it correctly when we complete the refactor.
1 parent 4572a1d commit bb10502

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

crates/bevy_pbr/src/material.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1454,7 +1454,7 @@ pub struct PreparedMaterial {
14541454
pub properties: Arc<MaterialProperties>,
14551455
}
14561456

1457-
fn base_specialize(
1457+
pub fn base_specialize(
14581458
world: &mut World,
14591459
key: ErasedMaterialPipelineKey,
14601460
layout: &MeshVertexBufferLayoutRef,

examples/shader_advanced/manual_material.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ use bevy::{
77
lifetimeless::{SRes, SResMut},
88
SystemChangeTick, SystemParamItem,
99
},
10-
material::MaterialProperties,
10+
material::{key::ErasedMeshPipelineKey, MaterialProperties},
1111
pbr::{
12-
late_sweep_material_instances, DrawMaterial, EntitiesNeedingSpecialization,
13-
EntitySpecializationTickPair, EntitySpecializationTicks, MainPassOpaqueDrawFunction,
14-
MaterialBindGroupAllocator, MaterialBindGroupAllocators,
12+
base_specialize, late_sweep_material_instances, DrawMaterial,
13+
EntitiesNeedingSpecialization, EntitySpecializationTickPair, EntitySpecializationTicks,
14+
MainPassOpaqueDrawFunction, MaterialBindGroupAllocator, MaterialBindGroupAllocators,
1515
MaterialExtractEntitiesNeedingSpecializationSystems, MaterialExtractionSystems,
16-
MaterialFragmentShader, PreparedMaterial, RenderMaterialBindings, RenderMaterialInstance,
17-
RenderMaterialInstances, SpecializedMaterialPipelineCache,
16+
MaterialFragmentShader, MeshPipelineKey, PreparedMaterial, RenderMaterialBindings,
17+
RenderMaterialInstance, RenderMaterialInstances, SpecializedMaterialPipelineCache,
1818
},
1919
platform::collections::hash_map::Entry,
2020
prelude::*,
@@ -199,6 +199,8 @@ impl ErasedRenderAsset for ImageMaterial {
199199

200200
let mut properties = MaterialProperties {
201201
material_layout: Some(material_layout),
202+
mesh_pipeline_key_bits: ErasedMeshPipelineKey::new(MeshPipelineKey::empty()),
203+
base_specialize: Some(base_specialize),
202204
..Default::default()
203205
};
204206
properties.add_draw_function(MainPassOpaqueDrawFunction, draw_function_id);

0 commit comments

Comments
 (0)