// Copyright 2009 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. #pragma once #include #include #include "Common/CommonTypes.h" #include "VideoBackends/Software/CPMemLoader.h" #include "VideoBackends/Software/NativeVertexFormat.h" #include "VideoCommon/VertexLoaderBase.h" class PointerWrap; class SetupUnit; class SWVertexLoader { u32 m_VertexSize; VAT* m_CurrentVat; InputVertexData m_Vertex; void ParseVertex(const PortableVertexDeclaration& vdec); SetupUnit *m_SetupUnit; bool m_TexGenSpecialCase; std::unordered_map> m_VertexLoaderMap; std::vector m_LoadedVertices; VertexLoaderBase* m_CurrentLoader; u8 m_attributeIndex; public: SWVertexLoader(); ~SWVertexLoader(); void SetFormat(u8 attributeIndex, u8 primitiveType); u32 GetVertexSize() { return m_VertexSize; } void LoadVertex(); void DoState(PointerWrap &p); };