FT_Bitmap bitmap = bitGlyph->bitmap;
ID3D11DeviceContext* pContext = g_Windowing.GetImmediateContext();
- if (m_speedupTexture)
+ if (m_speedupTexture && pContext)
{
CD3D11_BOX dstBox(x1, y1, 0, x2, y2, 1);
pContext->UpdateSubresource(m_speedupTexture->Get(), 0, &dstBox, bitmap.buffer, bitmap.pitch, 0);
SAFE_RELEASE(m_pOutput);
SAFE_RELEASE(m_adapter);
SAFE_RELEASE(m_dxgiFactory);
-#ifdef _DEBUG
- if (m_d3dDebug)
- {
- m_d3dDebug->ReportLiveDeviceObjects(D3D11_RLDO_SUMMARY | D3D11_RLDO_DETAIL);
- m_d3dDebug->Release();
- }
-#endif
return true;
}
for (std::vector<ID3DResource *>::iterator i = m_resources.begin(); i != m_resources.end(); ++i)
(*i)->OnDestroyDevice();
+ if (m_pSwapChain)
+ m_pSwapChain->SetFullscreenState(false, NULL);
+
SAFE_DELETE(m_pGUIShader);
SAFE_RELEASE(m_pTextureRight);
SAFE_RELEASE(m_pRenderTargetViewRight);
SAFE_RELEASE(m_depthStencilState);
SAFE_RELEASE(m_depthStencilView);
SAFE_RELEASE(m_pRenderTargetView);
- if (m_pSwapChain)
- {
- m_pSwapChain->SetFullscreenState(false, NULL);
- SAFE_RELEASE(m_pSwapChain);
- }
- SAFE_RELEASE(m_pSwapChain1);
- SAFE_RELEASE(m_pD3DDev);
if (m_pContext && m_pContext != m_pImdContext)
{
- FinishCommandList(false);
m_pContext->ClearState();
m_pContext->Flush();
SAFE_RELEASE(m_pContext);
m_pImdContext->Flush();
SAFE_RELEASE(m_pImdContext);
}
+ SAFE_RELEASE(m_pSwapChain);
+ SAFE_RELEASE(m_pSwapChain1);
+ SAFE_RELEASE(m_pD3DDev);
+#ifdef _DEBUG
+ if (m_d3dDebug)
+ {
+ m_d3dDebug->ReportLiveDeviceObjects(D3D11_RLDO_SUMMARY | D3D11_RLDO_DETAIL);
+ SAFE_RELEASE(m_d3dDebug);
+ }
+#endif
m_bResizeRequred = false;
m_bHWStereoEnabled = false;
m_bRenderCreated = false;
if (DXGI_ERROR_DEVICE_REMOVED == m_nDeviceStatus)
{
OnDeviceLost();
+ OnDeviceReset();
}
return false;
}
void CRenderSystemDX::Project(float &x, float &y, float &z)
{
+ if (!m_bRenderCreated)
+ return;
+
m_pGUIShader->Project(x, y, z);
}
bool CRenderSystemDX::ScissorsCanEffectClipping()
{
- return m_pGUIShader != NULL && m_pGUIShader->HardwareClipIsPossible();
+ if (!m_bRenderCreated)
+ return false;
+
+ return m_pGUIShader != NULL && m_pGUIShader->HardwareClipIsPossible();
}
CRect CRenderSystemDX::ClipRectToScissorRect(const CRect &rect)
void CRenderSystemDX::FlushGPU()
{
+ if (!m_bRenderCreated)
+ return;
+
FinishCommandList();
m_pImdContext->Flush();
}