diff options
author | Subv <subv2112@gmail.com> | 2015-12-06 10:17:47 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2015-12-06 10:48:05 -0500 |
commit | 7b33e163b900aacc4a82cf0a409536c047100303 (patch) | |
tree | a59ea7a8259cd064ba46d50d8df509fc59b43076 /src | |
parent | 644d1e7ca35fc8a006f7fbc2adfafd1f4a589f4b (diff) |
GPU/PrimitiveAssembler: Fixed drawing triangle fans.
It was skipping the second vertex assignment and using uninitialized garbage when assembling the corresponding triangle.
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/primitive_assembly.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/video_core/primitive_assembly.cpp b/src/video_core/primitive_assembly.cpp index 44a8dbfe9..d5a0a96a4 100644 --- a/src/video_core/primitive_assembly.cpp +++ b/src/video_core/primitive_assembly.cpp @@ -39,13 +39,12 @@ void PrimitiveAssembler<VertexType>::SubmitVertex(VertexType& vtx, TriangleHandl buffer[buffer_index] = vtx; - if (topology == Regs::TriangleTopology::Strip) { - strip_ready |= (buffer_index == 1); + strip_ready |= (buffer_index == 1); + + if (topology == Regs::TriangleTopology::Strip) buffer_index = !buffer_index; - } else if (topology == Regs::TriangleTopology::Fan) { + else if (topology == Regs::TriangleTopology::Fan) buffer_index = 1; - strip_ready = true; - } break; default: |