diff options
Diffstat (limited to 'src/video_core/vertex_loader.h')
-rw-r--r-- | src/video_core/vertex_loader.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/video_core/vertex_loader.h b/src/video_core/vertex_loader.h new file mode 100644 index 000000000..ff42d1596 --- /dev/null +++ b/src/video_core/vertex_loader.h @@ -0,0 +1,28 @@ +#pragma once + +#include <iterator> +#include <algorithm> + +#include "video_core/pica.h" +#include "video_core/shader/shader.h" +#include "video_core/debug_utils/debug_utils.h" + +namespace Pica { + +class VertexLoader { +public: + void Setup(const Pica::Regs& regs); + void LoadVertex(u32 base_address, int index, int vertex, Shader::InputVertex& input, DebugUtils::MemoryAccessTracker& memory_accesses); + + int GetNumTotalAttributes() const { return num_total_attributes; } + +private: + u32 vertex_attribute_sources[16]; + u32 vertex_attribute_strides[16] = {}; + Regs::VertexAttributeFormat vertex_attribute_formats[16] = {}; + u32 vertex_attribute_elements[16] = {}; + bool vertex_attribute_is_default[16]; + int num_total_attributes; +}; + +} // namespace Pica |