Skip to content
Permalink
Browse files

render: Fix internal state getting out of sync when destroying a text…

…ure that was just rendered and then creating a new one, in the GL and GLES2 backends. Fixes bug #4433.
  • Loading branch information
slime73 committed Dec 22, 2018
1 parent 0a70590 commit dc3443602b8352e76b6e5b89eca00909469b22eb
Showing with 14 additions and 0 deletions.
  1. +7 −0 src/render/opengl/SDL_render_gl.c
  2. +7 −0 src/render/opengles2/SDL_render_gles2.c
@@ -1388,6 +1388,13 @@ GL_DestroyTexture(SDL_Renderer * renderer, SDL_Texture * texture)

GL_ActivateRenderer(renderer);

if (renderdata->drawstate.texture == texture) {
renderdata->drawstate.texture = NULL;
}
if (renderdata->drawstate.target == texture) {
renderdata->drawstate.target = NULL;
}

if (!data) {
return;
}
@@ -1766,6 +1766,13 @@ GLES2_DestroyTexture(SDL_Renderer *renderer, SDL_Texture *texture)

GLES2_ActivateRenderer(renderer);

if (data->drawstate.texture == texture) {
data->drawstate.texture = NULL;
}
if (data->drawstate.target == texture) {
data->drawstate.target = NULL;
}

/* Destroy the texture */
if (tdata) {
data->glDeleteTextures(1, &tdata->texture);

0 comments on commit dc34436

Please sign in to comment.