Fix canvas
This commit is contained in:
@@ -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>>,
|
||||||
|
|||||||
Reference in New Issue
Block a user