diff options
Diffstat (limited to 'src/video_core/primitive_assembly.cpp')
-rw-r--r-- | src/video_core/primitive_assembly.cpp | 63 |
1 files changed, 31 insertions, 32 deletions
diff --git a/src/video_core/primitive_assembly.cpp b/src/video_core/primitive_assembly.cpp index 68ea3c08ad..343edb1916 100644 --- a/src/video_core/primitive_assembly.cpp +++ b/src/video_core/primitive_assembly.cpp @@ -10,62 +10,61 @@ namespace Pica { -template<typename VertexType> +template <typename VertexType> PrimitiveAssembler<VertexType>::PrimitiveAssembler(Regs::TriangleTopology topology) : topology(topology), buffer_index(0) { } -template<typename VertexType> -void PrimitiveAssembler<VertexType>::SubmitVertex(VertexType& vtx, TriangleHandler triangle_handler) -{ +template <typename VertexType> +void PrimitiveAssembler<VertexType>::SubmitVertex(VertexType& vtx, + TriangleHandler triangle_handler) { switch (topology) { - // TODO: Figure out what's different with TriangleTopology::Shader. - case Regs::TriangleTopology::List: - case Regs::TriangleTopology::Shader: - if (buffer_index < 2) { - buffer[buffer_index++] = vtx; - } else { - buffer_index = 0; + // TODO: Figure out what's different with TriangleTopology::Shader. + case Regs::TriangleTopology::List: + case Regs::TriangleTopology::Shader: + if (buffer_index < 2) { + buffer[buffer_index++] = vtx; + } else { + buffer_index = 0; - triangle_handler(buffer[0], buffer[1], vtx); - } - break; + triangle_handler(buffer[0], buffer[1], vtx); + } + break; - case Regs::TriangleTopology::Strip: - case Regs::TriangleTopology::Fan: - if (strip_ready) - triangle_handler(buffer[0], buffer[1], vtx); + case Regs::TriangleTopology::Strip: + case Regs::TriangleTopology::Fan: + if (strip_ready) + triangle_handler(buffer[0], buffer[1], vtx); - buffer[buffer_index] = vtx; + buffer[buffer_index] = vtx; - 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) - buffer_index = 1; - break; + if (topology == Regs::TriangleTopology::Strip) + buffer_index = !buffer_index; + else if (topology == Regs::TriangleTopology::Fan) + buffer_index = 1; + break; - default: - LOG_ERROR(HW_GPU, "Unknown triangle topology %x:", (int)topology); - break; + default: + LOG_ERROR(HW_GPU, "Unknown triangle topology %x:", (int)topology); + break; } } -template<typename VertexType> +template <typename VertexType> void PrimitiveAssembler<VertexType>::Reset() { buffer_index = 0; strip_ready = false; } -template<typename VertexType> +template <typename VertexType> void PrimitiveAssembler<VertexType>::Reconfigure(Regs::TriangleTopology topology) { Reset(); this->topology = topology; } // explicitly instantiate use cases -template -struct PrimitiveAssembler<Shader::OutputVertex>; +template struct PrimitiveAssembler<Shader::OutputVertex>; } // namespace |