mirror of
https://github.com/Ryujinx/SDL.git
synced 2024-12-24 00:15:40 +00:00
render: Fix internal state getting out of sync when destroying a texture that was just rendered and then creating a new one, in the GL and GLES2 backends. Fixes bug #4433.
This commit is contained in:
parent
0a70590118
commit
dc3443602b
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue