summaryrefslogtreecommitdiff
path: root/src/entities.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-02-25 18:45:04 -0500
committerJonathan Bradley <jcb@pikum.xyz>2025-02-25 18:45:04 -0500
commit4cd201da9cd2b26dc39b064e81f17b92e796e532 (patch)
tree491357e60625cfca518779bf58cc8560ade92af7 /src/entities.cpp
parent665197f050584ec4cab5120574ff127b3da49563 (diff)
pke: EntityType unregister callback on unload
Diffstat (limited to 'src/entities.cpp')
-rw-r--r--src/entities.cpp5
1 files changed, 3 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];