void RasterNode::setEffect(FXNodePtr pFXNode) { if (m_pFXNode && m_pFXNode != pFXNode) { m_pFXNode->disconnect(); } if (m_pFXNode && !pFXNode) { m_pFBO = MCFBOPtr(); } m_pFXNode = pFXNode; if (getState() == NS_CANRENDER) { setupFX(); } }
void MainCanvas::renderTree() { preRender(); DisplayEngine* pDisplayEngine = getPlayer()->getDisplayEngine(); unsigned numWindows = pDisplayEngine->getNumWindows(); for (unsigned i=0; i<numWindows; ++i) { ScopeTimer Timer(RootRenderProfilingZone); WindowPtr pWindow = pDisplayEngine->getWindow(i); IntRect viewport = pWindow->getViewport(); renderWindow(pWindow, MCFBOPtr(), viewport); } GLContextManager::get()->reset(); }
void RasterNode::disconnect(bool bKill) { if (m_pSurface) { m_pSurface->destroy(); } m_pFBO = MCFBOPtr(); m_pImagingProjection = ImagingProjectionPtr(); if (bKill) { m_pFXNode = FXNodePtr(); } else { if (m_pFXNode) { m_pFXNode->disconnect(); } } AreaNode::disconnect(bKill); }