From 4cd201da9cd2b26dc39b064e81f17b92e796e532 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Tue, 25 Feb 2025 18:45:04 -0500 Subject: pke: EntityType unregister callback on unload --- src/entities.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/entities.cpp') 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(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(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]; -- cgit v1.2.3