void CGUIWindowManager::Render() { assert(g_application.IsCurrentThread()); CSingleLock lock(g_graphicsContext); CGUIWindow* pWindow = GetWindow(GetActiveWindow()); if (pWindow) { pWindow->ClearBackground(); pWindow->Render(); } // we render the dialogs based on their render order. vector<CGUIWindow *> renderList = m_activeDialogs; stable_sort(renderList.begin(), renderList.end(), RenderOrderSortFunction); for (iDialog it = renderList.begin(); it != renderList.end(); ++it) { if ((*it)->IsDialogRunning()) (*it)->Render(); } }
void CGUIWindowManager::Render_Internal() { CSingleLock lock(g_graphicsContext); int nActive = GetActiveWindow(); CGUIWindow* pWindow = GetWindow(nActive); if(!pWindow && (nActive < WINDOW_APPS_START || nActive > WINDOW_APPS_END)) { g_graphicsContext.Clear(); return; } m_bUseFBO = g_WindowManagerFBO.IsSupported() && IsColorBufferActive(); // FBO don't work in Win32 GLES emulator #if defined(_WIN32) && defined(HAS_GLES) m_bUseFBO = false; #endif if(g_graphicsContext.GetRenderLowresGraphics()) m_bUseFBO = false; #ifdef HAS_EMBEDDED if(g_application.IsPlaying()) m_bUseFBO = false; #endif if(!m_bUseFBO) { m_bFBOValid = false; pWindow->Render(); } else { RenderUsingFBO(pWindow); } }