diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-09-01 10:10:51 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-09-06 17:24:27 -0400 |
| commit | b9f90793c8c0468d5f35d7af976a6e3bcd206aad (patch) | |
| tree | bff30852d5bb594c7ad84c5f7f3d5a385e18fc4a /src/ecs.hpp | |
| parent | 092e287ba5669f6ed40b721c0bdf2450dae95af8 (diff) | |
add first graphics binding component
Diffstat (limited to 'src/ecs.hpp')
| -rw-r--r-- | src/ecs.hpp | 17 |
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 */ |
