Skip to content

Commit 9455f60

Browse files
committed
Fixed issue where opacity layers was being ignored.
1 parent a28080d commit 9455f60

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/render/ui_pass.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use bevy::ecs::prelude::*;
44
use bevy::prelude::{Color, Image};
55
use bevy::render::render_asset::RenderAssets;
66
use bevy::render::render_phase::{
7-
BatchedPhaseItem, CachedRenderPipelinePhaseItem, DrawFunctionId, PhaseItem,
7+
BatchedPhaseItem, CachedRenderPipelinePhaseItem, DrawFunctionId, PhaseItem, DrawFunctions,
88
};
99
use bevy::render::render_resource::{CachedRenderPipelineId, RenderPassColorAttachment};
1010
use bevy::render::{
@@ -209,6 +209,10 @@ impl Node for MainPassUINode {
209209
if let Some(opacity_layer_manager) =
210210
opacity_layer_manager.camera_layers.get(&view_entity)
211211
{
212+
let draw_functions = world.resource::<DrawFunctions<TransparentOpacityUI>>();
213+
let mut draw_functions = draw_functions.write();
214+
draw_functions.prepare(world);
215+
212216
for layer_id in 1..MAX_OPACITY_LAYERS {
213217
// Start new render pass.
214218
let gpu_images = world.get_resource::<RenderAssets<Image>>().unwrap();
@@ -229,8 +233,11 @@ impl Node for MainPassUINode {
229233

230234
let mut tracked_pass =
231235
render_context.begin_tracked_render_pass(pass_descriptor);
232-
233-
transparent_opacity_phase.render(&mut tracked_pass, world, view_entity);
236+
237+
for item in transparent_opacity_phase.items.iter().filter(|i| i.opacity_layer == layer_id) {
238+
let draw_function = draw_functions.get_mut(item.draw_function()).unwrap();
239+
draw_function.draw(world, &mut tracked_pass, view_entity, item);
240+
}
234241
}
235242
}
236243
}

0 commit comments

Comments
 (0)