diff options
Diffstat (limited to 'servers/rendering/renderer_viewport.cpp')
-rw-r--r-- | servers/rendering/renderer_viewport.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp index e43036f177..e8e0d2e3eb 100644 --- a/servers/rendering/renderer_viewport.cpp +++ b/servers/rendering/renderer_viewport.cpp @@ -616,7 +616,7 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) { } } -void RendererViewport::draw_viewports() { +void RendererViewport::draw_viewports(bool p_swap_buffers) { timestamp_vp_map.clear(); // get our xr interface in case we need it @@ -799,11 +799,14 @@ void RendererViewport::draw_viewports() { total_draw_calls_used = draw_calls_used; RENDER_TIMESTAMP("< Render Viewports"); - //this needs to be called to make screen swapping more efficient - RSG::rasterizer->prepare_for_blitting_render_targets(); - for (const KeyValue<int, Vector<BlitToScreen>> &E : blit_to_screen_list) { - RSG::rasterizer->blit_render_targets_to_screen(E.key, E.value.ptr(), E.value.size()); + if (p_swap_buffers) { + //this needs to be called to make screen swapping more efficient + RSG::rasterizer->prepare_for_blitting_render_targets(); + + for (const KeyValue<int, Vector<BlitToScreen>> &E : blit_to_screen_list) { + RSG::rasterizer->blit_render_targets_to_screen(E.key, E.value.ptr(), E.value.size()); + } } } |