ezEngine  Milestone 7
Declarations.h
1 #pragma once
2 
3 #include <Foundation/Memory/LargeBlockAllocator.h>
5 #include <Foundation/Types/Id.h>
6 
7 #include <Core/Basics.h>
8 
9 class ezWorld;
10 namespace ezInternal
11 {
12  class SpatialData;
13  class WorldData;
14 
15  enum
16  {
17  DEFAULT_BLOCK_SIZE = 4096
18  };
19 
20  typedef ezLargeBlockAllocator<DEFAULT_BLOCK_SIZE> WorldLargeBlockAllocator;
21 }
22 
23 class ezGameObject;
24 struct ezGameObjectDesc;
25 
27 class ezComponent;
28 
31 {
32  typedef ezUInt32 StorageType;
33 
34  EZ_DECLARE_ID_TYPE(ezGameObjectId, 20, 6);
35 
36  EZ_FORCE_INLINE ezGameObjectId(StorageType instanceIndex, StorageType generation,
37  StorageType worldIndex = 0)
38  {
39  m_Data = 0;
40  m_InstanceIndex = instanceIndex;
41  m_Generation = generation;
42  m_WorldIndex = worldIndex;
43  }
44 
45  union
46  {
47  StorageType m_Data;
48  struct
49  {
50  StorageType m_InstanceIndex : 20;
51  StorageType m_Generation : 6;
52  StorageType m_WorldIndex : 6;
53  };
54  };
55 };
56 
63 {
64  EZ_DECLARE_HANDLE_TYPE(ezGameObjectHandle, ezGameObjectId);
65 
66  friend class ezWorld;
67  friend class ezGameObject;
68 };
69 
71 
74 {
75  EZ_FORCE_INLINE ezComponentId() : ezGenericComponentId()
76  {
77  m_TypeId = 0;
78  }
79 
80  EZ_FORCE_INLINE ezComponentId(StorageType instanceIndex, StorageType generation, ezUInt16 typeId = 0) :
81  ezGenericComponentId(instanceIndex, generation)
82  {
83  m_TypeId = typeId;
84  }
85 
86  EZ_FORCE_INLINE ezComponentId(ezGenericComponentId genericId, ezUInt16 typeId) :
87  ezGenericComponentId(genericId)
88  {
89  m_TypeId = typeId;
90  }
91 
93  ezUInt16 m_TypeId;
94 };
95 
102 {
103  EZ_DECLARE_HANDLE_TYPE(ezComponentHandle, ezComponentId);
104 
105  friend class ezWorld;
106  friend class ezComponentManagerBase;
107  friend class ezComponent;
108 };
109 
112 {
113  typedef ezUInt32 StorageType;
114 
115  enum Enum
116  {
117  Dynamic = EZ_BIT(0),
118  Active = EZ_BIT(1),
119  Initialized = EZ_BIT(2),
120 
121  Default = Dynamic | Active
122  };
123 
124  struct Bits
125  {
126  StorageType Dynamic : 1;
127  StorageType Active : 1;
128  StorageType Initialized : 1;
129  };
130 };
131 
133 
136 {
137  enum Enum
138  {
144  Default = ToComponents
145  };
146 };
147 
150 {
151  enum Enum
152  {
156  COUNT
157  };
158 };
159