From ccec48e382f39991acf01bf3b5a808d90f1ffdcb Mon Sep 17 00:00:00 2001 From: Ted John Date: Sun, 5 Jun 2016 12:54:29 +0100 Subject: [PATCH] do not draw windows twice on OpenGL --- src/drawing/engines/OpenGLDrawingEngine.cpp | 1 - src/drawing/engines/SoftwareDrawingEngine.cpp | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/drawing/engines/OpenGLDrawingEngine.cpp b/src/drawing/engines/OpenGLDrawingEngine.cpp index a430de5d78..b54503a00b 100644 --- a/src/drawing/engines/OpenGLDrawingEngine.cpp +++ b/src/drawing/engines/OpenGLDrawingEngine.cpp @@ -175,7 +175,6 @@ public: glTranslatef(-1.0f, -1.0f, 0); glScalef(2.0f / _width, 2.0f / _height, 0); - gfx_redraw_screen_rect(0, 0, _width - 1, _height - 1); window_update_all_viewports(); gfx_redraw_screen_rect(0, 0, _width - 1, _height - 1); window_update_all(); diff --git a/src/drawing/engines/SoftwareDrawingEngine.cpp b/src/drawing/engines/SoftwareDrawingEngine.cpp index 7ac63c9e2f..74a34fdc39 100644 --- a/src/drawing/engines/SoftwareDrawingEngine.cpp +++ b/src/drawing/engines/SoftwareDrawingEngine.cpp @@ -293,7 +293,10 @@ public: _rainDrawer.SetDPI(&_bitsDPI); _rainDrawer.Restore(); + // Redraw dirty regions before updating the viewports, otherwise + // when viewports get panned, they copy dirty pixels DrawAllDirtyBlocks(); + window_update_all_viewports(); DrawAllDirtyBlocks(); window_update_all();