summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-30 18:25:14 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-30 18:25:14 -0400
commitb0b1159780311c7c8ca9a9d41d11794e91e8895c (patch)
tree2b77fd6bfa7b5d07e8f3d96ea20e6e87bf3fa127 /src
parent150089e109bd982ef081201b308265c7dbfb3fd6 (diff)
pke: remove bucketed-array + various cleanups
Diffstat (limited to 'src')
-rw-r--r--src/bucketed-array.hpp65
-rw-r--r--src/camera.cpp1
-rw-r--r--src/ecs.cpp1
-rw-r--r--src/game-settings.hpp4
-rw-r--r--src/game.cpp6
-rw-r--r--src/level.cpp1
6 files changed, 9 insertions, 69 deletions
diff --git a/src/bucketed-array.hpp b/src/bucketed-array.hpp
deleted file mode 100644
index 150fa66..0000000
--- a/src/bucketed-array.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef PKE_BUCKETED_ARRAY_HPP
-#define PKE_BUCKETED_ARRAY_HPP
-
-#include <cstddef>
-#include <cassert>
-
-#include "pk.h"
-
-constexpr pk_handle_bucket_index_T BucketContainerDefaultBucketCount = 16;
-constexpr pk_handle_item_index_T BucketContainerDefaultItemCount = 256;
-
-template<typename T, typename CT = struct pk_handle, pk_handle_item_index_T BKT_CNT = BucketContainerDefaultBucketCount>
-struct BucketContainer {
- CT limits;
- CT pkeHandle;
- T* buckets[BKT_CNT];
- T& operator[](CT) const;
-};
-
-template<typename T, typename CT, pk_handle_item_index_T BKT_CNT>
-T&
-BucketContainer<T, CT, BKT_CNT>::operator[](CT handle) const {
- assert(handle.bucketIndex < this->limits.bucketIndex);
- assert(handle.itemIndex < this->limits.itemIndex);
- assert(handle.bucketIndex != this->pkeHandle.bucketIndex || handle.itemIndex < this->pkeHandle.itemIndex);
- return this->buckets[handle.bucketIndex][handle.itemIndex];
-}
-
-template<typename T, typename CT, pk_handle_item_index_T BKT_CNT>
-void Buckets_Init(BucketContainer<T, CT, BKT_CNT> &bktContainer, size_t maxItemCount = BucketContainerDefaultItemCount) {
- bktContainer.limits.bucketIndex = BKT_CNT;
- bktContainer.limits.itemIndex = maxItemCount;
- bktContainer.pkeHandle.bucketIndex = 0;
- bktContainer.pkeHandle.itemIndex = 0;
- for (pk_handle_item_index_T i = 0; i < BKT_CNT; ++i) {
- bktContainer.buckets[i] = nullptr;
- }
- bktContainer.buckets[0] = pk_new<T>(maxItemCount);
-}
-
-template<typename T, typename CT, pk_handle_item_index_T BKT_CNT>
-inline CT Buckets_NewHandle(BucketContainer<T, CT, BKT_CNT> &bktContainer) {
- CT returnValue = bktContainer.pkeHandle;
- bktContainer.pkeHandle.itemIndex += 1;
- if (bktContainer.pkeHandle.itemIndex >= bktContainer.limits.itemIndex) {
- bktContainer.pkeHandle.itemIndex = 0;
- bktContainer.pkeHandle.bucketIndex += 1;
- assert(bktContainer.pkeHandle.bucketIndex < bktContainer.limits.bucketIndex);
- }
- if (bktContainer.pkeHandle.itemIndex == 0) {
- bktContainer.buckets[bktContainer.pkeHandle.bucketIndex] = pk_new<T>(bktContainer.limits.itemIndex);
- }
- return returnValue;
-}
-
-template<typename T, typename CT, pk_handle_item_index_T BKT_CNT>
-static inline constexpr void Buckets_Destroy(BucketContainer<T, CT, BKT_CNT> &bktContainer) {
- for (pk_handle_item_index_T i = 0; i <= bktContainer.pkeHandle.bucketIndex; ++i) {
- if (bktContainer.buckets[i] == nullptr) continue;
- pk_delete<T>(bktContainer.buckets[i], bktContainer.limits.itemIndex);
- bktContainer.buckets[i] = CAFE_BABE(T);
- }
-}
-
-#endif /* PKE_BUCKETED_ARRAY_HPP */
diff --git a/src/camera.cpp b/src/camera.cpp
index 14f6694..e0a31fa 100644
--- a/src/camera.cpp
+++ b/src/camera.cpp
@@ -1,7 +1,6 @@
#include "BulletCollision/CollisionShapes/btSphereShape.h"
#include "BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h"
-#include "bucketed-array.hpp"
#include "camera.hpp"
#include "ecs.hpp"
#include "math-helpers.hpp"
diff --git a/src/ecs.cpp b/src/ecs.cpp
index 6ff4d5c..b0b5f6c 100644
--- a/src/ecs.cpp
+++ b/src/ecs.cpp
@@ -1,7 +1,6 @@
#include "ecs.hpp"
-#include "bucketed-array.hpp"
#include "game-settings.hpp"
#include "math-helpers.hpp"
#include "physics.hpp"
diff --git a/src/game-settings.hpp b/src/game-settings.hpp
index ba078b9..e6740e0 100644
--- a/src/game-settings.hpp
+++ b/src/game-settings.hpp
@@ -48,6 +48,10 @@ struct GameSettings {
LevelHandle previousLevel = LevelHandle_MAX;
bool was_framebuffer_resized = false;
} rt;
+ struct stats {
+ double last_deltas[3] = {};
+ double tick_rate = 0;
+ } stats;
};
extern GameSettings pkeSettings;
diff --git a/src/game.cpp b/src/game.cpp
index 08a392c..349acb1 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -265,9 +265,13 @@ void Game_Main(PKEWindowProperties windowProps, const char *executablePath) {
}
}
+ pkeSettings.stats.last_deltas[0] = pkeSettings.stats.last_deltas[1];
+ pkeSettings.stats.last_deltas[1] = pkeSettings.stats.last_deltas[2];
+ pkeSettings.stats.last_deltas[2] = deltaThisTick;
+ pkeSettings.stats.tick_rate = 3.L / (pkeSettings.stats.last_deltas[0] + pkeSettings.stats.last_deltas[1] + pkeSettings.stats.last_deltas[2]);
if ((currentTimePoint - lastLogTimePoint).count() > std::chrono::nanoseconds::period::den) {
lastLogTimePoint = currentTimePoint;
- fprintf(stdout, "TPS: ~%ld - actual:%ld - presents:%ld\n", int64_t(1 / deltaThisTick), tickCount, renderCount);
+ fprintf(stdout, "TPS: ~%.03f - actual:%ld - presents:%ld\n", pkeSettings.stats.tick_rate, tickCount, renderCount);
fflush(stdout);
tickCount = 0;
renderCount = 0;
diff --git a/src/level.cpp b/src/level.cpp
index d05009c..14e189f 100644
--- a/src/level.cpp
+++ b/src/level.cpp
@@ -1,7 +1,6 @@
#include "level.hpp"
-#include "bucketed-array.hpp"
#include "ecs.hpp"
#include "pk.h"