Call AddRef() on the device so it doesn't accidentally get released from underneath the caller.

This commit is contained in:
Sam Lantinga 2013-09-28 14:07:17 -07:00
parent 2ef24caf1d
commit 06caf6a344
2 changed files with 10 additions and 2 deletions

View file

@ -1887,13 +1887,19 @@ IDirect3DDevice9 *
SDL_RenderGetD3D9Device(SDL_Renderer * renderer)
{
D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;
IDirect3DDevice9 *device;
// Make sure that this is a D3D renderer
if (renderer->DestroyRenderer != D3D_DestroyRenderer) {
SDL_SetError("Renderer is not a D3D renderer");
return NULL;
}
return data->device;
device = data->device;
if (device) {
IDirect3DDevice9_AddRef( device );
}
return device;
}
#endif /* SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED */