direct3d: don't dereference bogus pointer if current texture was destroyed. Fixes Bugzilla #4460.
diff --git a/src/render/direct3d/SDL_render_d3d.c b/src/render/direct3d/SDL_render_d3d.c
index d252775..e593573 100644
--- a/src/render/direct3d/SDL_render_d3d.c
+++ b/src/render/direct3d/SDL_render_d3d.c
@@ -1501,8 +1501,13 @@ D3D_RenderPresent(SDL_Renderer * renderer)
static void
D3D_DestroyTexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
+ D3D_RenderData *renderdata = (D3D_RenderData *) renderer->driverdata;
D3D_TextureData *data = (D3D_TextureData *) texture->driverdata;
+ if (renderdata->drawstate.texture == texture) {
+ renderdata->drawstate.texture = NULL;
+ }
+
if (!data) {
return;
}