diff --git a/src/video_core/primitive_assembly.cpp b/src/video_core/primitive_assembly.cpp index cdc484d67..60b0af059 100644 --- a/src/video_core/primitive_assembly.cpp +++ b/src/video_core/primitive_assembly.cpp @@ -11,11 +11,11 @@ namespace Pica { template PrimitiveAssembler::PrimitiveAssembler(PipelineRegs::TriangleTopology topology) - : topology(topology), buffer_index(0) {} + : topology(topology) {} template void PrimitiveAssembler::SubmitVertex(const VertexType& vtx, - TriangleHandler triangle_handler) { + const TriangleHandler& triangle_handler) { switch (topology) { case PipelineRegs::TriangleTopology::List: case PipelineRegs::TriangleTopology::Shader: diff --git a/src/video_core/primitive_assembly.h b/src/video_core/primitive_assembly.h index 404bc5316..1f4f25af2 100644 --- a/src/video_core/primitive_assembly.h +++ b/src/video_core/primitive_assembly.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include #include "video_core/regs_pipeline.h" @@ -19,7 +20,7 @@ struct PrimitiveAssembler { using TriangleHandler = std::function; - PrimitiveAssembler( + explicit PrimitiveAssembler( PipelineRegs::TriangleTopology topology = PipelineRegs::TriangleTopology::List); /* @@ -28,7 +29,7 @@ struct PrimitiveAssembler { * NOTE: We could specify the triangle handler in the constructor, but this way we can * keep event and handler code next to each other. */ - void SubmitVertex(const VertexType& vtx, TriangleHandler triangle_handler); + void SubmitVertex(const VertexType& vtx, const TriangleHandler& triangle_handler); /** * Invert the vertex order of the next triangle. Called by geometry shader emitter. @@ -59,8 +60,8 @@ struct PrimitiveAssembler { private: PipelineRegs::TriangleTopology topology; - int buffer_index; - VertexType buffer[2]; + int buffer_index = 0; + std::array buffer; bool strip_ready = false; bool winding = false;