void MyFrame::ResetDevice()
{
if (m_pDevice && m_pTexture)
{
m_pDevice->SetRenderTarget(0, NULL);
m_pTempSurface->Release();
m_pTempSurface = NULL;
m_pMainSurface->Release();
m_pMainSurface = NULL;
IDirect3DSurface9 * newSurface = NULL;//没释放掉?怎么还能取出来??
m_pDevice->GetRenderTarget(0, &newSurface);
m_pTexture->Release();
m_pTexture = NULL;
HRESULT hr = m_pDevice->Reset(&m_d3dpp);
if (FAILED(hr))
{
std::cout << "Reset Device Error!" << std::endl;
}
if (m_pDevice != NULL)
{
hr = m_pDevice->CreateTexture(800, 600, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8,
D3DPOOL_DEFAULT, &m_pTexture, NULL);
if (FAILED(hr))
{
std::cout << "Reset RTT Texture Error!" << std::endl;
}
}
}
}
