diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-08-28 14:04:12 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-08-28 14:04:12 -0400 |
| commit | f7bd0793424ed8e024520a941cc4cfcf4eb84de2 (patch) | |
| tree | 37519eced8f4f66973d88b822513c7841d29a9fe /src/asset-manager.cpp | |
| parent | 3583af4e1c7979e8d309693d53fbe9184e067a50 (diff) | |
pke: use new pk_iter_t from pk.h
Diffstat (limited to 'src/asset-manager.cpp')
| -rw-r--r-- | src/asset-manager.cpp | 33 |
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() { |
