diff options
Diffstat (limited to 'src/video_core/primitive_assembly.h')
-rw-r--r-- | src/video_core/primitive_assembly.h | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/video_core/primitive_assembly.h b/src/video_core/primitive_assembly.h deleted file mode 100644 index 12de8e3b9..000000000 --- a/src/video_core/primitive_assembly.h +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <functional> -#include "video_core/regs_pipeline.h" - -namespace Pica { - -/* - * Utility class to build triangles from a series of vertices, - * according to a given triangle topology. - */ -template <typename VertexType> -struct PrimitiveAssembler { - using TriangleHandler = - std::function<void(const VertexType& v0, const VertexType& v1, const VertexType& v2)>; - - PrimitiveAssembler( - PipelineRegs::TriangleTopology topology = PipelineRegs::TriangleTopology::List); - - /* - * Queues a vertex, builds primitives from the vertex queue according to the given - * triangle topology, and calls triangle_handler for each generated primitive. - * 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); - - /** - * Invert the vertex order of the next triangle. Called by geometry shader emitter. - * This only takes effect for TriangleTopology::Shader. - */ - void SetWinding(); - - /** - * Resets the internal state of the PrimitiveAssembler. - */ - void Reset(); - - /** - * Reconfigures the PrimitiveAssembler to use a different triangle topology. - */ - void Reconfigure(PipelineRegs::TriangleTopology topology); - -private: - PipelineRegs::TriangleTopology topology; - - int buffer_index; - VertexType buffer[2]; - bool strip_ready = false; - bool winding = false; -}; - -} // namespace |