aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl/gl_rasterizer.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2015-10-05 20:52:04 -0400
committerbunnei <bunneidev@gmail.com>2015-10-21 21:53:05 -0400
commit3c057bd3d80b049720b11d0b44391c18870c28e8 (patch)
treea5c141dc0b3ff15d30e3bbd962d08826bbd26b42 /src/video_core/renderer_opengl/gl_rasterizer.cpp
parentb02a533d946fbf98897ee42334a343d2aa4d7bf4 (diff)
gl_rasterizer: Move logic for creating ShaderCacheKey to a static function.
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp19
1 files changed, 2 insertions, 17 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index a69e09188..01b9c91c6 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -145,21 +145,7 @@ extern std::string GenerateFragmentShader(const ShaderCacheKey& config);
}
void RasterizerOpenGL::RegenerateShaders() {
- const auto& regs = Pica::g_state.regs;
-
- ShaderCacheKey config;
- config.alpha_test_func = regs.output_merger.alpha_test.enable ?
- regs.output_merger.alpha_test.func.Value() : Pica::Regs::CompareFunc::Always;
- config.tev_stages = regs.GetTevStages();
- for (auto& tev : config.tev_stages) {
- tev.const_r = 0;
- tev.const_g = 0;
- tev.const_b = 0;
- tev.const_a = 0;
- }
- config.combiner_buffer_input =
- regs.tev_combiner_buffer_input.update_mask_rgb.Value() |
- regs.tev_combiner_buffer_input.update_mask_a.Value() << 4;
+ ShaderCacheKey config = ShaderCacheKey::CurrentShaderConfig();
auto cached_shader = shader_cache.find(config);
if (cached_shader != shader_cache.end()) {
@@ -192,10 +178,9 @@ void RasterizerOpenGL::RegenerateShaders() {
}
}
-
// Sync alpha reference
if (current_shader->uniform_alphatest_ref != -1)
- glUniform1i(current_shader->uniform_alphatest_ref, regs.output_merger.alpha_test.ref);
+ glUniform1i(current_shader->uniform_alphatest_ref, Pica::g_state.regs.output_merger.alpha_test.ref);
// Sync combiner buffer color
if (current_shader->uniform_tev_combiner_buffer_color != -1) {