DVUI

Parameters

#
self:*RenderFrontToBack
*RenderFrontToBack

Source

Implementation

#
pub fn deinit(self: *RenderFrontToBack) void {
        const cw = dvui.currentWindow();

        // restore previous queues
        _ = renderingSet(self.prev_rendering);
        cw.defer_render_cmds = self.prev_dr_cmds;
        cw.defer_render_cmds_after = self.prev_dr_cmds_after;

        // everything goes into the after queue
        var sw = cw.subwindows.current() orelse &cw.subwindows.stack.items[0];
        (cw.defer_render_cmds_after orelse &sw.render_cmds_after).insertSlice(cw.arena(), 0, self.render_cmds_after.items) catch |err| {
            dvui.logError(@src(), err, "RenderFrontToBack could not insert after to render_cmds_after", .{});
        };
        (cw.defer_render_cmds_after orelse &sw.render_cmds_after).insertSlice(cw.arena(), 0, self.render_cmds.items) catch |err| {
            dvui.logError(@src(), err, "RenderFrontToBack could not insert normal to render_cmds_after", .{});
        };

        self.render_cmds.clearAndFree(cw.arena());
        self.render_cmds_after.clearAndFree(cw.arena());
    }