Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
TypeDescriptor.hpp
1#pragma once
2
3#include <string>
4
5namespace Grindstone::Reflection {
6 struct TypeDescriptor {
7 const char* name;
8 size_t size;
9
10 enum class ReflectionTypeData : char {
11 Struct = 0,
12 FixedArray,
13 Vector,
14 String,
15 Bool,
16 Int2,
17 Int3,
18 Int4,
19 Uint2,
20 Uint3,
21 Uint4,
22 Int8,
23 Int16,
24 Int32,
25 Int64,
26 Uint8,
27 Uint16,
28 Uint32,
29 Uint64,
30 Float,
31 Float2,
32 Float3,
33 Float4,
34 Double,
35 Double2,
36 Double3,
37 Double4,
38 Quaternion,
39 AssetReference,
40 Entity,
41 PhysicsLayer,
42 PhysicsLayerMask
43 };
44 ReflectionTypeData type;
45
46 TypeDescriptor() = default;
47 TypeDescriptor(const char* name, size_t size, ReflectionTypeData t) : name{ name }, size{ size }, type{ t } {}
48 virtual ~TypeDescriptor() {}
49 virtual const char* GetFullName() const { return name; }
50 };
51}