Legacy cleanup, part 2 (#3659)

* Legacy cleanup, part 2

There are still things that can be removed, those will be likely done in part three:
`The Return of the Cleanup` :)

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Fix windows build

Somehow there were some unfixed errors from enabled warnings?
I'm unsure if I've pulled repo in unstable state, or those were somehow
missed.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
This commit is contained in:
Artur K
2021-08-30 22:40:02 +02:00
committed by GitHub
parent fa0f2a1007
commit 96a5f06ca3
116 changed files with 189 additions and 18706 deletions
+8 -774
View File
@@ -9,6 +9,9 @@
#include <AzCore/std/containers/vector.h>
#include <AzCore/std/string/string.h>
#include <AzCore/std/containers/array.h>
#include <CryCommon/BaseTypes.h>
#include <CryCommon/VertexFormats.h>
namespace AZ
{
namespace Vertex
@@ -77,7 +80,7 @@ namespace AZ
UInt32_4,
NumTypes
};
};
struct AttributeTypeData
{
@@ -127,15 +130,15 @@ namespace AZ
return (static_cast<uint8>(type) << kUsageBitCount) | static_cast<uint8>(usage);
}
static AttributeUsage GetUsage(const uint8 attribute)
{
{
return static_cast<AttributeUsage>(attribute & kUsageMask);
}
static AttributeType GetType(const uint8 attribute)
{
{
return static_cast<AttributeType>((attribute & kTypeMask) >> kUsageBitCount);
}
static uint8 GetByteLength(const uint8 attribute)
{
{
return AttributeTypeDataTable[(uint)GetType(attribute)].byteSize;
}
static const AZStd::string& GetSemanticName(uint8 attribute)
@@ -167,126 +170,22 @@ namespace AZ
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
m_enum = eVF_P3F_C4B_T2F;
break;
case eVF_P3F_C4B_T2F_T2F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
m_enum = eVF_P3F_C4B_T2F_T2F;
break;
case eVF_P3S_C4B_T2S:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float16_4));// vec3f16 is backed by a CryHalf4
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float16_2));
m_enum = eVF_P3S_C4B_T2S;
break;
case eVF_P3S_C4B_T2S_T2S:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float16_4));// vec3f16 is backed by a CryHalf4
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float16_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float16_2));
m_enum = eVF_P3S_C4B_T2S_T2S;
break;
case eVF_P3S_N4B_C4B_T2S:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float16_4));// vec3f16 is backed by a CryHalf4
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Normal, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float16_2));
m_enum = eVF_P3S_N4B_C4B_T2S;
break;
case eVF_P3F_C4B_T4B_N3F2:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Tangent, AttributeType::Float32_3));//x-axis
AddAttribute(Attribute::CreateAttribute(AttributeUsage::BiTangent, AttributeType::Float32_3));//y-axis
#ifdef PARTICLE_MOTION_BLUR // Nonfunctional and disabled.
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));//prevPos
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Tangent, AttributeType::Float32_3));//prevXTan
AddAttribute(Attribute::CreateAttribute(AttributeUsage::BiTangent, AttributeType::Float32_3));//prevYTan
#endif
m_enum = eVF_P3F_C4B_T4B_N3F2;// Particles.
break;
case eVF_TP3F_C4B_T2F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
m_enum = eVF_TP3F_C4B_T2F;// Fonts (28 bytes).
break;
case eVF_TP3F_T2F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_TP3F_T2F_T3F;
break;
case eVF_P3F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_T3F; // Miscellaneus.
break;
case eVF_P3F_T2F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_T2F_T3F;
break;
// Additional streams
case eVF_T2F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
m_enum = eVF_T2F; // Light maps TC (8 bytes).
break;
case eVF_W4B_I4S:// Skinned weights/indices stream.
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Weights, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Indices, AttributeType::UInt16_4));
m_enum = eVF_W4B_I4S;
break;
case eVF_C4B_C4B:// SH coefficients.
// We use the "Weights" usage since sh coefs use an unknown usage of 4 bytes.
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Weights, AttributeType::Byte_4)); //coef0
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Weights, AttributeType::Byte_4)); //coef1
m_enum = eVF_C4B_C4B;
break;
case eVF_P3F_P3F_I4B:// Shape deformation stream.
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3)); //thin
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3)); //fat
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Indices, AttributeType::Byte_4));
m_enum = eVF_P3F_P3F_I4B;
break;
case eVF_P3F:// Velocity stream.
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
m_enum = eVF_P3F;
break;
case eVF_C4B_T2S:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float16_2));
m_enum = eVF_C4B_T2S;// General (Position is merged with Tangent stream)
break;
case eVF_P2F_T4F_C4F: // Lens effects simulation
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
m_enum = eVF_P2F_T4F_C4F;
break;
case eVF_P2F_T4F_T4F_C4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
m_enum = eVF_P2F_T4F_T4F_C4F;
break;
case eVF_P2S_N4B_C4B_T1F:// terrain
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float16_2));// xy-coordinates in terrain
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Normal, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));// z-coordinate in terrain
m_enum = eVF_P2S_N4B_C4B_T1F;
break;
case eVF_P3F_C4B_T2S:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float16_2));
m_enum = eVF_P3F_C4B_T2S;
break;
case eVF_P2F_C4B_T2F_F4B:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
@@ -299,546 +198,6 @@ namespace AZ
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Byte_4));
m_enum = eVF_P3F_C4B;
break;
case eVF_P3F_C4F_T2F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
m_enum = eVF_P3F_C4F_T2F;
break;
case eVF_P3F_C4F_T2F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T2F_T3F;
break;
case eVF_P3F_C4F_T2F_T3F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T2F_T3F_T3F;
break;
case eVF_P3F_C4F_T2F_T1F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
m_enum = eVF_P3F_C4F_T2F_T1F;
break;
case eVF_P3F_C4F_T2F_T1F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T2F_T1F_T3F;
break;
case eVF_P3F_C4F_T2F_T1F_T3F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T2F_T1F_T3F_T3F;
break;
case eVF_P3F_C4F_T4F_T2F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
m_enum = eVF_P3F_C4F_T4F_T2F;
break;
case eVF_P3F_C4F_T4F_T2F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T4F_T2F_T3F;
break;
case eVF_P3F_C4F_T4F_T2F_T3F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T4F_T2F_T3F_T3F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F_T3F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F_T3F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F_T3F_T3F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T3F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T3F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T3F_T3F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T3F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T3F;
break;
case eVF_P4F_T2F_C4F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P4F_T2F_C4F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T4F;
break;
case eVF_P3F_C4F_T2F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T3F_T4F;
break;
case eVF_P3F_C4F_T2F_T3F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T3F_T3F_T4F;
break;
case eVF_P3F_C4F_T2F_T1F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T1F_T4F;
break;
case eVF_P3F_C4F_T2F_T1F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T1F_T3F_T4F;
break;
case eVF_P3F_C4F_T2F_T1F_T3F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T1F_T3F_T3F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T3F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T3F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T3F_T3F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F_T3F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F_T3F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F_T3F_T3F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T3F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T3F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T3F_T3F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T3F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T3F_T4F;
break;
case eVF_P4F_T2F_C4F_T4F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P4F_T2F_C4F_T4F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T3F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T3F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T1F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T1F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T1F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T1F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T1F_T3F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T1F_T3F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T4F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T3F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T3F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F_T4F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T4F_T2F_T1F_T3F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T4F_T2F_T1F_T3F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T3F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T3F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T4F_T4F;
break;
case eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T3F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_1));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_3));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P3F_C4F_T2F_T2F_T1F_T1F_T3F_T3F_T4F_T4F;
break;
case eVF_P4F_T2F_C4F_T4F_T4F_T4F_T4F:
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Position, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_2));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::Color, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
AddAttribute(Attribute::CreateAttribute(AttributeUsage::TexCoord, AttributeType::Float32_4));
m_enum = eVF_P4F_T2F_C4F_T4F_T4F_T4F_T4F;
break;
case eVF_Max:
default:
AZ_Error("VF", false, "Invalid vertex format");
@@ -854,115 +213,19 @@ namespace AZ
static const uint8 kHas16BitFloatTexCoords = 0x2;
static const uint8 kHas32BitFloatTexCoords = 0x1;
//! Helper function to check to see if the vertex format has a position attribute that uses 16 bit floats for the underlying type
bool Has16BitFloatPosition() const
{
return (m_flags & kHas16BitFloatPosition) != 0x0;
}
//! Helper function to check to see if the vertex format has a texture coordinate attribute that uses 16 bit floats for the underlying type
bool Has16BitFloatTextureCoordinates() const
{
return (m_flags & kHas16BitFloatTexCoords) != 0x0;
}
//! Helper function to check to see if the vertex format has a texture coordinate attribute that uses 32 bit floats for the underlying type
bool Has32BitFloatTextureCoordinates() const
{
return (m_flags & kHas32BitFloatTexCoords) != 0x0;
}
uint32 GetAttributeUsageCount(AttributeUsage usage) const
{
return (uint32)m_attributeUsageCounts[(uint)usage];
}
bool TryGetAttributeOffsetAndType(AttributeUsage usage, uint32 index, uint& outOffset, AttributeType& outType) const
{
outOffset = 0;
outType = AttributeType::NumTypes;
for (uint ii=0; ii < m_numAttributes; ++ii)
{
uint8 attribute = m_vertexAttributes[ii];
if (Attribute::GetUsage(attribute) == usage)
{
if (index == 0)
{
outType = Attribute::GetType(attribute);
return true;
}
else
{
--index;
}
}
outOffset += Attribute::GetByteLength(attribute);
}
return false;
}
uint8 GetAttributeByteLength(AttributeUsage usage) const
{
for (uint ii = 0; ii < m_numAttributes; ++ii)
{
uint8 attribute = m_vertexAttributes[ii];
if (Attribute::GetUsage(attribute) == usage)
{
return Attribute::GetByteLength(attribute);
}
}
return 0;
}
const uint8* GetAttributes( uint32 &outCount) const
{
outCount = m_numAttributes;
return m_vertexAttributes;
}
//! Return true if the vertex format is a superset of the input
bool IsSupersetOf(const AZ::Vertex::Format& input) const
{
uint32 count = 0;
const uint8* attributes = input.GetAttributes(count);
for ( uint8 ii=0; ii<count; ++ii)
{
const uint8 attribute = attributes[ii];
if (GetAttributeUsageCount(Attribute::GetUsage(attribute)) < input.GetAttributeUsageCount(Attribute::GetUsage(attribute)))
{
return false;
}
}
return true;
}
uint GetStride(void) const { return m_stride; }
//! Returns the true if an attribute with the given usage is found, false otherwise
bool TryCalculateOffset(uint& offset, AttributeUsage usage, uint index = 0) const
{
offset = 0;
for (uint ii = 0; ii < m_numAttributes; ++ii)
{
uint8 attribute = m_vertexAttributes[ii];
if (Attribute::GetUsage(attribute) == usage)
{
if (index == 0)
{
return true;
}
else
{
--index;
}
}
offset += Attribute::GetByteLength(attribute);
}
return false;
}
// Quick comparison operators.
bool operator==(const Format& other) const
@@ -1039,7 +302,7 @@ namespace AZ
m_stride = static_cast<uint8>(stride);
}
#ifdef PARTICLE_MOTION_BLUR
@@ -1056,34 +319,5 @@ namespace AZ
uint8 m_flags = 0x0;
};
// bNeedNormals=1 - float normals; bNeedNormals=2 - byte normals //waltont TODO (this was copied as is from vertexformats.h) this comment is out of date and the function does not even use all the parameters. This should be replaceable with the new vertex class, and should be replaced when refactoring CHWShader_D3D::mfVertexFormat which handles the shader parsing/serialization
_inline Format VertFormatForComponents([[maybe_unused]] bool bNeedCol, [[maybe_unused]] bool bHasTC, bool bHasTC2, bool bHasPS, bool bHasNormal)
{
AZ::Vertex::Format RequestedVertFormat;
if (bHasPS)
{
RequestedVertFormat = AZ::Vertex::Format(eVF_P3F_C4B_T4B_N3F2);
}
else
if (bHasNormal)
{
RequestedVertFormat = AZ::Vertex::Format(eVF_P3S_N4B_C4B_T2S);
}
else
{
if (!bHasTC2)
{
RequestedVertFormat = AZ::Vertex::Format(eVF_P3S_C4B_T2S);
}
else
{
RequestedVertFormat = AZ::Vertex::Format(eVF_P3F_C4B_T2F_T2F);
}
}
return RequestedVertFormat;
}
}
}