@@ -18,16 +18,16 @@ use bevy::{
1818 } ,
1919 renderer:: RenderDevice ,
2020 texture:: GpuImage ,
21- view:: { ExtractedView , ViewUniforms , VisibleEntities } ,
21+ view:: { ExtractedView , RenderVisibleEntities , ViewUniforms } ,
2222 Extract , Render , RenderApp , RenderSet ,
2323 } ,
2424 utils:: { HashMap , HashSet } ,
2525} ;
2626use std:: { hash:: Hash , marker:: PhantomData } ;
27-
27+ use bevy :: ecs :: system :: StaticSystemParam ;
2828#[ cfg( not( feature = "atlas" ) ) ]
2929use bevy:: render:: renderer:: RenderQueue ;
30-
30+ use bevy :: render :: sync_world :: MainEntity ;
3131use crate :: prelude:: { TilemapId , TilemapRenderSettings } ;
3232
3333use super :: {
@@ -337,7 +337,7 @@ fn prepare_materials_tilemap<M: MaterialTilemap>(
337337 mut render_materials : ResMut < RenderMaterialsTilemap < M > > ,
338338 render_device : Res < RenderDevice > ,
339339 pipeline : Res < MaterialTilemapPipeline < M > > ,
340- mut param : SystemParamItem < < M as AsBindGroup > :: Param > ,
340+ mut param : StaticSystemParam < M :: Param > ,
341341) {
342342 let queued_assets = std:: mem:: take ( & mut prepare_next_frame. assets ) ;
343343 for ( handle, material) in queued_assets {
@@ -377,7 +377,7 @@ fn prepare_material_tilemap<M: MaterialTilemap>(
377377 material : & M ,
378378 render_device : & RenderDevice ,
379379 pipeline : & MaterialTilemapPipeline < M > ,
380- param : & mut SystemParamItem < < M as AsBindGroup > :: Param > ,
380+ param : & mut SystemParamItem < M :: Param > ,
381381) -> Result < PreparedMaterialTilemap < M > , AsBindGroupError > {
382382 let prepared =
383383 material. as_bind_group ( & pipeline. material_tilemap_layout , render_device, param) ?;
@@ -402,10 +402,10 @@ pub fn queue_material_tilemap_meshes<M: MaterialTilemap>(
402402 gpu_images : Res < RenderAssets < GpuImage > > ,
403403 globals_buffer : Res < GlobalsBuffer > ,
404404 ( standard_tilemap_meshes, materials) : (
405- Query < ( Entity , & ChunkId , & Transform , & TilemapId ) > ,
405+ Query < ( Entity , & MainEntity , & ChunkId , & Transform , & TilemapId ) > ,
406406 Query < & MaterialTilemapHandle < M > > ,
407407 ) ,
408- mut views : Query < ( Entity , & ExtractedView , & Msaa , & VisibleEntities ) > ,
408+ mut views : Query < ( Entity , & ExtractedView , & Msaa , & RenderVisibleEntities ) > ,
409409 render_materials : Res < RenderMaterialsTilemap < M > > ,
410410 #[ cfg( not( feature = "atlas" ) ) ] ( mut texture_array_cache, render_queue) : (
411411 ResMut < TextureArrayCache > ,
@@ -436,10 +436,10 @@ pub fn queue_material_tilemap_meshes<M: MaterialTilemap>(
436436 . get_id :: < DrawTilemapMaterial < M > > ( )
437437 . unwrap ( ) ;
438438
439- for ( entity, chunk_id, transform, tilemap_id) in standard_tilemap_meshes. iter ( ) {
439+ for ( entity, main_entity , chunk_id, transform, tilemap_id) in standard_tilemap_meshes. iter ( ) {
440440 if !visible_entities
441441 . iter :: < With < TilemapRenderSettings > > ( )
442- . any ( |& entity| entity . index ( ) == tilemap_id. 0 . index ( ) )
442+ . any ( |( entity, main_entity ) | main_entity . index ( ) == tilemap_id. 0 . index ( ) )
443443 {
444444 continue ;
445445 }
@@ -490,7 +490,7 @@ pub fn queue_material_tilemap_meshes<M: MaterialTilemap>(
490490 transform. translation . z
491491 } ;
492492 transparent_phase. add ( Transparent2d {
493- entity,
493+ entity : ( entity , * main_entity ) ,
494494 draw_function : draw_tilemap,
495495 pipeline : pipeline_id,
496496 sort_key : FloatOrd ( z) ,
@@ -516,7 +516,7 @@ pub fn bind_material_tilemap_meshes<M: MaterialTilemap>(
516516 Query < ( & ChunkId , & TilemapId ) > ,
517517 Query < & MaterialTilemapHandle < M > > ,
518518 ) ,
519- mut views : Query < ( Entity , & VisibleEntities ) > ,
519+ mut views : Query < ( Entity , & RenderVisibleEntities ) > ,
520520 render_materials : Res < RenderMaterialsTilemap < M > > ,
521521 modified_image_ids : Res < ModifiedImageIds > ,
522522 #[ cfg( not( feature = "atlas" ) ) ] ( mut texture_array_cache, render_queue) : (
@@ -560,7 +560,7 @@ pub fn bind_material_tilemap_meshes<M: MaterialTilemap>(
560560 for ( chunk_id, tilemap_id) in standard_tilemap_meshes. iter ( ) {
561561 if !visible_entities
562562 . iter :: < With < TilemapRenderSettings > > ( )
563- . any ( |& entity| entity. index ( ) == tilemap_id. 0 . index ( ) )
563+ . any ( |( entity, main_entity ) | entity. index ( ) == tilemap_id. 0 . index ( ) )
564564 {
565565 continue ;
566566 }
0 commit comments