populate entity deletions more urgently in watch viiew

This commit is contained in:
Ryan Fleury
2024-09-26 16:24:47 -07:00
parent 007efe29eb
commit 60f65d30e2
+6 -1
View File
@@ -1621,6 +1621,7 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
taken = 1;
state_dirty = 1;
snap_to_cursor = 1;
RD_EntityList entities_to_remove = {0};
RD_WatchViewPoint next_cursor_pt = {0};
for(S64 y = selection_tbl.min.y; y <= selection_tbl.max.y; y += 1)
{
@@ -1644,7 +1645,7 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
RD_Entity *entity = collection_info.entity;
if(!rd_entity_is_nil(entity))
{
rd_cmd(RD_CmdKind_RemoveEntity, .entity = rd_handle_from_entity(entity));
rd_entity_list_push(scratch.arena, &entities_to_remove, entity);
U64 deleted_id = collection_info.key.child_id;
U64 deleted_num = collection_info.block->expand_view_rule_info->expr_expand_num_from_id(deleted_id, collection_info.block->expand_view_rule_info_user_data);
if(deleted_num != 0)
@@ -1722,6 +1723,10 @@ rd_watch_view_build(RD_WatchViewState *ewv, RD_WatchViewFlags flags, String8 roo
#endif
}
}
for(RD_EntityNode *n = entities_to_remove.first; n != 0; n = n->next)
{
rd_entity_mark_for_deletion(n->entity);
}
ewv->cursor = ewv->mark = ewv->next_cursor = ewv->next_mark = next_cursor_pt;
}