Skip to content

Commit

Permalink
RenderChunk2d::prepare requires &mut MeshVertexBufferLayouts now
Browse files Browse the repository at this point in the history
[12216](bevyengine/bevy#12216) introduced an argument `&mut MeshVertexBufferLayouts` to `get_mesh_vertex_buffer_layout`, which bevy_ecs_tilemap calls in `RenderChunk2d::prepare`
  • Loading branch information
ChristopherBiscardi committed Jun 7, 2024
1 parent 684be42 commit 31e330e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
15 changes: 12 additions & 3 deletions src/render/chunk.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use std::hash::{Hash, Hasher};

use bevy::prelude::{InheritedVisibility, Resource, Transform};
use bevy::render::render_asset::RenderAssetUsages;
use bevy::render::{mesh::BaseMeshPipelineKey, primitives::Aabb};
use bevy::{math::Mat4, render::mesh::PrimitiveTopology};
Expand All @@ -14,6 +13,10 @@ use bevy::{
},
utils::HashMap,
};
use bevy::{
prelude::{InheritedVisibility, Resource, Transform},
render::mesh::MeshVertexBufferLayouts,
};

use crate::prelude::helpers::transform::{chunk_aabb, chunk_index_to_world_space};
use crate::render::extract::ExtractedFrustum;
Expand Down Expand Up @@ -355,7 +358,11 @@ impl RenderChunk2d {
}
}

pub fn prepare(&mut self, device: &RenderDevice) {
pub fn prepare(
&mut self,
device: &RenderDevice,
mut mesh_vertex_buffer_layouts: &mut MeshVertexBufferLayouts,
) {
if self.dirty_mesh {
let size = ((self.size_in_tiles.x * self.size_in_tiles.y) * 4) as usize;
let mut positions: Vec<[f32; 4]> = Vec::with_capacity(size);
Expand Down Expand Up @@ -444,7 +451,9 @@ impl RenderChunk2d {
}
});

let mesh_vertex_buffer_layout = self.mesh.get_mesh_vertex_buffer_layout();
let mesh_vertex_buffer_layout = self
.mesh
.get_mesh_vertex_buffer_layout(&mut mesh_vertex_buffer_layouts);
self.gpu_mesh = Some(GpuMesh {
vertex_buffer,
vertex_count: self.mesh.count_vertices() as u32,
Expand Down
5 changes: 3 additions & 2 deletions src/render/prepare.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ use crate::render::extract::ExtractedFrustum;
use crate::{
prelude::TilemapGridSize, render::RenderChunkSize, render::SecondsSinceStartup, FrustumCulling,
};
use bevy::log::trace;
use bevy::prelude::{InheritedVisibility, Resource};
use bevy::{log::trace, render::mesh::MeshVertexBufferLayouts};
use bevy::{
math::{Mat4, UVec4},
prelude::{Commands, Component, Entity, GlobalTransform, Query, Res, ResMut, Vec2},
Expand Down Expand Up @@ -63,6 +63,7 @@ pub(crate) fn prepare(
render_device: Res<RenderDevice>,
render_queue: Res<RenderQueue>,
seconds_since_startup: Res<SecondsSinceStartup>,
mut mesh_vertex_buffer_layouts: ResMut<MeshVertexBufferLayouts>,
) {
for tile in extracted_tiles.iter() {
// First if the tile position has changed remove the tile from the old location.
Expand Down Expand Up @@ -188,7 +189,7 @@ pub(crate) fn prepare(
}
trace!("Preparing chunk: {:?}", chunk.get_index());

chunk.prepare(&render_device);
chunk.prepare(&render_device, &mut mesh_vertex_buffer_layouts);

let mut chunk_uniform: TilemapUniformData = chunk.into();
chunk_uniform.time = **seconds_since_startup;
Expand Down

0 comments on commit 31e330e

Please sign in to comment.