Просмотр исходного кода

Merge pull request #979 from Subv/border_color

Rasterizer/GL: Set the border color when binding a texture.
bunnei 11 лет назад
Родитель
Сommit
f602bb9af6
1 измененных файлов с 9 добавлено и 2 удалено
  1. 9 2
      src/video_core/renderer_opengl/gl_rasterizer_cache.cpp

+ 9 - 2
src/video_core/renderer_opengl/gl_rasterizer_cache.cpp

@@ -34,8 +34,15 @@ void RasterizerCacheOpenGL::LoadAndBindTexture(OpenGLState &state, unsigned text
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, PicaToGL::TextureFilterMode(config.config.mag_filter));
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, PicaToGL::TextureFilterMode(config.config.min_filter));
 
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, PicaToGL::WrapMode(config.config.wrap_s));
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, PicaToGL::WrapMode(config.config.wrap_t));
+        GLenum wrap_s = PicaToGL::WrapMode(config.config.wrap_s);
+        GLenum wrap_t = PicaToGL::WrapMode(config.config.wrap_t);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrap_s);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrap_t);
+
+        if (wrap_s == GL_CLAMP_TO_BORDER || wrap_t == GL_CLAMP_TO_BORDER) {
+            auto border_color = PicaToGL::ColorRGBA8((u8*)&config.config.border_color.r);
+            glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, border_color.data());
+        }
 
         const auto info = Pica::DebugUtils::TextureInfo::FromPicaRegister(config.config, config.format);