Move DataFormat enum to vertex.h

This commit is contained in:
Alex Szpakowski
2020-01-13 23:20:49 -04:00
parent 1bc2b947fc
commit d5d50d2e0d
4 changed files with 158 additions and 100 deletions
+87
View File
@@ -131,6 +131,79 @@ enum DataType
DATA_MAX_ENUM
};
// The order of this enum affects the dataFormatInfo array.
enum DataFormat
{
DATAFORMAT_FLOAT,
DATAFORMAT_FLOAT_VEC2,
DATAFORMAT_FLOAT_VEC3,
DATAFORMAT_FLOAT_VEC4,
DATAFORMAT_FLOAT_MAT2X2,
DATAFORMAT_FLOAT_MAT2X3,
DATAFORMAT_FLOAT_MAT2X4,
DATAFORMAT_FLOAT_MAT3X2,
DATAFORMAT_FLOAT_MAT3X3,
DATAFORMAT_FLOAT_MAT3X4,
DATAFORMAT_FLOAT_MAT4X2,
DATAFORMAT_FLOAT_MAT4X3,
DATAFORMAT_FLOAT_MAT4X4,
DATAFORMAT_INT32,
DATAFORMAT_INT32_VEC2,
DATAFORMAT_INT32_VEC3,
DATAFORMAT_INT32_VEC4,
DATAFORMAT_UINT32,
DATAFORMAT_UINT32_VEC2,
DATAFORMAT_UINT32_VEC3,
DATAFORMAT_UINT32_VEC4,
DATAFORMAT_SNORM8_VEC4,
DATAFORMAT_UNORM8_VEC4,
DATAFORMAT_INT8_VEC4,
DATAFORMAT_UINT8_VEC4,
DATAFORMAT_SNORM16,
DATAFORMAT_SNORM16_VEC2,
DATAFORMAT_SNORM16_VEC4,
DATAFORMAT_UNORM16,
DATAFORMAT_UNORM16_VEC2,
DATAFORMAT_UNORM16_VEC4,
DATAFORMAT_INT16,
DATAFORMAT_INT16_VEC2,
DATAFORMAT_INT16_VEC4,
DATAFORMAT_UINT16,
DATAFORMAT_UINT16_VEC2,
DATAFORMAT_UINT16_VEC4,
DATAFORMAT_BOOL,
DATAFORMAT_BOOL_VEC2,
DATAFORMAT_BOOL_VEC3,
DATAFORMAT_BOOL_VEC4,
DATAFORMAT_MAX_ENUM
};
enum DataBaseType
{
DATA_BASETYPE_FLOAT,
DATA_BASETYPE_INT,
DATA_BASETYPE_UINT,
DATA_BASETYPE_SNORM,
DATA_BASETYPE_UNORM,
DATA_BASETYPE_BOOL,
DATA_BASETYPE_MAX_ENUM
};
enum Winding
{
WINDING_CW,
@@ -161,6 +234,18 @@ enum class CommonFormat
XYf_STPf_RGBAub,
};
struct DataFormatInfo
{
DataBaseType baseType;
bool isMatrix;
int components;
int matrixRows;
int matrixColumns;
size_t componentSize;
size_t alignment;
size_t size;
};
struct STf_RGBAub
{
float s, t;
@@ -315,6 +400,8 @@ inline CommonFormat getSinglePositionFormat(bool is2D)
return is2D ? CommonFormat::XYf : CommonFormat::XYZf;
}
const DataFormatInfo &getDataFormatInfo(DataFormat format);
size_t getIndexDataSize(IndexDataType type);
size_t getDataTypeSize(DataType datatype);
bool isDataTypeInteger(DataType datatype);