From 17e106f96dcb71faab7da4b786ee5b5b67f66647 Mon Sep 17 00:00:00 2001 From: SNMetamorph <25657591+SNMetamorph@users.noreply.github.com> Date: Sat, 9 Mar 2024 21:46:58 +0400 Subject: [PATCH] ref: gl: invalidate texture units state cache when texture deletes --- ref/gl/gl_image.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ref/gl/gl_image.c b/ref/gl/gl_image.c index 6b200dfe..97476516 100644 --- a/ref/gl/gl_image.c +++ b/ref/gl/gl_image.c @@ -1471,6 +1471,22 @@ static void GL_DeleteTexture( gl_texture_t *tex ) prev = &cur->nextHash; } + // invalidate texture units state cache + for( int i = 0; i < MAX_TEXTURE_UNITS; i++ ) + { + if( glState.currentTextures[i] == tex->texnum ) + { + if( glState.currentTextureTargets[i] != GL_NONE ) + { + GL_SelectTexture( i ); + pglDisable( glState.currentTextureTargets[i] ); + } + glState.currentTextureTargets[i] = GL_NONE; + glState.currentTextures[i] = -1; + glState.currentTexturesIndex[i] = 0; + } + } + // release source if( tex->original ) gEngfuncs.FS_FreeImage( tex->original );