- fixed: Toggling palette emulation should reset the texture filter in the samplers.

This commit is contained in:
Christoph Oelckers 2020-10-10 18:57:16 +02:00
parent 16a4d49268
commit e95fea1056
3 changed files with 2 additions and 6 deletions

View file

@ -35,6 +35,7 @@ bool hw_int_useindexedcolortextures;
CUSTOM_CVARD(Bool, hw_useindexedcolortextures, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG, "enable/disable indexed color texture rendering") CUSTOM_CVARD(Bool, hw_useindexedcolortextures, false, CVAR_ARCHIVE | CVAR_GLOBALCONFIG, "enable/disable indexed color texture rendering")
{ {
hw_int_useindexedcolortextures = self; hw_int_useindexedcolortextures = self;
if (screen) screen->SetTextureFilterMode();
} }

View file

@ -125,7 +125,7 @@ void FSamplerManager::SetTextureFilterMode()
{ {
glSamplerParameteri(mSamplers[i], GL_TEXTURE_MIN_FILTER, TexFilter[filter].minfilter); glSamplerParameteri(mSamplers[i], GL_TEXTURE_MIN_FILTER, TexFilter[filter].minfilter);
glSamplerParameteri(mSamplers[i], GL_TEXTURE_MAG_FILTER, TexFilter[filter].magfilter); glSamplerParameteri(mSamplers[i], GL_TEXTURE_MAG_FILTER, TexFilter[filter].magfilter);
glSamplerParameterf(mSamplers[i], GL_TEXTURE_MAX_ANISOTROPY_EXT, gl_texture_filter_anisotropic); glSamplerParameterf(mSamplers[i], GL_TEXTURE_MAX_ANISOTROPY_EXT, filter > 0? gl_texture_filter_anisotropic : 1.0);
} }
glSamplerParameteri(mSamplers[CLAMP_XY_NOMIP], GL_TEXTURE_MIN_FILTER, TexFilter[filter].magfilter); glSamplerParameteri(mSamplers[CLAMP_XY_NOMIP], GL_TEXTURE_MIN_FILTER, TexFilter[filter].magfilter);
glSamplerParameteri(mSamplers[CLAMP_XY_NOMIP], GL_TEXTURE_MAG_FILTER, TexFilter[filter].magfilter); glSamplerParameteri(mSamplers[CLAMP_XY_NOMIP], GL_TEXTURE_MAG_FILTER, TexFilter[filter].magfilter);

View file

@ -70,11 +70,6 @@ bool GLInstance::SetTexture(int picnum, FGameTexture* tex, int paletteid, int sa
if (!PickTexture(picnum, tex, paletteid, texpick)) return false; if (!PickTexture(picnum, tex, paletteid, texpick)) return false;
int TextureType = (texpick.translation & 0x80000000) ? TT_INDEXED : TT_TRUECOLOR; int TextureType = (texpick.translation & 0x80000000) ? TT_INDEXED : TT_TRUECOLOR;
if (TextureType == TT_INDEXED)
{
sampler = sampler + CLAMP_NOFILTER - CLAMP_NONE;
}
// This is intentionally the same value for both parameters. The shader does not use the same uniform for modulation and overlay colors. // This is intentionally the same value for both parameters. The shader does not use the same uniform for modulation and overlay colors.
SetTinting(texpick.tintFlags, texpick.tintColor, texpick.tintColor); SetTinting(texpick.tintFlags, texpick.tintColor, texpick.tintColor);