diff --git a/GPU/GLES/TextureCache.cpp b/GPU/GLES/TextureCache.cpp index 4898ba3a8e..907641f05d 100644 --- a/GPU/GLES/TextureCache.cpp +++ b/GPU/GLES/TextureCache.cpp @@ -504,7 +504,18 @@ void TextureCache::UpdateSamplingParams(TexCacheEntry &entry, bool force) { float lodBias = (float)(int)(s8)((gstate.texlevel >> 16) & 0xFF) / 16.0f; if (force || entry.lodBias != lodBias) { #ifndef USING_GLES2 - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, lodBias); + int mode = gstate.texlevel & 0x3; + switch (mode) { + case GE_TEXBIAS_MODE_AUTO: + // TODO + break; + case GE_TEXBIAS_MODE_CONST: + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_LOD_BIAS, lodBias); + break; + case GE_TEXBIAS_MODE_SLOPE: + // TODO + break; + } #endif entry.lodBias = lodBias; } diff --git a/GPU/GLES/TextureCache.h b/GPU/GLES/TextureCache.h index 43688bd2c9..aabf805b66 100644 --- a/GPU/GLES/TextureCache.h +++ b/GPU/GLES/TextureCache.h @@ -39,6 +39,12 @@ enum FramebufferNotification { NOTIFY_FB_DESTROYED, }; +enum TextureLevelMode { + GE_TEXBIAS_MODE_AUTO = 0, + GE_TEXBIAS_MODE_CONST = 1, + GE_TEXBIAS_MODE_SLOPE = 2, +}; + class TextureCache { public: TextureCache();