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:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user