void CRenderSystemGLES::PresentRender(bool rendered) { if (!m_bRenderCreated) return; PresentRenderImpl(rendered); }
bool CRenderSystemGLES::DestroyRenderSystem() { CLog::Log(LOGDEBUG, "GUI Shader - Destroying Shader : %p", m_pGUIshader); if (m_pGUIshader) { for (int i = 0; i < SM_ESHADERCOUNT; i++) { if (m_pGUIshader[i]) { m_pGUIshader[i]->Free(); delete m_pGUIshader[i]; m_pGUIshader[i] = NULL; } } delete[] m_pGUIshader; m_pGUIshader = NULL; } ResetScissors(); CDirtyRegionList dirtyRegions; CDirtyRegion dirtyWindow(g_graphicsContext.GetViewWindow()); dirtyRegions.push_back(dirtyWindow); ClearBuffers(0); glFinish(); PresentRenderImpl(true); m_bRenderCreated = false; return true; }
bool CWinSystemWin32DX::PresentRender(const CDirtyRegionList& dirty) { bool result = PresentRenderImpl(dirty); if (m_delayDispReset && m_dispResetTimer.IsTimePast()) { m_delayDispReset = false; CWinSystemWin32::OnDisplayReset(); } return result; }
void CRenderSystemGL::PresentRender(bool rendered, bool videoLayer) { SetVSync(true); if (!m_bRenderCreated) return; PresentRenderImpl(rendered); if (!rendered) Sleep(40); }
void CRenderSystemGLES::PresentRender(bool rendered, bool videoLayer) { SetVSync(true); if (!m_bRenderCreated) return; PresentRenderImpl(rendered); // if video is rendered to a separate layer, we should not block this thread if (!rendered && !videoLayer) Sleep(40); }
void CRenderSystemGL::PresentRender(bool rendered) { SetVSync(true); if (!m_bRenderCreated) return; PresentRenderImpl(rendered); m_latencyCounter++; if (!rendered) Sleep(40); }
void CWinSystemWin32DX::PresentRender(bool rendered, bool videoLayer) { if (rendered) PresentRenderImpl(rendered); if (m_delayDispReset && m_dispResetTimer.IsTimePast()) { m_delayDispReset = false; CWinSystemWin32::OnDisplayReset(); } if (!rendered) Sleep(40); }
bool CRenderSystemGL::PresentRender(const CDirtyRegionList& dirty) { if (!m_bRenderCreated) return false; if (m_iVSyncMode != 0 && m_iSwapRate != 0) { int64_t curr, diff, freq; curr = CurrentHostCounter(); freq = CurrentHostFrequency(); if(m_iSwapStamp == 0) m_iSwapStamp = curr; /* calculate our next swap timestamp */ diff = curr - m_iSwapStamp; diff = m_iSwapRate - diff % m_iSwapRate; m_iSwapStamp = curr + diff; /* sleep as close as we can before, assume 1ms precision of sleep * * this should always awake so that we are guaranteed the given * * m_iSwapTime to do our swap */ diff = (diff - m_iSwapTime) * 1000 / freq; if (diff > 0) Sleep((DWORD)diff); } bool result = PresentRenderImpl(dirty); m_latencyCounter++; if (m_iVSyncMode && m_iSwapRate != 0) { int64_t curr, diff; curr = CurrentHostCounter(); diff = curr - m_iSwapStamp; m_iSwapStamp = curr; if (MathUtils::abs(diff - m_iSwapRate) < MathUtils::abs(diff)) CLog::Log(LOGDEBUG, "%s - missed requested swap",__FUNCTION__); } return result; }