Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixed bug 1491 - Directx3d Crash on resize
Browse files Browse the repository at this point in the history
Spinduluz

RenderTarget has to be released before a device reset is done. It's a
D3DPOOL_DEFAULT surface (resides in video memory and have to be recreated).
  • Loading branch information
slouken committed Feb 12, 2013
1 parent 4338d52 commit d7d163f
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/render/direct3d/SDL_render_d3d.c
Expand Up @@ -361,6 +361,9 @@ D3D_Reset(SDL_Renderer * renderer)
D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;
HRESULT result;

/* Release the default render target before reset */
IDirect3DSurface9_Release(data->defaultRenderTarget);

result = IDirect3DDevice9_Reset(data->device, &data->pparams);
if (FAILED(result)) {
if (result == D3DERR_DEVICELOST) {
Expand All @@ -377,6 +380,7 @@ D3D_Reset(SDL_Renderer * renderer)
IDirect3DDevice9_SetRenderState(data->device, D3DRS_CULLMODE,
D3DCULL_NONE);
IDirect3DDevice9_SetRenderState(data->device, D3DRS_LIGHTING, FALSE);
IDirect3DDevice9_GetRenderTarget(data->device, 0, &data->defaultRenderTarget);
return 0;
}

Expand Down

0 comments on commit d7d163f

Please sign in to comment.