summaryrefslogtreecommitdiff
path: root/src/ecs.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-09-01 10:10:51 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-09-06 17:24:27 -0400
commitb9f90793c8c0468d5f35d7af976a6e3bcd206aad (patch)
treebff30852d5bb594c7ad84c5f7f3d5a385e18fc4a /src/ecs.hpp
parent092e287ba5669f6ed40b721c0bdf2450dae95af8 (diff)
add first graphics binding component
Diffstat (limited to 'src/ecs.hpp')
-rw-r--r--src/ecs.hpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/ecs.hpp b/src/ecs.hpp
index d37ff57..a777a4a 100644
--- a/src/ecs.hpp
+++ b/src/ecs.hpp
@@ -4,22 +4,25 @@
#include "dynamic-array.hpp"
#include "macros.hpp"
#include "memory.hpp"
+#include "components.hpp"
#include "glm/vec3.hpp"
-TypeSafeInt_H(EntityHandle, uint64_t, UINT64_MAX);
-
extern DynArray<EntityHandle> EntitiesToBeRemoved;
-struct Entity {
- EntityHandle handle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}};
- EntityHandle parentHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}};
- bool isMarkedForRemoval = false;
-};
+static struct {
+ uint64_t Entity = 1ULL << 0;
+ uint64_t GrBinds = 1ULL << 1;
+} ComponentTypes;
void ECS_Init();
void ECS_Tick(double delta);
EntityHandle ECS_CreateEntity(EntityHandle parentEntityHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}});
void ECS_MarkForRemoval(EntityHandle entityHandle);
+CompGrBinds &ECS_CreateGrBinds(EntityHandle entHandle);
+CompGrBinds *ECS_GetGrBinds(EntityHandle entHandle);
+uint64_t ECS_GetGrBinds_BucketCount();
+CompGrBinds *ECS_GetGrBinds(uint64_t bucketIndex, uint64_t &itemCount);
+
#endif /* PKE_ECS_HPP */