Fixed resetting the current render target if the D3D device is reset while using a non-default render target.

Sam Lantinga 2014-02-17 22:20:33 -08:00
parent ccce6fb302
commit 6b33f2e8ca
1 changed files with 5 additions and 0 deletions

View File

@ -481,6 +481,10 @@ D3D_Reset(SDL_Renderer * renderer)
IDirect3DSurface9_Release(data->defaultRenderTarget); IDirect3DSurface9_Release(data->defaultRenderTarget);
data->defaultRenderTarget = NULL; data->defaultRenderTarget = NULL;
} }
if (data->currentRenderTarget != NULL) {
IDirect3DSurface9_Release(data->currentRenderTarget);
data->currentRenderTarget = NULL;
}
/* Release application render targets */ /* Release application render targets */
for (texture = renderer->textures; texture; texture = texture->next) { for (texture = renderer->textures; texture; texture = texture->next) {
@ -508,6 +512,7 @@ D3D_Reset(SDL_Renderer * renderer)
IDirect3DDevice9_GetRenderTarget(data->device, 0, &data->defaultRenderTarget); IDirect3DDevice9_GetRenderTarget(data->device, 0, &data->defaultRenderTarget);
D3D_InitRenderState(data); D3D_InitRenderState(data);
D3D_SetRenderTarget(renderer, renderer->target);
D3D_UpdateViewport(renderer); D3D_UpdateViewport(renderer);
/* Let the application know that render targets were reset */ /* Let the application know that render targets were reset */