@@ -303,23 +303,6 @@ impl Plugin for MaterialsPlugin {
303303 queue_shadows. in_set ( RenderSystems :: QueueMeshes ) ,
304304 ) ,
305305 ) ;
306-
307- #[ cfg( feature = "meshlet" ) ]
308- render_app. add_systems (
309- Render ,
310- queue_material_meshlet_meshes
311- . in_set ( RenderSystems :: QueueMeshes )
312- . run_if ( resource_exists :: < InstanceManager > ) ,
313- ) ;
314-
315- #[ cfg( feature = "meshlet" ) ]
316- render_app. add_systems (
317- Render ,
318- prepare_material_meshlet_meshes_main_opaque_pass
319- . in_set ( RenderSystems :: QueueMeshes )
320- . before ( queue_material_meshlet_meshes)
321- . run_if ( resource_exists :: < InstanceManager > ) ,
322- ) ;
323306 }
324307 }
325308
@@ -1507,97 +1490,40 @@ where
15071490 }
15081491
15091492 let mut shaders = HashMap :: new ( ) ;
1510-
1511- let vertex_shader = match M :: vertex_shader ( ) {
1512- ShaderRef :: Default => None ,
1513- ShaderRef :: Handle ( handle) => Some ( handle) ,
1514- ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
1515- } ;
1516- if let Some ( vertex_shader) = vertex_shader {
1517- shaders. insert ( MaterialVertexShader . intern ( ) , vertex_shader) ;
1518- }
1519- let fragment_shader = match M :: fragment_shader ( ) {
1520- ShaderRef :: Default => None ,
1521- ShaderRef :: Handle ( handle) => Some ( handle) ,
1522- ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
1523- } ;
1524- if let Some ( fragment_shader) = fragment_shader {
1525- shaders. insert ( MaterialFragmentShader . intern ( ) , fragment_shader) ;
1526- }
1527- let prepass_material_vertex_shader = match M :: prepass_vertex_shader ( ) {
1528- ShaderRef :: Default => None ,
1529- ShaderRef :: Handle ( handle) => Some ( handle) ,
1530- ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
1531- } ;
1532- if let Some ( prepass_material_vertex_shader) = prepass_material_vertex_shader {
1533- shaders. insert ( PrepassVertexShader . intern ( ) , prepass_material_vertex_shader) ;
1534- }
1535- let prepass_material_fragment_shader = match M :: prepass_fragment_shader ( ) {
1536- ShaderRef :: Default => None ,
1537- ShaderRef :: Handle ( handle) => Some ( handle) ,
1538- ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
1539- } ;
1540- if let Some ( prepass_material_fragment_shader) = prepass_material_fragment_shader {
1541- shaders. insert (
1542- PrepassFragmentShader . intern ( ) ,
1543- prepass_material_fragment_shader,
1544- ) ;
1545- }
1546- let deferred_material_vertex_shader = match M :: deferred_vertex_shader ( ) {
1547- ShaderRef :: Default => None ,
1548- ShaderRef :: Handle ( handle) => Some ( handle) ,
1549- ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
1550- } ;
1551- if let Some ( deferred_material_vertex_shader) = deferred_material_vertex_shader {
1552- shaders. insert (
1553- DeferredVertexShader . intern ( ) ,
1554- deferred_material_vertex_shader,
1555- ) ;
1556- }
1557- let deferred_material_fragment_shader = match M :: deferred_fragment_shader ( ) {
1558- ShaderRef :: Default => None ,
1559- ShaderRef :: Handle ( handle) => Some ( handle) ,
1560- ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
1561- } ;
1562- if let Some ( deferred_material_fragment_shader) = deferred_material_fragment_shader {
1563- shaders. insert (
1564- DeferredFragmentShader . intern ( ) ,
1565- deferred_material_fragment_shader,
1566- ) ;
1567- }
1568- #[ cfg( feature = "meshlet" ) ]
1569- {
1570- let meshlet_fragment_shader = match M :: meshlet_mesh_fragment_shader ( ) {
1571- ShaderRef :: Default => None ,
1572- ShaderRef :: Handle ( handle) => Some ( handle) ,
1573- ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
1574- } ;
1575- if let Some ( meshlet_fragment_shader) = meshlet_fragment_shader {
1576- shaders. insert ( MeshletFragmentShader . intern ( ) , meshlet_fragment_shader) ;
1577- }
1578- let meshlet_prepass_fragment_shader = match M :: meshlet_mesh_prepass_fragment_shader ( ) {
1579- ShaderRef :: Default => None ,
1580- ShaderRef :: Handle ( handle) => Some ( handle) ,
1581- ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
1582- } ;
1583- if let Some ( meshlet_prepass_fragment_shader) = meshlet_prepass_fragment_shader {
1584- shaders. insert (
1585- MeshletPrepassFragmentShader . intern ( ) ,
1586- meshlet_prepass_fragment_shader,
1587- ) ;
1588- }
1589- let meshlet_deferred_fragment_shader = match M :: meshlet_mesh_deferred_fragment_shader ( )
1590- {
1493+ let mut add_shader = |label : InternedShaderLabel , shader_ref : ShaderRef | {
1494+ let mayber_shader = match shader_ref {
15911495 ShaderRef :: Default => None ,
15921496 ShaderRef :: Handle ( handle) => Some ( handle) ,
15931497 ShaderRef :: Path ( path) => Some ( asset_server. load ( path) ) ,
15941498 } ;
1595- if let Some ( meshlet_deferred_fragment_shader) = meshlet_deferred_fragment_shader {
1596- shaders. insert (
1597- MeshletDeferredFragmentShader . intern ( ) ,
1598- meshlet_deferred_fragment_shader,
1599- ) ;
1499+ if let Some ( shader) = mayber_shader {
1500+ shaders. insert ( label, shader) ;
16001501 }
1502+ } ;
1503+ add_shader ( MaterialVertexShader . intern ( ) , M :: vertex_shader ( ) ) ;
1504+ add_shader ( MaterialFragmentShader . intern ( ) , M :: fragment_shader ( ) ) ;
1505+ add_shader ( PrepassVertexShader . intern ( ) , M :: prepass_vertex_shader ( ) ) ;
1506+ add_shader ( PrepassFragmentShader . intern ( ) , M :: prepass_fragment_shader ( ) ) ;
1507+ add_shader ( DeferredVertexShader . intern ( ) , M :: deferred_vertex_shader ( ) ) ;
1508+ add_shader (
1509+ DeferredFragmentShader . intern ( ) ,
1510+ M :: deferred_fragment_shader ( ) ,
1511+ ) ;
1512+
1513+ #[ cfg( feature = "meshlet" ) ]
1514+ {
1515+ add_shader (
1516+ MeshletFragmentShader . intern ( ) ,
1517+ M :: meshlet_mesh_fragment_shader ( ) ,
1518+ ) ;
1519+ add_shader (
1520+ MeshletPrepassFragmentShader . intern ( ) ,
1521+ M :: meshlet_mesh_prepass_fragment_shader ( ) ,
1522+ ) ;
1523+ add_shader (
1524+ MeshletDeferredFragmentShader . intern ( ) ,
1525+ M :: meshlet_mesh_deferred_fragment_shader ( ) ,
1526+ ) ;
16011527 }
16021528
16031529 let bindless = material_uses_bindless_resources :: < M > ( render_device) ;
0 commit comments