diff --git a/qt/draw_widget.cpp b/qt/draw_widget.cpp index d1a11ba5ba..169486f1e1 100644 --- a/qt/draw_widget.cpp +++ b/qt/draw_widget.cpp @@ -174,6 +174,10 @@ namespace qt m_framework->BeginPaint(); shared_ptr paintEvent(new PaintEvent(p.get())); m_framework->DoPaint(paintEvent); + + /// swapping buffers before ending the frame, see issue #333 + swapBuffers(); + m_framework->EndPaint(); } diff --git a/qt/widgets.cpp b/qt/widgets.cpp index f458397c02..ad366ac129 100644 --- a/qt/widgets.cpp +++ b/qt/widgets.cpp @@ -24,6 +24,9 @@ namespace qt void GLDrawWidget::initializeGL() { + /// we'll perform swap by ourselves, see issue #333 + setAutoBufferSwap(false); + if (m_p == 0) { #ifdef OMIM_OS_WINDOWS @@ -75,6 +78,7 @@ namespace qt p.m_glyphCacheID = m_resourceManager->guiThreadGlyphCacheID(); p.m_skinName = GetPlatform().SkinName(); p.m_visualScale = GetPlatform().VisualScale(); + p.m_isSynchronized = true; m_p = shared_ptr(new DrawerYG(p)); }