feat: add vertex declaration to t6 techset dumps

This commit is contained in:
Jan Laupetin
2025-12-16 11:47:29 +00:00
parent 9b526adaed
commit 930b116ac0
6 changed files with 309 additions and 60 deletions
+55
View File
@@ -0,0 +1,55 @@
#include "CommonTechnique.h"
namespace techset
{
CommonStreamRoutingInfos::CommonStreamRoutingInfos(const CommonStreamRoutingSourceInfo* sourceInfos,
const size_t sourceCount,
const CommonStreamRoutingDestinationInfo* destinationNames,
const size_t destinationCount)
: m_sources(sourceCount),
m_destinations(destinationCount)
{
std::copy(sourceInfos, &sourceInfos[sourceCount], m_sources.data());
std::copy(destinationNames, &destinationNames[destinationCount], m_destinations.data());
}
const char* CommonStreamRoutingInfos::GetSourceName(const CommonStreamSource source) const
{
if (source >= m_sources.size())
return nullptr;
return m_sources[source].name;
}
const char* CommonStreamRoutingInfos::GetSourceAbbreviation(const CommonStreamSource source) const
{
if (source >= m_sources.size())
return nullptr;
return m_sources[source].abbreviation;
}
bool CommonStreamRoutingInfos::IsSourceOptional(const CommonStreamSource source) const
{
if (source >= m_sources.size())
return false;
return m_sources[source].optional;
}
const char* CommonStreamRoutingInfos::GetDestinationName(const CommonStreamDestination destination) const
{
if (destination >= m_destinations.size())
return nullptr;
return m_destinations[destination].name;
}
const char* CommonStreamRoutingInfos::GetDestinationAbbreviation(const CommonStreamDestination destination) const
{
if (destination >= m_destinations.size())
return nullptr;
return m_destinations[destination].abbreviation;
}
} // namespace techset
+49
View File
@@ -6,6 +6,54 @@
namespace techset
{
struct CommonStreamRoutingSourceInfo
{
const char* name;
const char* abbreviation;
bool optional;
};
struct CommonStreamRoutingDestinationInfo
{
const char* name;
const char* abbreviation;
};
typedef std::uint8_t CommonStreamSource;
typedef std::uint8_t CommonStreamDestination;
class CommonStreamRoutingInfos
{
public:
CommonStreamRoutingInfos(const CommonStreamRoutingSourceInfo* sourceInfos,
size_t sourceCount,
const CommonStreamRoutingDestinationInfo* destinationNames,
size_t destinationCount);
[[nodiscard]] const char* GetSourceName(CommonStreamSource source) const;
[[nodiscard]] const char* GetSourceAbbreviation(CommonStreamSource source) const;
[[nodiscard]] bool IsSourceOptional(CommonStreamSource source) const;
[[nodiscard]] const char* GetDestinationName(CommonStreamDestination destination) const;
[[nodiscard]] const char* GetDestinationAbbreviation(CommonStreamDestination destination) const;
private:
std::vector<CommonStreamRoutingSourceInfo> m_sources;
std::vector<CommonStreamRoutingDestinationInfo> m_destinations;
};
class CommonStreamRouting
{
public:
CommonStreamSource m_source;
CommonStreamDestination m_destination;
};
class CommonVertexDeclaration
{
public:
std::vector<CommonStreamRouting> m_routing;
};
class CommonTechniqueShader
{
public:
@@ -27,6 +75,7 @@ namespace techset
DxVersion m_dx_version;
CommonTechniqueShader m_vertex_shader;
CommonTechniqueShader m_pixel_shader;
CommonVertexDeclaration m_vertex_declaration;
};
class CommonTechnique