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 /editor | |
| parent | 3583af4e1c7979e8d309693d53fbe9184e067a50 (diff) | |
pke: use new pk_iter_t from pk.h
Diffstat (limited to 'editor')
| -rw-r--r-- | editor/editor.cpp | 119 |
1 files changed, 70 insertions, 49 deletions
diff --git a/editor/editor.cpp b/editor/editor.cpp index 2292066..ab8598c 100644 --- a/editor/editor.cpp +++ b/editor/editor.cpp @@ -545,19 +545,23 @@ struct AssetPickerSearchStruct { AssetType type{PKE_ASSET_TYPE_ALL}; }; void RecordImGui_AssetPicker(AssetPickerSearchStruct &apss) { + bool b; + pk_bkt_arr *bkt_arr_assets; + pk_iter_t<Asset> iter_asset{}; if (shouldRebuildAssetList == true) { if (assetEntries.next == 0) { - auto asset_iter_fn = [](void *user_data, void *arr_obj_data) { - (void)user_data; + bkt_arr_assets = AM_GetAssets(); + b = pk_bkt_arr_iter_begin(bkt_arr_assets, &iter_asset); + while (b == true) { assetLabel tmp{}; - const Asset &a = *reinterpret_cast<Asset*>(arr_obj_data); + const Asset &a = *iter_asset; tmp.key[AssetKeyLength-1] = '\0'; tmp.handle = a.handle; tmp.type = a.type; strncpy(tmp.key, a.key, AssetKeyLength); pk_arr_append_t(&assetEntries, tmp); - }; - pk_bkt_arr_iterate(AM_GetAssets(), asset_iter_fn, NULL); + b = pk_bkt_arr_iter_increment(bkt_arr_assets, &iter_asset); + } } std::qsort(assetEntries.data, assetEntries.next, sizeof(assetLabel), assetLabelCmp); } @@ -741,6 +745,9 @@ void RecordImGuiEditorWrapper() { } void RecordImGuiEntityTypes() { + bool b; + pk_bkt_arr *bkt_arr_ent_types; + pk_iter_t<EntityType> iter_ent_type{}; if (!ImGui::Begin("EntityTypes")) { ImGui::End(); return; @@ -759,9 +766,10 @@ void RecordImGuiEntityTypes() { ImGui::TableHeadersRow(); size_t counter = 0; - auto et_iter_cb = [](void *user_data, void *arr_obj_data) { - size_t &counter = *reinterpret_cast<size_t *>(user_data); - const EntityType &et = *reinterpret_cast<EntityType*>(arr_obj_data); + bkt_arr_ent_types = EntityType_GetEntityTypes(); + b = pk_bkt_arr_iter_begin(bkt_arr_ent_types, &iter_ent_type); + while (b == true) { + const EntityType &et = *iter_ent_type; ImGui::PushID(counter++); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); @@ -779,8 +787,8 @@ void RecordImGuiEntityTypes() { ImGui::SameLine(); ImGui::Text("count: %u", et.details[0].grBinds->instanceCounter); ImGui::PopID(); - }; - pk_bkt_arr_iterate(EntityType_GetEntityTypes(), et_iter_cb, &counter); + b = pk_bkt_arr_iter_increment(bkt_arr_ent_types, &iter_ent_type); + } ImGui::EndTable(); } ImGui::End(); @@ -983,7 +991,10 @@ void GenerateMTSDFGlyph(MSDFGlyphSettings *settings, const char *name) { } bool RecordImGui_GenerateMTSDFModal() { + bool b; bool ret_value = false; + pk_bkt_arr *bkt_arr_assets; + pk_iter_t<Asset> iter_asset{}; static struct FontTypeMSDFSettings msdf_settings{}; if (ImGui::BeginPopupModal("MTSDFModal", nullptr, ImGuiWindowFlags_AlwaysAutoResize)) { @@ -992,18 +1003,20 @@ bool RecordImGui_GenerateMTSDFModal() { ImGui::Text("Select font:"); ImGui::BeginDisabled(msdf_settings.minimum_scale <= 0.0 || msdf_settings.px_range <= 0.0); - auto asset_iter_fn = [](void *user_data, void *arr_obj_data) { - (void)user_data; - const Asset &a = *reinterpret_cast<Asset*>(arr_obj_data); + bkt_arr_assets = AM_GetAssets(); + b = pk_bkt_arr_iter_begin(bkt_arr_assets, &iter_asset); + while(b == true) { + const Asset &a = *iter_asset; if (!PK_HAS_FLAG(a.type, PKE_ASSET_TYPE_FONT)) { - return; + b = pk_bkt_arr_iter_increment(bkt_arr_assets, &iter_asset); + continue; } if (ImGui::Selectable(a.basePath)) { GenerateMTSDF(&msdf_settings, &a); ImGui::CloseCurrentPopup(); } - }; - pk_bkt_arr_iterate(AM_GetAssets(), asset_iter_fn, NULL); + b = pk_bkt_arr_iter_increment(bkt_arr_assets, &iter_asset); + } ImGui::EndDisabled(); ImGui::Separator(); if (ImGui::Button("Cancel")) { @@ -1063,6 +1076,9 @@ bool RecordImGui_GenerateMTSDFGlyphModal() { } void RecordImGuiAssets() { + bool b; + pk_bkt_arr *bkt_arr_asset; + pk_iter_t<Asset> iter_asset; if (!ImGui::Begin("AssetList")) { ImGui::End(); return; @@ -1083,9 +1099,10 @@ void RecordImGuiAssets() { ImGui::TableHeadersRow(); size_t counter = 0; - auto asset_iter_fn = [](void *user_data, void *arr_obj_data) { - size_t &counter = *reinterpret_cast<size_t*>(user_data); - const Asset &asset = *reinterpret_cast<Asset*>(arr_obj_data); + bkt_arr_asset = AM_GetAssets(); + b = pk_bkt_arr_iter_begin(bkt_arr_asset, &iter_asset); + while(b == true) { + const Asset &asset = *iter_asset; ImGui::PushID(counter++); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); @@ -1103,16 +1120,17 @@ void RecordImGuiAssets() { ImGui::TableSetColumnIndex(6); ImGui::Text("%hhi", asset.referenceCount); ImGui::PopID(); - }; - pk_bkt_arr_iterate(AM_GetAssets(), asset_iter_fn, &counter); + b = pk_bkt_arr_iter_increment(bkt_arr_asset, &iter_asset); + } ImGui::EndTable(); } ImGui::End(); } void RecordImGuiCameras() { - using CamIterFn = pk_tmpln_1<void, PkeCamera*, void*>; - static CamIterFn cam_iter_cb{}; + bool b; + pk_bkt_arr *bkt_arr_cams; + pk_iter_t<PkeCamera> iter_cam{}; CompInstance *active_inst = nullptr; if (!ImGui::Begin("Cameras")) { ImGui::End(); @@ -1154,13 +1172,10 @@ void RecordImGuiCameras() { ImGui::TableHeadersRow(); size_t cam_counter = 0; - cam_iter_cb.func = [&cam_counter, &active_inst](PkeCamera *cam_ptr) { - const auto &cam = *cam_ptr; - /* 2025-05-28 JCB delete me if you see me, i wasn't needed - if (cam.camHandle.b == CameraHandle_MAX.b && cam.camHandle.i == CameraHandle_MAX.i) { - return; - } - */ + bkt_arr_cams = &PkeCamera_GetPkBktArr(); + b = pk_bkt_arr_iter_begin(bkt_arr_cams, &iter_cam); + while (b == true) { + const auto &cam = *iter_cam; ImGui::PushID(cam_counter); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); @@ -1207,8 +1222,8 @@ void RecordImGuiCameras() { } ImGui::PopID(); cam_counter += 1; - }; - pk_bkt_arr_iterate(&PkeCamera_GetPkBktArr(), &CamIterFn::invoke, &cam_iter_cb); + b = pk_bkt_arr_iter_increment(bkt_arr_cams, &iter_cam); + } ImGui::EndTable(); } @@ -1650,6 +1665,9 @@ void RecordImGuiModalCreateEntityType() { } void RecordImGuiLevels() { + bool b; + pk_bkt_arr *bkt_arr_levels; + pk_iter_t<pke_level> iter_level{}; if (!ImGui::Begin("Levels")) { ImGui::End(); return; @@ -1663,16 +1681,16 @@ void RecordImGuiLevels() { ImGui::TableSetupColumn("Handle"); ImGui::TableHeadersRow(); - auto level_iter_cb = [](void *user_data, void *arr_obj_data) { - (void)user_data; - pke_level *lvl = reinterpret_cast<pke_level*>(arr_obj_data); + bkt_arr_levels = pke_level_get_levels(); + b = pk_bkt_arr_iter_begin(bkt_arr_levels, &iter_level); + while (b == true) { ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); - ImGui::Text("%s", lvl->name); + ImGui::Text("%s", iter_level->name); ImGui::TableSetColumnIndex(1); - ImGui::Text("0x%08X 0x%08X", lvl->levelHandle.b, lvl->levelHandle.i); - }; - pk_bkt_arr_iterate(pke_level_get_levels(), level_iter_cb, NULL); + ImGui::Text("0x%08X 0x%08X", iter_level->levelHandle.b, iter_level->levelHandle.i); + b = pk_bkt_arr_iter_increment(bkt_arr_levels, &iter_level); + } ImGui::EndTable(); } @@ -1947,6 +1965,10 @@ void RecordImGuiProjectBrowser() { } void RecordImGuiSceneBrowser() { + bool b; + EntityType *entType = NULL; + pk_bkt_arr *bkt_arr_instances; + pk_iter_t<CompInstance> iter_inst{}; NULL_CHAR_ARR(text, 128); if (!ImGui::Begin("SceneBrowser", &pkeSettings.editorSettings.isShowingSceneEditor)) { @@ -1954,24 +1976,23 @@ void RecordImGuiSceneBrowser() { return; } - using InstIterFn = pk_tmpln_1<void, CompInstance*, void*>; - InstIterFn inst_iter_cb{}; - inst_iter_cb.func = [&text](CompInstance *arr_obj_data) { - // EntityType *entType = EntityType_FindByEntityHandle(arr_obj_data->entHandle); - EntityType *entType = NULL; - CompGrBinds *grBinds = ECS_GetGrBinds(arr_obj_data->grBindsHandle); + bkt_arr_instances = ECS_GetInstances(); + b = pk_bkt_arr_iter_begin(bkt_arr_instances, &iter_inst); + while(b == true) { + entType = NULL; + CompGrBinds *grBinds = ECS_GetGrBinds(iter_inst->grBindsHandle); if (grBinds != NULL) { entType = static_cast<EntityType*>(ECS_GetEntity(grBinds->entHandle)); } - sprintf(text, "%08x %08x", arr_obj_data->instanceHandle.b, arr_obj_data->instanceHandle.i); + sprintf(text, "%08x %08x", iter_inst->instanceHandle.b, iter_inst->instanceHandle.i); if (ImGui::Button(text)) { - selectedEntity = arr_obj_data; + selectedEntity = iter_inst; } ImGui::SameLine(); sprintf(text, "EntityType: %s", entType != nullptr ? entType->entityTypeCode.val : "(no type)"); ImGui::Text("%s", text); - }; - pk_bkt_arr_iterate(ECS_GetInstances(), &InstIterFn::invoke, &inst_iter_cb); + b = pk_bkt_arr_iter_increment(bkt_arr_instances, &iter_inst); + } ImGui::End(); } |
