diff options
| -rw-r--r-- | src/entities.cpp | 5 | ||||
| -rw-r--r-- | src/entities.hpp | 1 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/entities.cpp b/src/entities.cpp index 2ace423..10a1168 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -1108,8 +1108,7 @@ void EntityType_Load(EntityType &et) { uint64_t id = 0; id |= ((uint64_t)helper.et.handle.bucketIndex << 32); id |= ((uint64_t)helper.et.handle.itemIndex); - // TODO pk.h currently does not offer a way to unregister this callback (EntityType_Unload) - pk_ev_register_cb(pke_ev_mgr_id_window, pke_ev_id_framebuffer_length_changed, EntityType_Inner_UpdateDescriptorSets_EvCallabck, reinterpret_cast<void *>(id)); + helper.et.pke_ev_cb_id_framebuffer_resized = pk_ev_register_cb(pke_ev_mgr_id_window, pke_ev_id_framebuffer_length_changed, EntityType_Inner_UpdateDescriptorSets_EvCallabck, reinterpret_cast<void *>(id)); // TODO DeviceMemory @@ -1123,6 +1122,8 @@ void EntityType_Unload(EntityType &et, CompGrBinds *grBindsArr[1]) { if (et.modelAssetKey[0] == '\0') return; et.modelAssetKey[0] = '\0'; + pk_ev_unregister_cb(pke_ev_mgr_id_window, pke_ev_id_framebuffer_length_changed, et.pke_ev_cb_id_framebuffer_resized); + EntityType_Inner_DestroyDescriptors(&et); for (long k = 0; k < et.detailsCount; ++k) { EntityTypeDetails &etd = et.details[k]; diff --git a/src/entities.hpp b/src/entities.hpp index a885e7f..f76e953 100644 --- a/src/entities.hpp +++ b/src/entities.hpp @@ -32,6 +32,7 @@ struct EntityType : public Entity_Base { VkDeviceMemory deviceMemoryTexture = VK_NULL_HANDLE; int64_t detailsCount = 0; EntityTypeDetails details[EntityTypeDetails_MAX]; + pk_ev_cb_id_T pke_ev_cb_id_framebuffer_resized; PkeCallback createInstanceCallback; // PkeCallback serializeInstanceCallback; // TODO // PkeCallback parseInstanceCallback; // TODO |
