void Canvas::doFrame(bool bPythonAvailable) { s_pActiveCanvas = shared_from_this(); emitPreRenderSignal(); if (!m_pPlayer->isStopping()) { ScopeTimer Timer(RenderProfilingZone); if (bPythonAvailable) { Py_BEGIN_ALLOW_THREADS; try { render(); } catch(...) { Py_BLOCK_THREADS; throw; } Py_END_ALLOW_THREADS; } else { render(); } } emitFrameEndSignal(); s_pActiveCanvas = CanvasPtr(); }
void Canvas::doFrame(bool bPythonAvailable) { emitPreRenderSignal(); if (!m_pPlayer->isStopping()) { ScopeTimer Timer(RenderProfilingZone); Player::get()->startTraversingTree(); if (bPythonAvailable) { Py_BEGIN_ALLOW_THREADS; try { renderTree(); } catch(...) { Py_BLOCK_THREADS; Player::get()->endTraversingTree(); throw; } Py_END_ALLOW_THREADS; } else { renderTree(); } Player::get()->endTraversingTree(); } emitFrameEndSignal(); }
void OffscreenCanvas::manualRender() { emitPreRenderSignal(); render(); emitFrameEndSignal(); }