@@ -1117,20 +1117,50 @@ void CRenderItemManager::PreDrawWorld()
1117
1117
assert (!m_pNonAADepthSurface2);
1118
1118
1119
1119
const D3DPRESENT_PARAMETERS& pp = g_pDeviceState->CreationState .PresentationParameters ;
1120
+ HRESULT hr = D3D_OK;
1120
1121
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
+ }
1123
1131
else
1124
1132
{
1125
1133
// 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
+ }
1130
1151
}
1131
1152
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
+ }
1134
1164
}
1135
1165
1136
1166
// Set depth buffer and maybe render target
0 commit comments