diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2024-11-14 14:46:23 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2024-11-14 14:46:23 -0500 |
| commit | b2548ba4ce295fcd94a50123fb543fac2ef2bc33 (patch) | |
| tree | 444a32abb4a094c4fa2f7bc9a95aa86963ad4110 /src/camera.cpp | |
| parent | b1d926361b9d613ad712ad161f9a8b7ccab4551d (diff) | |
add pk.h and major pkmem refactor
Completely replaces the memory module with pkmem
pkmem is a newer implementation of the same
bucket memory structure.
Also includes replacing pkstr.h with pk.h's pkstr
Diffstat (limited to 'src/camera.cpp')
| -rw-r--r-- | src/camera.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/camera.cpp b/src/camera.cpp index 3982642..75aa40f 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -5,7 +5,6 @@ #include "camera.hpp" #include "ecs.hpp" #include "math-helpers.hpp" -#include "memory.hpp" #include "physics.hpp" PkeCamera NullCamera { @@ -21,7 +20,7 @@ PkeCamera NullCamera { }; PkeCamera *ActiveCamera = &NullCamera; -const PkeHandleItemIndex_T MAX_CAMERAS_PER_BUCKET = 32; +const pk_handle_item_index_T MAX_CAMERAS_PER_BUCKET = 32; BucketContainer<PkeCamera, CameraHandle> Camera_BucketContainer{}; btSphereShape CameraShape{1.f}; @@ -34,10 +33,10 @@ PkeCamera &PkeCamera_Register_Inner(PkeCamera &cam, const InstPos &instPos) { btVector3 localInertia(0, 0, 0); CameraShape.calculateLocalInertia(instPos.mass, localInertia); - cam.phys.inst->bt.motionState = Pke_New<btDefaultMotionState>(MemBkt_Bullet); + cam.phys.inst->bt.motionState = pk_new<btDefaultMotionState>(MemBkt_Bullet); new (cam.phys.inst->bt.motionState) btDefaultMotionState(instPos.posRot); - cam.phys.inst->bt.rigidBody = Pke_New<btRigidBody>(MemBkt_Bullet); + cam.phys.inst->bt.rigidBody = pk_new<btRigidBody>(MemBkt_Bullet); new (cam.phys.inst->bt.rigidBody) btRigidBody(instPos.mass, cam.phys.inst->bt.motionState, &CameraShape, localInertia); cam.phys.inst->bt.rigidBody->setLinearVelocity(btVector3(0,0,0)); @@ -72,10 +71,10 @@ PkeCamera *PkeCamera_Get(CameraHandle cameraHandle) { PkeCamera *PkeCamera_Get(EntityHandle handle) { assert(handle != EntityHandle_MAX); - for (PkeHandleBucketIndex_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) { + for (pk_handle_bucket_index_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) { auto &bkt = Camera_BucketContainer.buckets[b]; long itemCount = Camera_BucketContainer.pkeHandle.bucketIndex == b ? Camera_BucketContainer.pkeHandle.itemIndex : Camera_BucketContainer.limits.itemIndex; - for (PkeHandleItemIndex_T i = 0; i < itemCount; ++i) { + for (pk_handle_item_index_T i = 0; i < itemCount; ++i) { auto &cam = bkt[i]; if (cam.handle == handle) return &Camera_BucketContainer.buckets[cam.camHandle.bucketIndex][cam.camHandle.itemIndex]; @@ -107,7 +106,7 @@ void PkeCamera_AttachToInstance(CameraHandle cameraHandle, CompInstance *inst) { cam.phys.inst->bt.rigidBody->activate(); assert(cam.phys.constraint == nullptr || cam.phys.constraint == CAFE_BABE(btTypedConstraint)); - cam.phys.constraint = Pke_New<btTypedConstraint>(MemBkt_Bullet); + cam.phys.constraint = pk_new<btTypedConstraint>(MemBkt_Bullet); new (cam.phys.constraint) btPoint2PointConstraint(*cam.phys.inst->bt.rigidBody, *inst->bt.rigidBody, btVector3(0.f, -1.f, -1.f), cameraOffset); BtDynamicsWorld->addConstraint(cam.phys.constraint); @@ -119,7 +118,7 @@ void PkeCamera_DetachFromInstance(CameraHandle cameraHandle, CompInstance *inst) assert(cameraHandle != CameraHandle_MAX); auto &cam = Camera_BucketContainer.buckets[cameraHandle.bucketIndex][cameraHandle.itemIndex]; BtDynamicsWorld->removeConstraint(cam.phys.constraint); - Pke_Delete<btTypedConstraint>(cam.phys.constraint, MemBkt_Bullet); + pk_delete<btTypedConstraint>(cam.phys.constraint, MemBkt_Bullet); cam.phys.constraint = CAFE_BABE(btTypedConstraint); cam.stale = PKE_CAMERA_STALE_POSROT; } @@ -127,10 +126,10 @@ void PkeCamera_DetachFromInstance(CameraHandle cameraHandle, CompInstance *inst) void PkeCamera_SetPrimary(CameraHandle cameraHandle) { assert(cameraHandle != CameraHandle_MAX); auto &primaryCam = Camera_BucketContainer.buckets[cameraHandle.bucketIndex][cameraHandle.itemIndex]; - for (PkeHandleBucketIndex_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) { + for (pk_handle_bucket_index_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) { auto &bkt = Camera_BucketContainer.buckets[b]; long itemCount = Camera_BucketContainer.pkeHandle.bucketIndex == b ? Camera_BucketContainer.pkeHandle.itemIndex : Camera_BucketContainer.limits.itemIndex; - for (PkeHandleItemIndex_T i = 0; i < itemCount; ++i) { + for (pk_handle_item_index_T i = 0; i < itemCount; ++i) { auto *cam = &bkt[i]; if (cam->parentHandle != primaryCam.parentHandle) { continue; @@ -148,7 +147,7 @@ void PkeCamera_Destroy(CameraHandle cameraHandle) { if (cam.phys.constraint != nullptr && cam.phys.constraint != CAFE_BABE(btTypedConstraint)) { // reminder: this is not currently handled by ECS BtDynamicsWorld->removeConstraint(cam.phys.constraint); - Pke_Delete<btTypedConstraint>(cam.phys.constraint, MemBkt_Bullet); + pk_delete<btTypedConstraint>(cam.phys.constraint, MemBkt_Bullet); } ECS_MarkForRemoval(camPtr); @@ -176,7 +175,7 @@ PkeCamera *PkeCamera_GetCameras(int64_t bucketIndex, int64_t &count) { void PkeCamera_Init() { Buckets_Init(Camera_BucketContainer, MAX_CAMERAS_PER_BUCKET); - NullCamera.phys.inst = Pke_New<CompInstance>(); + NullCamera.phys.inst = pk_new<CompInstance>(); InstPos instPos{ .scale = btVector3(1.f, 1.f, 1.f), .mass = 1.f, @@ -187,11 +186,11 @@ void PkeCamera_Init() { void PkeCamera_Teardown() { Buckets_Destroy(Camera_BucketContainer); BtDynamicsWorld->removeRigidBody(NullCamera.phys.inst->bt.rigidBody); - Pke_Delete<btDefaultMotionState>(NullCamera.phys.inst->bt.motionState, MemBkt_Bullet); - Pke_Delete<btRigidBody>(NullCamera.phys.inst->bt.rigidBody, MemBkt_Bullet); + pk_delete<btDefaultMotionState>(NullCamera.phys.inst->bt.motionState, MemBkt_Bullet); + pk_delete<btRigidBody>(NullCamera.phys.inst->bt.rigidBody, MemBkt_Bullet); NullCamera.phys.inst->bt.motionState = CAFE_BABE(btDefaultMotionState); NullCamera.phys.inst->bt.rigidBody = CAFE_BABE(btRigidBody); - Pke_Delete<CompInstance>(NullCamera.phys.inst); + pk_delete<CompInstance>(NullCamera.phys.inst); NullCamera.phys.inst = CAFE_BABE(CompInstance); } @@ -206,10 +205,10 @@ void PkeCamera_Tick(double delta) { * could be that removing pos and rot from the camera would make this unnecessary? * See the camera serializer for more. */ - for (PkeHandleBucketIndex_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) { + for (pk_handle_bucket_index_T b = 0; b <= Camera_BucketContainer.pkeHandle.bucketIndex; ++b) { auto &bkt = Camera_BucketContainer.buckets[b]; long itemCount = Camera_BucketContainer.pkeHandle.bucketIndex == b ? Camera_BucketContainer.pkeHandle.itemIndex : Camera_BucketContainer.limits.itemIndex; - for (PkeHandleItemIndex_T i = 0; i < itemCount; ++i) { + for (pk_handle_item_index_T i = 0; i < itemCount; ++i) { auto &cam = bkt[i]; if (cam.handle == EntityHandle_MAX) { continue; |
