2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-12-27 12:31:50 +00:00

feat: dump techsets for t6

This commit is contained in:
Jan Laupetin
2025-10-30 22:26:33 +01:00
parent e84f22ddb6
commit 18ccbb9180
19 changed files with 363 additions and 123 deletions

View File

@@ -0,0 +1,32 @@
#pragma once
#include <cstdint>
#include <string>
#include <vector>
namespace techset
{
class CommonTechniqueShader
{
public:
std::string m_name;
uint32_t m_version_major;
uint32_t m_version_minor;
};
class CommonPass
{
public:
uint64_t m_flags;
uint32_t m_sampler_flags;
CommonTechniqueShader m_vertex_shader;
CommonTechniqueShader m_pixel_shader;
};
class CommonTechnique
{
public:
uint64_t m_flags;
std::vector<CommonPass> m_passes;
};
} // namespace techset

View File

@@ -0,0 +1,22 @@
#include "CommonTechset.h"
#include <algorithm>
techset::CommonTechniqueTypeNames::CommonTechniqueTypeNames(const char** names, const size_t nameCount)
: m_names(nameCount)
{
std::copy(names, &names[nameCount], m_names.data());
}
const char* techset::CommonTechniqueTypeNames::GetTechniqueTypeName(const size_t techniqueTypeIndex) const
{
if (techniqueTypeIndex >= m_names.size())
return nullptr;
return m_names[techniqueTypeIndex];
}
size_t techset::CommonTechniqueTypeNames::GetTechniqueTypeCount() const
{
return m_names.size();
}

View File

@@ -0,0 +1,27 @@
#pragma once
#include <cstdint>
#include <string>
#include <vector>
namespace techset
{
class CommonTechniqueTypeNames
{
public:
CommonTechniqueTypeNames(const char** names, size_t nameCount);
[[nodiscard]] const char* GetTechniqueTypeName(size_t techniqueTypeIndex) const;
[[nodiscard]] size_t GetTechniqueTypeCount() const;
private:
std::vector<const char*> m_names;
};
class CommonTechset
{
public:
std::string m_name;
std::vector<std::string> m_technique_names;
};
} // namespace techset