@@ -1117,20 +1117,50 @@ void CRenderItemManager::PreDrawWorld()
11171117 assert (!m_pNonAADepthSurface2);
11181118
11191119 const D3DPRESENT_PARAMETERS& pp = g_pDeviceState->CreationState .PresentationParameters ;
1120+ HRESULT hr = D3D_OK;
11201121 if (!m_bIsSwiftShader)
1121- m_pDevice->CreateRenderTarget (m_uiDefaultViewportSizeX, m_uiDefaultViewportSizeY, pp.BackBufferFormat , D3DMULTISAMPLE_NONE, 0 , false ,
1122- &m_pNonAARenderTarget, NULL );
1122+ {
1123+ hr = m_pDevice->CreateRenderTarget (m_uiDefaultViewportSizeX, m_uiDefaultViewportSizeY, pp.BackBufferFormat , D3DMULTISAMPLE_NONE, 0 , false ,
1124+ &m_pNonAARenderTarget, NULL );
1125+ if (FAILED (hr) || !m_pNonAARenderTarget)
1126+ {
1127+ SAFE_RELEASE (m_pNonAARenderTarget);
1128+ hr = FAILED (hr) ? hr : E_FAIL;
1129+ }
1130+ }
11231131 else
11241132 {
11251133 // Render target texture is needed when emulating StretchRect
1126- m_pDevice->CreateTexture (m_uiDefaultViewportSizeX, m_uiDefaultViewportSizeY, 1 , D3DUSAGE_RENDERTARGET, pp.BackBufferFormat , D3DPOOL_DEFAULT,
1127- &m_pNonAARenderTargetTexture, NULL );
1128- if (m_pNonAARenderTargetTexture)
1129- m_pNonAARenderTargetTexture->GetSurfaceLevel (0 , &m_pNonAARenderTarget);
1134+ hr = m_pDevice->CreateTexture (m_uiDefaultViewportSizeX, m_uiDefaultViewportSizeY, 1 , D3DUSAGE_RENDERTARGET, pp.BackBufferFormat , D3DPOOL_DEFAULT,
1135+ &m_pNonAARenderTargetTexture, NULL );
1136+ if (FAILED (hr) || !m_pNonAARenderTargetTexture)
1137+ {
1138+ SAFE_RELEASE (m_pNonAARenderTargetTexture);
1139+ hr = FAILED (hr) ? hr : E_FAIL;
1140+ }
1141+ else
1142+ {
1143+ hr = m_pNonAARenderTargetTexture->GetSurfaceLevel (0 , &m_pNonAARenderTarget);
1144+ if (FAILED (hr) || !m_pNonAARenderTarget)
1145+ {
1146+ SAFE_RELEASE (m_pNonAARenderTarget);
1147+ SAFE_RELEASE (m_pNonAARenderTargetTexture);
1148+ hr = FAILED (hr) ? hr : E_FAIL;
1149+ }
1150+ }
11301151 }
11311152
1132- m_pDevice->CreateDepthStencilSurface (m_uiDefaultViewportSizeX, m_uiDefaultViewportSizeY, pp.AutoDepthStencilFormat , D3DMULTISAMPLE_NONE, 0 , true ,
1133- &m_pNonAADepthSurface2, NULL );
1153+ if (SUCCEEDED (hr))
1154+ {
1155+ hr = m_pDevice->CreateDepthStencilSurface (m_uiDefaultViewportSizeX, m_uiDefaultViewportSizeY, pp.AutoDepthStencilFormat , D3DMULTISAMPLE_NONE, 0 ,
1156+ true , &m_pNonAADepthSurface2, NULL );
1157+ if (FAILED (hr) || !m_pNonAADepthSurface2)
1158+ {
1159+ SAFE_RELEASE (m_pNonAADepthSurface2);
1160+ SAFE_RELEASE (m_pNonAARenderTarget);
1161+ SAFE_RELEASE (m_pNonAARenderTargetTexture);
1162+ }
1163+ }
11341164 }
11351165
11361166 // Set depth buffer and maybe render target
0 commit comments