deinit
Parameters
- self:*Self
- *Self
Source
Implementation
pub fn deinit(self: *Self) void {
// Make ourselves the current window to support data deinit functions.
const prev_window = dvui.current_window;
dvui.current_window = self;
defer dvui.current_window = prev_window;
if (dvui.accesskit_enabled) self.accesskit.deinit();
self.data_store.deinit(self.gpa);
self.texture_cache.deinit(self.gpa, self.backend);
self.fonts.deinit(self.gpa, self.backend);
if (self.is_primary)
dvui.debug.deinit(self.gpa);
self.subwindows.deinit(self.gpa);
self.min_sizes.deinit(self.gpa);
{
var it = self.tags.map.keyIterator();
while (it.next()) |name| {
//std.debug.print("tag free {s}\n", .{name.*});
self.gpa.free(name.*);
}
self.tags.deinit(self.gpa);
}
self.animations.deinit(self.gpa);
self.tab_index_prev.deinit(self.gpa);
self.tab_index.deinit(self.gpa);
self.dialogs.deinit(self.gpa);
self.toasts.deinit(self.gpa);
var child_win_it = self.child_os_wins.iterator();
while (child_win_it.next()) |remaining_win| {
remaining_win.value_ptr.deinit(self.gpa);
}
self.child_os_wins.deinit(self.gpa);
self.keybinds.deinit(self.gpa);
self._arena.deinit();
self._lifo_arena.deinit();
self._widget_stack.deinit();
dvui.struct_ui.deinit(self.gpa);
self.* = undefined;
}