summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-07-24 05:26:48 +0200
committerbunnei <bunneidev@gmail.com>2018-07-24 05:34:42 +0200
commit69c45ce71c5a600f0372746348875a626e06898b (patch)
tree5515b9dcc8fc4122e63b9eb7f7accdf5c3801d85 /src/video_core/renderer_opengl/gl_rasterizer.cpp
parentmaxwell_to_gl: Implement Texture::WrapMode::Border. (diff)
downloadyuzu-69c45ce71c5a600f0372746348875a626e06898b.tar
yuzu-69c45ce71c5a600f0372746348875a626e06898b.tar.gz
yuzu-69c45ce71c5a600f0372746348875a626e06898b.tar.bz2
yuzu-69c45ce71c5a600f0372746348875a626e06898b.tar.lz
yuzu-69c45ce71c5a600f0372746348875a626e06898b.tar.xz
yuzu-69c45ce71c5a600f0372746348875a626e06898b.tar.zst
yuzu-69c45ce71c5a600f0372746348875a626e06898b.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 56d9c575b..5d5ad84b7 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -601,7 +601,6 @@ void RasterizerOpenGL::SamplerInfo::Create() {
sampler.Create();
mag_filter = min_filter = Tegra::Texture::TextureFilter::Linear;
wrap_u = wrap_v = Tegra::Texture::WrapMode::Wrap;
- border_color_r = border_color_g = border_color_b = border_color_a = 0;
// default is GL_LINEAR_MIPMAP_LINEAR
glSamplerParameteri(sampler.handle, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -630,8 +629,12 @@ void RasterizerOpenGL::SamplerInfo::SyncWithConfig(const Tegra::Texture::TSCEntr
}
if (wrap_u == Tegra::Texture::WrapMode::Border || wrap_v == Tegra::Texture::WrapMode::Border) {
- // TODO(Subv): Implement border color
- ASSERT(false);
+ const GLvec4 new_border_color = {{config.border_color_r, config.border_color_g,
+ config.border_color_b, config.border_color_a}};
+ if (border_color != new_border_color) {
+ border_color = new_border_color;
+ glSamplerParameterfv(s, GL_TEXTURE_BORDER_COLOR, border_color.data());
+ }
}
}