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_resource::{encase, AsBindGroup, OwnedBindingResource, ShaderRef, ShaderType},
renderer::RenderQueue,
Render, RenderApp, RenderSet,
Extract, Render, RenderApp, RenderSet,
},
sprite::{Material2d, Material2dPlugin, MaterialMesh2dBundle, RenderMaterials2d},
};
@@ -23,7 +23,7 @@ impl Plugin for CanvasPlugin {
.add_systems(Startup, spawn_canvas);
app.sub_app_mut(RenderApp)
.add_systems(ExtractSchedule, extract_tile_lights)
.add_systems(ExtractSchedule, (extract_tile_lights, extract_canvas))
.add_systems(
Render,
prepare_canvas_material.in_set(RenderSet::PrepareAssets),
@@ -82,7 +82,7 @@ fn prepare_canvas_material(
let mut buffer = encase::UniformBuffer::new(Vec::new());
buffer
.write(&CanvasMaterialUniform {
ambient_color: Color::RED,
ambient_color: CANVAS_COLOR,
tile_lights: tile_lights_uniform.clone(),
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(
mut commands: Commands,
mut mesh_assets: ResMut<Assets<Mesh>>,