浏览代码

LibGL: Fix interpretation of mipmap filtering modes

GL_LINEAR_MIPMAP_NEAREST means choose nearest mipmap level, interpolate
texels linearly.

GL_NEAREST_MIPMAP_LINEAR means choose the two closest mipmap levels,
sample the texels unfiltered and linearly interpolate based on the
fractional value of the mipmap level.

Previously we had this backwards.
Stephan Unverwerth 3 年之前
父节点
当前提交
869393c7a0
共有 1 个文件被更改,包括 4 次插入4 次删除
  1. 4 4
      Userland/Libraries/LibGL/SoftwareGLContext.cpp

+ 4 - 4
Userland/Libraries/LibGL/SoftwareGLContext.cpp

@@ -2996,13 +2996,13 @@ void SoftwareGLContext::sync_device_sampler_config()
             config.mipmap_filter = SoftGPU::MipMapFilter::Nearest;
             config.mipmap_filter = SoftGPU::MipMapFilter::Nearest;
             break;
             break;
         case GL_LINEAR_MIPMAP_NEAREST:
         case GL_LINEAR_MIPMAP_NEAREST:
-            config.texture_min_filter = SoftGPU::TextureFilter::Nearest;
-            config.mipmap_filter = SoftGPU::MipMapFilter::Linear;
-            break;
-        case GL_NEAREST_MIPMAP_LINEAR:
             config.texture_min_filter = SoftGPU::TextureFilter::Linear;
             config.texture_min_filter = SoftGPU::TextureFilter::Linear;
             config.mipmap_filter = SoftGPU::MipMapFilter::Nearest;
             config.mipmap_filter = SoftGPU::MipMapFilter::Nearest;
             break;
             break;
+        case GL_NEAREST_MIPMAP_LINEAR:
+            config.texture_min_filter = SoftGPU::TextureFilter::Nearest;
+            config.mipmap_filter = SoftGPU::MipMapFilter::Linear;
+            break;
         case GL_LINEAR_MIPMAP_LINEAR:
         case GL_LINEAR_MIPMAP_LINEAR:
             config.texture_min_filter = SoftGPU::TextureFilter::Linear;
             config.texture_min_filter = SoftGPU::TextureFilter::Linear;
             config.mipmap_filter = SoftGPU::MipMapFilter::Linear;
             config.mipmap_filter = SoftGPU::MipMapFilter::Linear;