diff options
Diffstat (limited to 'src/video_core/primitive_assembly.cpp')
| -rw-r--r-- | src/video_core/primitive_assembly.cpp | 67 |
1 files changed, 32 insertions, 35 deletions
diff --git a/src/video_core/primitive_assembly.cpp b/src/video_core/primitive_assembly.cpp index 68ea3c08a..be7377290 100644 --- a/src/video_core/primitive_assembly.cpp +++ b/src/video_core/primitive_assembly.cpp @@ -3,69 +3,66 @@ // Refer to the license.txt file included. #include "common/logging/log.h" - #include "video_core/pica.h" #include "video_core/primitive_assembly.h" #include "video_core/shader/shader.h" namespace Pica { -template<typename VertexType> +template <typename VertexType> PrimitiveAssembler<VertexType>::PrimitiveAssembler(Regs::TriangleTopology topology) - : topology(topology), buffer_index(0) { -} + : 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 |
