Fix canvas

This commit is contained in:
2024-04-13 18:42:02 +02:00
parent 5cb87a3a81
commit d6f900a3e4

View File

@@ -7,7 +7,7 @@ use bevy::{
render::{ render::{
render_resource::{encase, AsBindGroup, OwnedBindingResource, ShaderRef, ShaderType}, render_resource::{encase, AsBindGroup, OwnedBindingResource, ShaderRef, ShaderType},
renderer::RenderQueue, renderer::RenderQueue,
Render, RenderApp, RenderSet, Extract, Render, RenderApp, RenderSet,
}, },
sprite::{Material2d, Material2dPlugin, MaterialMesh2dBundle, RenderMaterials2d}, sprite::{Material2d, Material2dPlugin, MaterialMesh2dBundle, RenderMaterials2d},
}; };
@@ -23,7 +23,7 @@ impl Plugin for CanvasPlugin {
.add_systems(Startup, spawn_canvas); .add_systems(Startup, spawn_canvas);
app.sub_app_mut(RenderApp) app.sub_app_mut(RenderApp)
.add_systems(ExtractSchedule, extract_tile_lights) .add_systems(ExtractSchedule, (extract_tile_lights, extract_canvas))
.add_systems( .add_systems(
Render, Render,
prepare_canvas_material.in_set(RenderSet::PrepareAssets), prepare_canvas_material.in_set(RenderSet::PrepareAssets),
@@ -82,7 +82,7 @@ fn prepare_canvas_material(
let mut buffer = encase::UniformBuffer::new(Vec::new()); let mut buffer = encase::UniformBuffer::new(Vec::new());
buffer buffer
.write(&CanvasMaterialUniform { .write(&CanvasMaterialUniform {
ambient_color: Color::RED, ambient_color: CANVAS_COLOR,
tile_lights: tile_lights_uniform.clone(), tile_lights: tile_lights_uniform.clone(),
number_of_lights: tile_lights.len() as _, number_of_lights: tile_lights.len() as _,
}) })
@@ -93,6 +93,15 @@ fn prepare_canvas_material(
} }
} }
fn extract_canvas(
mut commands: Commands,
canvas_query: Extract<Query<(Entity, &Handle<CanvasMaterial>)>>,
) {
for (entity, handle) in canvas_query.iter() {
commands.get_or_spawn(entity).insert(handle.clone());
}
}
fn spawn_canvas( fn spawn_canvas(
mut commands: Commands, mut commands: Commands,
mut mesh_assets: ResMut<Assets<Mesh>>, mut mesh_assets: ResMut<Assets<Mesh>>,