forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			982 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			982 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright 2009 Dolphin Emulator Project
 | |
| // Licensed under GPLv2+
 | |
| // Refer to the license.txt file included.
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <memory>
 | |
| #include <unordered_map>
 | |
| 
 | |
| #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<VertexLoaderUID, std::unique_ptr<VertexLoaderBase>> m_VertexLoaderMap;
 | |
| 	std::vector<u8> 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);
 | |
| };
 |