bool CXBoxRenderManager::Configure(unsigned int width, unsigned int height, unsigned int d_width, unsigned int d_height, float fps, unsigned flags) { DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); if(!m_pRenderer) { RestoreCriticalSection(g_graphicsContext, locks); CLog::Log(LOGERROR, "%s called without a valid Renderer object", __FUNCTION__); return false; } bool result = m_pRenderer->Configure(width, height, d_width, d_height, fps, flags); if(result) { if( flags & CONF_FLAGS_FULLSCREEN ) { lock.Leave(); g_application.getApplicationMessenger().SwitchToFullscreen(); lock.Enter(); } m_pRenderer->Update(false); m_bIsStarted = true; } RestoreCriticalSection(g_graphicsContext, locks); return result; }
void CGUIPythonWindowXMLDialog::Show(bool show /* = true */) { int count = ExitCriticalSection(g_graphicsContext); ThreadMessage tMsg = {TMSG_GUI_PYTHON_DIALOG, 1, show ? 1 : 0}; tMsg.lpVoid = this; g_application.getApplicationMessenger().SendMessage(tMsg, true); RestoreCriticalSection(g_graphicsContext, count); }
void CSingleExit::Restore() { if(m_count) { RestoreCriticalSection(m_cs, m_count); m_count = 0; } }
void CWinRenderManager::RenderUpdate(bool clear, DWORD flags, DWORD alpha) { DWORD locks = ExitCriticalSection(g_graphicsContext); CSharedLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); if (m_pRenderer) m_pRenderer->RenderUpdate(clear, flags, alpha); }
void CWinRenderManager::CreateThumbnail(LPDIRECT3DSURFACE8 surface, unsigned int width, unsigned int height) { DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); if (m_pRenderer) m_pRenderer->CreateThumbnail(surface, width, height); }
void CWinRenderManager::Update(bool bPauseDrawing) { DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); m_bPauseDrawing = bPauseDrawing; if (m_pRenderer) m_pRenderer->Update(bPauseDrawing); }
CWinRenderManager::~CWinRenderManager() { DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); if (m_pRenderer) delete m_pRenderer; m_pRenderer = NULL; }
void CXBoxRenderManager::CreateThumbnail(SDL_Surface * surface, unsigned int width, unsigned int height) #endif { DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); if (m_pRenderer) m_pRenderer->CreateThumbnail(surface, width, height); }
unsigned int CXBoxRenderManager::PreInit() { DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); #ifndef HAS_SDL if(!g_eventVBlank) { //Only do this on first run g_eventVBlank = CreateEvent(NULL,FALSE,FALSE,NULL); D3DDevice::SetVerticalBlankCallback((D3DVBLANKCALLBACK)VBlankCallback); } #endif /* no pedning present */ m_eventPresented.Set(); m_bIsStarted = false; m_bPauseDrawing = false; m_presentdelay = 5; if (!m_pRenderer) { #ifndef HAS_SDL // no renderer m_rendermethod = g_guiSettings.GetInt("videoplayer.rendermethod"); if (m_rendermethod == RENDER_OVERLAYS) { CLog::Log(LOGDEBUG, __FUNCTION__" - Selected Overlay-Renderer"); m_pRenderer = new CComboRenderer(g_graphicsContext.Get3DDevice()); } else if (m_rendermethod == RENDER_HQ_RGB_SHADER) { CLog::Log(LOGDEBUG, __FUNCTION__" - Selected RGB-Renderer"); m_pRenderer = new CRGBRenderer(g_graphicsContext.Get3DDevice()); } else if (m_rendermethod == RENDER_HQ_RGB_SHADERV2) { CLog::Log(LOGDEBUG, __FUNCTION__" - Selected RGB-Renderer V2"); m_pRenderer = new CRGBRendererV2(g_graphicsContext.Get3DDevice()); } else // if (g_guiSettings.GetInt("videoplayer.rendermethod") == RENDER_LQ_RGB_SHADER) { CLog::Log(LOGDEBUG, __FUNCTION__" - Selected LQShader-Renderer"); m_pRenderer = new CPixelShaderRenderer(g_graphicsContext.Get3DDevice()); } #elif defined(HAS_SDL_OPENGL) m_pRenderer = new CLinuxRendererGL(); #else m_pRenderer = new CLinuxRenderer(); #endif } return m_pRenderer->PreInit(); }
CRetakeLock(CSharedSection §ion, bool immidiate = true, CCriticalSection &owned = g_graphicsContext) : m_owned(owned) { m_count = ExitCriticalSection(m_owned); m_lock = new T(section); if(immidiate) { RestoreCriticalSection(m_owned, m_count); m_count = 0; } }
void CGUIDialog::Close(bool forceClose /* = false */) { if (!g_application.IsCurrentThread()) { // make sure graphics lock is not held int nCount = ExitCriticalSection(g_graphicsContext); g_application.getApplicationMessenger().Close(this, forceClose); RestoreCriticalSection(g_graphicsContext, nCount); } else g_application.getApplicationMessenger().Close(this, forceClose); }
CXBoxRenderManager::~CXBoxRenderManager() { #ifndef _LINUX DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); #endif if (m_pRenderer) delete m_pRenderer; m_pRenderer = NULL; }
void CXBoxRenderManager::RenderUpdate(bool clear, DWORD flags, DWORD alpha) { DWORD locks = ExitCriticalSection(g_graphicsContext); CSharedLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); #ifdef HAS_SDL_OPENGL if (m_pRenderer) m_pRenderer->RenderUpdate(clear, flags | RENDER_FLAG_LAST, alpha); m_eventPresented.Set(); #endif }
void CWinRenderManager::UnInit() { DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); m_bIsStarted = false; if (m_pRenderer) { m_pRenderer->UnInit(); delete m_pRenderer; m_pRenderer = NULL; } }
unsigned int CWinRenderManager::PreInit() { DWORD locks = ExitCriticalSection(g_graphicsContext); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); m_bIsStarted = false; m_bPauseDrawing = false; if (!m_pRenderer) { // no renderer CLog::Log(LOGDEBUG, __FUNCTION__" - Selected Win RGB-Renderer "); m_pRenderer = new CPixelShaderRenderer(g_graphicsContext.Get3DDevice()); } return m_pRenderer->PreInit(); }
void CXBoxRenderManager::UnInit() { DWORD locks = ExitCriticalSection(g_graphicsContext); m_bStop = true; m_eventFrame.Set(); StopThread(); CExclusiveLock lock(m_sharedSection); RestoreCriticalSection(g_graphicsContext, locks); m_bIsStarted = false; if (m_pRenderer) { m_pRenderer->UnInit(); #ifndef _LINUX delete m_pRenderer; m_pRenderer = NULL; #endif } }
~CRetakeLock() { delete m_lock; RestoreCriticalSection(m_owned, m_count); }