Elevate Engine 1
Loading...
Searching...
No Matches
Data.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
5// size in bytes
6#define EE_DATA_SIZE_None 0
7#define EE_DATA_SIZE_Bool 1
8#define EE_DATA_SIZE_Int 4
9#define EE_DATA_SIZE_Int2 (EE_DATA_SIZE_Int*2)
10#define EE_DATA_SIZE_Int3 (EE_DATA_SIZE_Int*3)
11#define EE_DATA_SIZE_Int4 (EE_DATA_SIZE_Int*4)
12#define EE_DATA_SIZE_Float 4
13#define EE_DATA_SIZE_Float2 (EE_DATA_SIZE_Float*2)
14#define EE_DATA_SIZE_Float3 (EE_DATA_SIZE_Float*3)
15#define EE_DATA_SIZE_Float4 (EE_DATA_SIZE_Float*4)
16#define EE_DATA_SIZE_Mat3 (EE_DATA_SIZE_Float*3*3)
17#define EE_DATA_SIZE_Mat4 (EE_DATA_SIZE_Float*4*4)
18#define EE_DATA_SIZE_Mat5 (EE_DATA_SIZE_Float*5*5)
19
20#define EE_DATA_COUNT_None 0
21#define EE_DATA_COUNT_Bool 1
22#define EE_DATA_COUNT_Int 1
23#define EE_DATA_COUNT_Int2 2
24#define EE_DATA_COUNT_Int3 3
25#define EE_DATA_COUNT_Int4 4
26#define EE_DATA_COUNT_Float 1
27#define EE_DATA_COUNT_Float2 2
28#define EE_DATA_COUNT_Float3 3
29#define EE_DATA_COUNT_Float4 4
30#define EE_DATA_COUNT_Mat3 3*3
31#define EE_DATA_COUNT_Mat4 4*4
32#define EE_DATA_COUNT_Mat5 5*5
33
34// TODO remove this part to make the engine usable with other rendering api
35#define EE_DATA_USEOPENGL
36 #ifdef EE_DATA_USEOPENGL
37 #define EE_DATA_TYPE_None 0
38 #define EE_DATA_TYPE_Bool 0x8856
39 #define EE_DATA_TYPE_Int 0x1404
40 #define EE_DATA_TYPE_Int2 0x1404
41 #define EE_DATA_TYPE_Int3 0x1404
42 #define EE_DATA_TYPE_Int4 0x1404
43 #define EE_DATA_TYPE_Float 0x1406
44 #define EE_DATA_TYPE_Float2 0x1406
45 #define EE_DATA_TYPE_Float3 0x1406
46 #define EE_DATA_TYPE_Float4 0x1406
47 #define EE_DATA_TYPE_Mat3 0x1406
48 #define EE_DATA_TYPE_Mat4 0x1406
49 #define EE_DATA_TYPE_Mat5 0x1406
50#endif
51
52namespace Elevate
53{
54 const int ShaderDataTypeCount[] = {
55 EE_DATA_COUNT_None, // None
56 EE_DATA_COUNT_Bool, // Bool
57 EE_DATA_COUNT_Int, // Int
58 EE_DATA_COUNT_Int2, // Int2
59 EE_DATA_COUNT_Int3, // Int3
60 EE_DATA_COUNT_Int4, // Int4
61 EE_DATA_COUNT_Float, // Float
62 EE_DATA_COUNT_Float2,// Float2
63 EE_DATA_COUNT_Float3,// Float3
64 EE_DATA_COUNT_Float4,// Float4
65 EE_DATA_COUNT_Mat3, // Mat3
66 EE_DATA_COUNT_Mat4, // Mat4
67 EE_DATA_COUNT_Mat5 // Mat5
68 };
69
70 const int ShaderDataTypeSize[] = {
71 EE_DATA_SIZE_None, // None
72 EE_DATA_SIZE_Bool, // Bool
73 EE_DATA_SIZE_Int, // Int
74 EE_DATA_SIZE_Int2, // Int2
75 EE_DATA_SIZE_Int3, // Int3
76 EE_DATA_SIZE_Int4, // Int4
77 EE_DATA_SIZE_Float, // Float
78 EE_DATA_SIZE_Float2,// Float2
79 EE_DATA_SIZE_Float3,// Float3
80 EE_DATA_SIZE_Float4,// Float4
81 EE_DATA_SIZE_Mat3, // Mat3
82 EE_DATA_SIZE_Mat4, // Mat4
83 EE_DATA_SIZE_Mat5, // Mat5
84 EE_DATA_SIZE_None, // Sampler2D
85 EE_DATA_SIZE_None, // Custom
86 EE_DATA_SIZE_None // Unknown
87 };
88
89 const unsigned int ShaderDataAPIType[] = {
90 EE_DATA_TYPE_None, // None
91 EE_DATA_TYPE_Bool, // Bool
92 EE_DATA_TYPE_Int, // Int
93 EE_DATA_TYPE_Int2, // Int2
94 EE_DATA_TYPE_Int3, // Int3
95 EE_DATA_TYPE_Int4, // Int4
96 EE_DATA_TYPE_Float, // Float
97 EE_DATA_TYPE_Float2,// Float2
98 EE_DATA_TYPE_Float3,// Float3
99 EE_DATA_TYPE_Float4,// Float4
100 EE_DATA_TYPE_Mat3, // Mat3
101 EE_DATA_TYPE_Mat4, // Mat4
102 EE_DATA_TYPE_Mat5 // Mat5
103 };
104
105 enum class EngineDataType
106 {
107 None = 0,
108 Bool,
109 Int, Int2, Int3, Int4,
111 Mat3, Mat4, Mat5,
112 Sampler2D,
113 Custom,
114 Unknown
115 };
116
117 inline uint32_t GetDataTypeCount(EngineDataType type) {
118 return ShaderDataTypeCount[static_cast<uint32_t>(type)];
119 }
120
121 inline uint32_t GetDataTypeSize(EngineDataType type) {
122 return ShaderDataTypeSize[static_cast<uint32_t>(type)];
123 }
124
125 inline uint32_t GetDataAPIType(EngineDataType type) {
126 return ShaderDataAPIType[static_cast<uint32_t>(type)];
127 }
128}
#define EE_DATA_SIZE_Float4
Definition Data.h:15
#define EE_DATA_TYPE_Mat4
Definition Data.h:48
#define EE_DATA_TYPE_Int2
Definition Data.h:40
#define EE_DATA_TYPE_Float4
Definition Data.h:46
#define EE_DATA_TYPE_Mat3
Definition Data.h:47
#define EE_DATA_COUNT_Mat5
Definition Data.h:32
#define EE_DATA_SIZE_Mat5
Definition Data.h:18
#define EE_DATA_COUNT_Float2
Definition Data.h:27
#define EE_DATA_SIZE_Int3
Definition Data.h:10
#define EE_DATA_COUNT_Int3
Definition Data.h:24
#define EE_DATA_COUNT_Int
Definition Data.h:22
#define EE_DATA_TYPE_Int
Definition Data.h:39
#define EE_DATA_COUNT_Int4
Definition Data.h:25
#define EE_DATA_COUNT_Mat3
Definition Data.h:30
#define EE_DATA_TYPE_Bool
Definition Data.h:38
#define EE_DATA_TYPE_Float
Definition Data.h:43
#define EE_DATA_SIZE_Float
Definition Data.h:12
#define EE_DATA_SIZE_Int
Definition Data.h:8
#define EE_DATA_COUNT_None
Definition Data.h:20
#define EE_DATA_TYPE_Mat5
Definition Data.h:49
#define EE_DATA_SIZE_Float2
Definition Data.h:13
#define EE_DATA_TYPE_Int4
Definition Data.h:42
#define EE_DATA_COUNT_Bool
Definition Data.h:21
#define EE_DATA_COUNT_Int2
Definition Data.h:23
#define EE_DATA_SIZE_None
Definition Data.h:6
#define EE_DATA_TYPE_Float3
Definition Data.h:45
#define EE_DATA_SIZE_Mat4
Definition Data.h:17
#define EE_DATA_TYPE_Int3
Definition Data.h:41
#define EE_DATA_TYPE_Float2
Definition Data.h:44
#define EE_DATA_TYPE_None
Definition Data.h:37
#define EE_DATA_SIZE_Bool
Definition Data.h:7
#define EE_DATA_COUNT_Mat4
Definition Data.h:31
#define EE_DATA_SIZE_Int2
Definition Data.h:9
#define EE_DATA_SIZE_Int4
Definition Data.h:11
#define EE_DATA_COUNT_Float4
Definition Data.h:29
#define EE_DATA_COUNT_Float3
Definition Data.h:28
#define EE_DATA_SIZE_Float3
Definition Data.h:14
#define EE_DATA_SIZE_Mat3
Definition Data.h:16
#define EE_DATA_COUNT_Float
Definition Data.h:26
EngineDataType
Definition Data.h:106
const unsigned int ShaderDataAPIType[]
Definition Data.h:89
uint32_t GetDataTypeSize(EngineDataType type)
Definition Data.h:121
@ None
Definition Event.h:22
uint32_t GetDataTypeCount(EngineDataType type)
Definition Data.h:117
const int ShaderDataTypeCount[]
Definition Data.h:54
const int ShaderDataTypeSize[]
Definition Data.h:70
uint32_t GetDataAPIType(EngineDataType type)
Definition Data.h:125