Пример #1
0
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();
}
Пример #2
0
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();
}
Пример #3
0
void OffscreenCanvas::manualRender()
{
    emitPreRenderSignal(); 
    render(); 
    emitFrameEndSignal(); 
}