Skip to content

Commit 31e330e

Browse files
RenderChunk2d::prepare requires &mut MeshVertexBufferLayouts now
[12216](bevyengine/bevy#12216) introduced an argument `&mut MeshVertexBufferLayouts` to `get_mesh_vertex_buffer_layout`, which bevy_ecs_tilemap calls in `RenderChunk2d::prepare`
1 parent 684be42 commit 31e330e

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

src/render/chunk.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use std::hash::{Hash, Hasher};
22

3-
use bevy::prelude::{InheritedVisibility, Resource, Transform};
43
use bevy::render::render_asset::RenderAssetUsages;
54
use bevy::render::{mesh::BaseMeshPipelineKey, primitives::Aabb};
65
use bevy::{math::Mat4, render::mesh::PrimitiveTopology};
@@ -14,6 +13,10 @@ use bevy::{
1413
},
1514
utils::HashMap,
1615
};
16+
use bevy::{
17+
prelude::{InheritedVisibility, Resource, Transform},
18+
render::mesh::MeshVertexBufferLayouts,
19+
};
1720

1821
use crate::prelude::helpers::transform::{chunk_aabb, chunk_index_to_world_space};
1922
use crate::render::extract::ExtractedFrustum;
@@ -355,7 +358,11 @@ impl RenderChunk2d {
355358
}
356359
}
357360

358-
pub fn prepare(&mut self, device: &RenderDevice) {
361+
pub fn prepare(
362+
&mut self,
363+
device: &RenderDevice,
364+
mut mesh_vertex_buffer_layouts: &mut MeshVertexBufferLayouts,
365+
) {
359366
if self.dirty_mesh {
360367
let size = ((self.size_in_tiles.x * self.size_in_tiles.y) * 4) as usize;
361368
let mut positions: Vec<[f32; 4]> = Vec::with_capacity(size);
@@ -444,7 +451,9 @@ impl RenderChunk2d {
444451
}
445452
});
446453

447-
let mesh_vertex_buffer_layout = self.mesh.get_mesh_vertex_buffer_layout();
454+
let mesh_vertex_buffer_layout = self
455+
.mesh
456+
.get_mesh_vertex_buffer_layout(&mut mesh_vertex_buffer_layouts);
448457
self.gpu_mesh = Some(GpuMesh {
449458
vertex_buffer,
450459
vertex_count: self.mesh.count_vertices() as u32,

src/render/prepare.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ use crate::render::extract::ExtractedFrustum;
99
use crate::{
1010
prelude::TilemapGridSize, render::RenderChunkSize, render::SecondsSinceStartup, FrustumCulling,
1111
};
12-
use bevy::log::trace;
1312
use bevy::prelude::{InheritedVisibility, Resource};
13+
use bevy::{log::trace, render::mesh::MeshVertexBufferLayouts};
1414
use bevy::{
1515
math::{Mat4, UVec4},
1616
prelude::{Commands, Component, Entity, GlobalTransform, Query, Res, ResMut, Vec2},
@@ -63,6 +63,7 @@ pub(crate) fn prepare(
6363
render_device: Res<RenderDevice>,
6464
render_queue: Res<RenderQueue>,
6565
seconds_since_startup: Res<SecondsSinceStartup>,
66+
mut mesh_vertex_buffer_layouts: ResMut<MeshVertexBufferLayouts>,
6667
) {
6768
for tile in extracted_tiles.iter() {
6869
// First if the tile position has changed remove the tile from the old location.
@@ -188,7 +189,7 @@ pub(crate) fn prepare(
188189
}
189190
trace!("Preparing chunk: {:?}", chunk.get_index());
190191

191-
chunk.prepare(&render_device);
192+
chunk.prepare(&render_device, &mut mesh_vertex_buffer_layouts);
192193

193194
let mut chunk_uniform: TilemapUniformData = chunk.into();
194195
chunk_uniform.time = **seconds_since_startup;

0 commit comments

Comments
 (0)