ref: gl: invalidate texture units state cache when texture deletes

This commit is contained in:
SNMetamorph 2024-03-09 21:46:58 +04:00 committed by Alibek Omarov
parent 081cf9132b
commit 17e106f96d
1 changed files with 16 additions and 0 deletions

View File

@ -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 );