summaryrefslogtreecommitdiff
path: root/src/asset-manager.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-08-28 14:04:12 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-08-28 14:04:12 -0400
commitf7bd0793424ed8e024520a941cc4cfcf4eb84de2 (patch)
tree37519eced8f4f66973d88b822513c7841d29a9fe /src/asset-manager.cpp
parent3583af4e1c7979e8d309693d53fbe9184e067a50 (diff)
pke: use new pk_iter_t from pk.h
Diffstat (limited to 'src/asset-manager.cpp')
-rw-r--r--src/asset-manager.cpp33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/asset-manager.cpp b/src/asset-manager.cpp
index 519698e..0ff1cf2 100644
--- a/src/asset-manager.cpp
+++ b/src/asset-manager.cpp
@@ -218,10 +218,12 @@ pk_bkt_arr *AM_GetAssets() {
}
void AM_DebugPrint() {
+ bool b;
+ pk_iter_t<Asset> iter_asset{};
fprintf(stdout, "Asset Manager printout:\n");
- auto asset_iter_fn = [](void *user_data, void *arr_obj_data) {
- (void)user_data;
- Asset &asset = *reinterpret_cast<Asset *>(arr_obj_data);
+ b = pk_bkt_arr_iter_begin(&asset_mstr.bc, &iter_asset);
+ while (b == true) {
+ Asset &asset = *iter_asset;
printf("-Asset: 0x%.08X 0x%.08X\n", asset.handle.b, asset.handle.i);
printf("\tkey: %.16s\n", asset.key);
if (asset.basePath != nullptr) {
@@ -234,28 +236,33 @@ void AM_DebugPrint() {
printf("\tfuture: %i\n", asset.future.valid());
printf("\treferenceCount: %i\n", asset.referenceCount);
printf("\tAssetLoadingState: %hhu\n", static_cast<AssetLoadingState_T>(asset.state));
- };
- pk_bkt_arr_iterate(&asset_mstr.bc, asset_iter_fn, NULL);
+ b = pk_bkt_arr_iter_increment(&asset_mstr.bc, &iter_asset);
+ }
}
void AM_GC() {
- auto asset_iter_fn = [](void *user_data, void *arr_obj_data) {
- (void)user_data;
- Asset &asset = *reinterpret_cast<Asset *>(arr_obj_data);
+ bool b;
+ pk_iter_t<Asset> iter_asset{};
+ b = pk_bkt_arr_iter_begin(&asset_mstr.bc, &iter_asset);
+ while (b == true) {
+ Asset &asset = *iter_asset;
if (PK_HAS_FLAG(asset.flags, PKE_ASSET_FLAGS_MEM_STATIC)) {
fprintf(stdout, "[AM_GC] Asset '%.16s' is static, skipping.\n", asset.key);
- return;
+ b = pk_bkt_arr_iter_increment(&asset_mstr.bc, &iter_asset);
+ continue;
}
switch (asset.state) {
case PKE_ASSET_LOADING_STATE_LOADING:
fprintf(stdout, "[AM_GC] Asset '%.16s' is still loading.\n", asset.key);
- break;
+ b = pk_bkt_arr_iter_increment(&asset_mstr.bc, &iter_asset);
+ continue;
default:
void(0);
}
if (asset.referenceCount > 0) {
fprintf(stdout, "[AM_GC] Asset '%.16s' still in use, count: %i\n", asset.key, asset.referenceCount);
- return;
+ b = pk_bkt_arr_iter_increment(&asset_mstr.bc, &iter_asset);
+ continue;
}
if (asset.ptr != nullptr && asset.ptr != CAFE_BABE(void)) {
pk_delete_base(asset.ptr, asset.size);
@@ -265,8 +272,8 @@ void AM_GC() {
asset.ptr = CAFE_BABE(void);
new (&asset.future) std::future<void>{};
asset.state = PKE_ASSET_LOADING_STATE_UNLOADED;
- };
- pk_bkt_arr_iterate(&asset_mstr.bc, asset_iter_fn, NULL);
+ b = pk_bkt_arr_iter_increment(&asset_mstr.bc, &iter_asset);
+ }
}
void AM_Teardown() {