aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwiso <wiso@svn>2009-12-20 19:10:49 +0000
committerwiso <wiso@svn>2009-12-20 19:10:49 +0000
commitefce89260ba6dce0460a014fbc6a5627bf20bde9 (patch)
tree6dd2304a3af9b908c8b97906aa38cd3c0c8ff54c
parent48c6fbf0fadc3d6fce9bd18f4df1c8265ccc514a (diff)
[WIN32] changed: if BeginScene() fails try to call EndScene() as it might wasn't called due to an earlier exception. This could fail too on older cards because of a missing Present().
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@25887 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
-rw-r--r--xbmc/RenderSystemDX.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/xbmc/RenderSystemDX.cpp b/xbmc/RenderSystemDX.cpp
index e2a269d428..c31737e848 100644
--- a/xbmc/RenderSystemDX.cpp
+++ b/xbmc/RenderSystemDX.cpp
@@ -414,6 +414,10 @@ bool CRenderSystemDX::BeginRender()
if(FAILED (m_pD3DDevice->BeginScene()))
{
CLog::Log(LOGERROR, "m_pD3DDevice->BeginScene() failed");
+ // When XBMC caught an exception after BeginScene(), EndScene() may never been called
+ // and thus all following BeginScene() will fail too.
+ if(FAILED (m_pD3DDevice->EndScene()))
+ CLog::Log(LOGERROR, "m_pD3DDevice->EndScene() failed");
return false;
}
m_inScene = true;