summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2016-05-01 17:44:21 -0400
committerGravatar bunnei2016-05-01 17:44:21 -0400
commit17ecf0d1a2e508cfccfab093a4481dc81d228776 (patch)
treecd544fbf7a205bdf4f34f58f6f44daed66d9cd2e /src
parentOpenGL: border_color was never set. Fixed. (#1740) (diff)
parentOpenGL: Copy TevStageConfig using a loop. Fixes bug: const_color not copied (diff)
downloadyuzu-17ecf0d1a2e508cfccfab093a4481dc81d228776.tar.gz
yuzu-17ecf0d1a2e508cfccfab093a4481dc81d228776.tar.xz
yuzu-17ecf0d1a2e508cfccfab093a4481dc81d228776.zip
Merge pull request #1745 from JayFoxRox/fix-const_color
OpenGL: Copy TevStageConfig using a loop. Fixes bug: const_color not copied
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.h41
1 files changed, 11 insertions, 30 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index 8d6177e88..4737e1c52 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -39,36 +39,17 @@ struct PicaShaderConfig {
39 res.alpha_test_func = regs.output_merger.alpha_test.enable ? 39 res.alpha_test_func = regs.output_merger.alpha_test.enable ?
40 regs.output_merger.alpha_test.func.Value() : Pica::Regs::CompareFunc::Always; 40 regs.output_merger.alpha_test.func.Value() : Pica::Regs::CompareFunc::Always;
41 41
42 // Copy relevant TevStageConfig fields only. We're doing this manually (instead of calling 42 // Copy tev stages
43 // the GetTevStages() function) because BitField explicitly disables copies. 43 const auto& tev_stages = regs.GetTevStages();
44 44 DEBUG_ASSERT(res.tev_stages.size() == tev_stages.size());
45 res.tev_stages[0].sources_raw = regs.tev_stage0.sources_raw; 45 for (size_t i = 0; i < tev_stages.size(); i++) {
46 res.tev_stages[1].sources_raw = regs.tev_stage1.sources_raw; 46 const auto& tev_stage = tev_stages[i];
47 res.tev_stages[2].sources_raw = regs.tev_stage2.sources_raw; 47 res.tev_stages[i].sources_raw = tev_stage.sources_raw;
48 res.tev_stages[3].sources_raw = regs.tev_stage3.sources_raw; 48 res.tev_stages[i].modifiers_raw = tev_stage.modifiers_raw;
49 res.tev_stages[4].sources_raw = regs.tev_stage4.sources_raw; 49 res.tev_stages[i].ops_raw = tev_stage.ops_raw;
50 res.tev_stages[5].sources_raw = regs.tev_stage5.sources_raw; 50 res.tev_stages[i].const_color = tev_stage.const_color;
51 51 res.tev_stages[i].scales_raw = tev_stage.scales_raw;
52 res.tev_stages[0].modifiers_raw = regs.tev_stage0.modifiers_raw; 52 }
53 res.tev_stages[1].modifiers_raw = regs.tev_stage1.modifiers_raw;
54 res.tev_stages[2].modifiers_raw = regs.tev_stage2.modifiers_raw;
55 res.tev_stages[3].modifiers_raw = regs.tev_stage3.modifiers_raw;
56 res.tev_stages[4].modifiers_raw = regs.tev_stage4.modifiers_raw;
57 res.tev_stages[5].modifiers_raw = regs.tev_stage5.modifiers_raw;
58
59 res.tev_stages[0].ops_raw = regs.tev_stage0.ops_raw;
60 res.tev_stages[1].ops_raw = regs.tev_stage1.ops_raw;
61 res.tev_stages[2].ops_raw = regs.tev_stage2.ops_raw;
62 res.tev_stages[3].ops_raw = regs.tev_stage3.ops_raw;
63 res.tev_stages[4].ops_raw = regs.tev_stage4.ops_raw;
64 res.tev_stages[5].ops_raw = regs.tev_stage5.ops_raw;
65
66 res.tev_stages[0].scales_raw = regs.tev_stage0.scales_raw;
67 res.tev_stages[1].scales_raw = regs.tev_stage1.scales_raw;
68 res.tev_stages[2].scales_raw = regs.tev_stage2.scales_raw;
69 res.tev_stages[3].scales_raw = regs.tev_stage3.scales_raw;
70 res.tev_stages[4].scales_raw = regs.tev_stage4.scales_raw;
71 res.tev_stages[5].scales_raw = regs.tev_stage5.scales_raw;
72 53
73 res.combiner_buffer_input = 54 res.combiner_buffer_input =
74 regs.tev_combiner_buffer_input.update_mask_rgb.Value() | 55 regs.tev_combiner_buffer_input.update_mask_rgb.Value() |