Просмотр исходного кода

GPU/PrimitiveAssembler: Fixed drawing triangle fans.

It was skipping the second vertex assignment and using uninitialized garbage when assembling the corresponding triangle.
Subv 10 лет назад
Родитель
Сommit
7b33e163b9
1 измененных файлов с 4 добавлено и 5 удалено
  1. 4 5
      src/video_core/primitive_assembly.cpp

+ 4 - 5
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: