diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-06 15:31:08 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-12-06 15:31:08 -0500 |
| commit | 04c97b83505e685d590c28c7605128716f3333ff (patch) | |
| tree | d1909a239caef10d48026a6f41242e386a200ad5 /src/camera.hpp | |
| parent | 8d27ab131e0829fb847c93529628e4751b356b5f (diff) | |
cameras can be rigstered
Diffstat (limited to 'src/camera.hpp')
| -rw-r--r-- | src/camera.hpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/camera.hpp b/src/camera.hpp index c699767..94923b7 100644 --- a/src/camera.hpp +++ b/src/camera.hpp @@ -1,3 +1,5 @@ +#ifndef PKE_CAMERA_HPP +#define PKE_CAMERA_HPP #include "macros.hpp" #include "vendor/glm_include.hpp" @@ -8,6 +10,8 @@ TypeSafeInt_Const_Expr(PkeCameraType, uint8_t, 0xFF); TypeSafeInt_Const_Expr(PkeCameraOrientation, uint8_t, 0xFF); TypeSafeInt_Const_Expr(PkeCameraStaleFlags, uint8_t, 0xFF); +TypeSafeInt_H(CameraHandle, uint64_t, UINT64_MAX); + const PkeCameraType PKE_CAMERA_TYPE_PERSPECTIVE = PkeCameraType{1 << 0}; const PkeCameraType PKE_CAMERA_TYPE_ORTHOGONAL = PkeCameraType{1 << 1}; @@ -20,14 +24,25 @@ const PkeCameraStaleFlags PKE_CAMERA_STALE_ORIENTATION = PkeCameraStaleFlags{1 < const PkeCameraStaleFlags PKE_CAMERA_STALE_ALL = PkeCameraStaleFlags{0xFF}; struct PkeCamera { - glm::vec3 pos; - glm::quat rot; - glm::vec3 target; - PkeCameraType type; - PkeCameraOrientation orientation; - PkeCameraStaleFlags stale; + CameraHandle handle = CameraHandle{0}; + glm::vec3 pos = glm::vec3(0); + glm::quat rot = glm::quat{}; + glm::vec3 target = glm::vec3(0); + PkeCameraType type = PkeCameraType_MAX; + PkeCameraOrientation orientation = PkeCameraOrientation_MAX; + PkeCameraStaleFlags stale = PkeCameraStaleFlags_MAX; }; extern PkeCamera NullCamera; extern PkeCamera *ActiveCamera; +void PkeCamera_Init(); +PkeCamera &PkeCamera_Register(); +PkeCamera *PkeCamera_Get(CameraHandle handle); +int64_t PkeCamera_GetBucketCount(); +PkeCamera *PkeCamera_GetCameras(int64_t bucketIndex, int64_t &count); +void PkeCamera_Destroy(CameraHandle handle); +void PkeCamera_Teardown(); + +void PkeCamera_Unregister(uint64_t id); +#endif /* PKE_CAMERA_HPP */ |
