diff options
author | FernandoS27 <fsahmkow27@gmail.com> | 2018-10-10 15:20:13 +0200 |
---|---|---|
committer | FernandoS27 <fsahmkow27@gmail.com> | 2018-10-22 21:07:30 +0200 |
commit | 7b39107e3ae056a857e1780b2123e757b8deab26 (patch) | |
tree | 41837991e80339ace30754f832af05c451b2fd3e /src/video_core/renderer_opengl/gl_rasterizer.cpp | |
parent | Implemented Alpha Testing (diff) | |
download | yuzu-7b39107e3ae056a857e1780b2123e757b8deab26.tar yuzu-7b39107e3ae056a857e1780b2123e757b8deab26.tar.gz yuzu-7b39107e3ae056a857e1780b2123e757b8deab26.tar.bz2 yuzu-7b39107e3ae056a857e1780b2123e757b8deab26.tar.lz yuzu-7b39107e3ae056a857e1780b2123e757b8deab26.tar.xz yuzu-7b39107e3ae056a857e1780b2123e757b8deab26.tar.zst yuzu-7b39107e3ae056a857e1780b2123e757b8deab26.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index e2a422052..17860d447 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -885,10 +885,18 @@ u32 RasterizerOpenGL::SetupTextures(Maxwell::ShaderStage stage, Shader& shader, void RasterizerOpenGL::SetupAlphaTesting(Shader& shader) { const auto& regs = Core::System::GetInstance().GPU().Maxwell3D().regs; - glProgramUniform1i(shader->GetProgramHandle(), shader->GetAlphaTestingEnableLocation(), + glProgramUniform1ui(shader->GetProgramHandle(), shader->GetAlphaTestingEnableLocation(), regs.alpha_test_enabled); glProgramUniform1f(shader->GetProgramHandle(), shader->GetAlphaTestingRefLocation(), regs.alpha_test_ref); + + u32 func = static_cast<u32>(regs.alpha_test_func); + // Normalize the gl variants of opCompare to be the same as the normal variants + if (func >= 0x200) { + func = func - 0x200 + 1U; + } + + glProgramUniform1ui(shader->GetProgramHandle(), shader->GetAlphaTestingFuncLocation(), func); } void RasterizerOpenGL::SyncViewport() { |