14 #ifndef _DS3D_COMMON_TYPE_TRAIT__H
15 #define _DS3D_COMMON_TYPE_TRAIT__H
16 #include <ds3d/common/common.h>
17 #include <ds3d/common/typeid.h>
18 #include <ds3d/common/idatatype.h>
26 template <
typename Tp>
37 struct __DataTypeVal {
43 struct TpId<uint32_t> : __TypeID<DS3D_TYPEID_UINT32_T>, __DataTypeVal<DataType::kUint32> {
46 struct TpId<int32_t> : __TypeID<DS3D_TYPEID_INT32_T>, __DataTypeVal<DataType::kInt32> {
49 struct TpId<float> : __TypeID<DS3D_TYPEID_FLOAT>, __DataTypeVal<DataType::kFp32> {
52 struct TpId<int8_t> : __TypeID<DS3D_TYPEID_INT8_T>, __DataTypeVal<DataType::kInt8> {
55 struct TpId<uint8_t> : __TypeID<DS3D_TYPEID_UINT8_T>, __DataTypeVal<DataType::kUint8> {
58 struct TpId<uint16_t> : __TypeID<DS3D_TYPEID_UINT16_T>, __DataTypeVal<DataType::kUint16> {
61 struct TpId<int16_t> : __TypeID<DS3D_TYPEID_INT16_T>, __DataTypeVal<DataType::kInt16> {
65 struct TpId<double> : __TypeID<DS3D_TYPEID_DOUBLE>, __DataTypeVal<DataType::kDouble> {
69 struct TpId<bool> : __TypeID<DS3D_TYPEID_BOOL>, __DataTypeVal<DataType::kDouble> {
73 struct TpId<int64_t> : __TypeID<DS3D_TYPEID_INT64_T>, __DataTypeVal<DataType::kInt64> {
76 template <
typename TP>
77 struct __DataTypeTrait {
92 using type = half_float::half;
135 #endif // _DS3D_COMMON_TYPE_TRAIT__H