summaryrefslogtreecommitdiffstats
path: root/src/api/studio3dqml/q3dsrenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/studio3dqml/q3dsrenderer.cpp')
-rw-r--r--src/api/studio3dqml/q3dsrenderer.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/api/studio3dqml/q3dsrenderer.cpp b/src/api/studio3dqml/q3dsrenderer.cpp
index 7d63b30..c902934 100644
--- a/src/api/studio3dqml/q3dsrenderer.cpp
+++ b/src/api/studio3dqml/q3dsrenderer.cpp
@@ -197,27 +197,32 @@ void Q3DSRenderer::render()
// Don't render if the plugin is hidden; however, if hidden, but sure
// to process pending commands so we can be shown again.
if (m_initialized) {
+ bool updateAgain = false;
if (m_visibleFlag)
- draw();
+ updateAgain = draw();
else
processCommands();
- update(); // mark as dirty to ensure update again
+
+ if (updateAgain)
+ update(); // mark as dirty to ensure update again
}
}
/** Cause Qt3DS runtime to render content.
* Initializes GL and the runtime when called the first time.
*/
-void Q3DSRenderer::draw()
+bool Q3DSRenderer::draw()
{
+ bool ret = true;
if (m_runtime && m_runtime->IsInitialised() && m_window) {
if (m_initialized)
m_runtime->RestoreState();
- m_runtime->Render();
+ ret = m_runtime->Render();
m_runtime->SaveState();
m_window->resetOpenGLState();
}
+ return ret;
}
bool Q3DSRenderer::initializeRuntime(QOpenGLFramebufferObject *inFbo)