Skip to content

Commit 00f13e7

Browse files
committed
render_*: Fix viewport ordering regression
1 parent fb10837 commit 00f13e7

2 files changed

Lines changed: 9 additions & 9 deletions

File tree

engine/modules/render_opengl/src/gl_renderer.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,11 @@ impl GlRenderer {
152152
.downcast_mut::<RenderCanvas>()
153153
.expect("Canvas object from window was unexpected type!");
154154

155-
canvas.get_viewports_2d().sort_by_key(|vp| vp.get_z_index());
155+
let mut viewports = canvas.get_viewports_2d_mut();
156+
viewports.sort_by_key(|vp| vp.get_z_index());
156157

157158
// initial render pass
158-
for viewport in canvas.get_viewports_2d_mut() {
159+
for viewport in &mut viewports {
159160
draw_scene_2d_to_framebuffer(&mut self.state, viewport, &resolution);
160161
}
161162

@@ -174,12 +175,11 @@ impl GlRenderer {
174175
//
175176
// In effect, the lightmap of a given viewport A will be applied to all
176177
// viewports behind A.
177-
let viewports = canvas.get_viewports_2d();
178178
for target_idx in 0..viewports.len() {
179-
let target_viewport = viewports[target_idx];
179+
let target_viewport = &viewports[target_idx];
180180

181181
for src_idx in target_idx..viewports.len() {
182-
let source_viewport = viewports[src_idx];
182+
let source_viewport = &viewports[src_idx];
183183
let source_scene_id = source_viewport.get_scene_id();
184184
let source_scene = get_render_context_2d().get_scene(source_scene_id).unwrap();
185185
if !source_scene.is_lighting_enabled() {
@@ -190,7 +190,7 @@ impl GlRenderer {
190190
source_viewport.get_id(),
191191
target_viewport.get_id(),
192192
target_viewport.get_viewport(),
193-
&resolution.value,
193+
&resolution.value,
194194
);
195195
}
196196
}

engine/modules/render_vulkan/src/renderer/vulkan_renderer.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -335,9 +335,9 @@ impl VulkanRenderer {
335335

336336
let canvas = window.get_canvas_mut().unwrap()
337337
.as_any_mut().downcast_mut::<RenderCanvas>().unwrap();
338-
canvas.get_viewports_2d().clone().sort_by_key(|vp| vp.get_z_index());
339-
340-
let viewports = canvas.get_viewports_2d_mut();
338+
let mut viewports = canvas.get_viewports_2d_mut();
339+
viewports.sort_by_key(|vp| vp.get_z_index());
340+
let viewports = viewports;
341341

342342
//timer_start = std::chrono::high_resolution_clock::now();
343343
for viewport in viewports {

0 commit comments

Comments
 (0)