From 2b681b167c1d307f550a8dc7b56a94d13886827e Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 25 May 2015 22:07:05 +0300 Subject: Add method safeDrawFrame for safe OpenGL renderer. --- src/gui/widgets/scrollarea.cpp | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'src/gui/widgets/scrollarea.cpp') diff --git a/src/gui/widgets/scrollarea.cpp b/src/gui/widgets/scrollarea.cpp index 481e4365d..1eb5417e8 100644 --- a/src/gui/widgets/scrollarea.cpp +++ b/src/gui/widgets/scrollarea.cpp @@ -436,25 +436,33 @@ void ScrollArea::drawFrame(Graphics *graphics) updateCalcFlag(graphics); - if (isBatchDrawRenders(openGLMode)) + if (mRedraw) { - if (mRedraw) - { - mVertexes2->clear(); - graphics->calcWindow(mVertexes2, - 0, 0, - w, h, - background); - graphics->finalize(mVertexes2); - } - graphics->drawTileCollection(mVertexes2); - } - else - { - graphics->drawImageRect(0, 0, + mVertexes2->clear(); + graphics->calcWindow(mVertexes2, + 0, 0, w, h, background); + graphics->finalize(mVertexes2); } + graphics->drawTileCollection(mVertexes2); + } + BLOCK_END("ScrollArea::drawFrame") +} + +void ScrollArea::safeDrawFrame(Graphics *graphics) +{ + BLOCK_START("ScrollArea::drawFrame") + if (mOpaque) + { + const int bs = mFrameSize * 2; + const int w = mDimension.width + bs; + const int h = mDimension.height + bs; + + updateCalcFlag(graphics); + graphics->drawImageRect(0, 0, + w, h, + background); } BLOCK_END("ScrollArea::drawFrame") } -- cgit v1.2.3-60-g2f50