diff options
| author | 2016-05-01 17:44:21 -0400 | |
|---|---|---|
| committer | 2016-05-01 17:44:21 -0400 | |
| commit | 17ecf0d1a2e508cfccfab093a4481dc81d228776 (patch) | |
| tree | cd544fbf7a205bdf4f34f58f6f44daed66d9cd2e /src | |
| parent | OpenGL: border_color was never set. Fixed. (#1740) (diff) | |
| parent | OpenGL: Copy TevStageConfig using a loop. Fixes bug: const_color not copied (diff) | |
| download | yuzu-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.h | 41 |
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() | |