Merge pull request #754 from mitchellh/mem

renderers: clear GPU cell buffers when resizing
This commit is contained in:
Mitchell Hashimoto
2023-10-28 11:42:44 -07:00
committed by GitHub
2 changed files with 12 additions and 0 deletions

View File

@ -1047,6 +1047,12 @@ pub fn setScreenSize(
.strikethrough_thickness = old.strikethrough_thickness,
};
// Reset our buffer sizes so that we free memory when the screen shrinks.
// This could be made more clever by only doing this when the screen
// shrinks but the performance cost really isn't that much.
self.cells.clearAndFree(self.alloc);
self.cells_bg.clearAndFree(self.alloc);
log.debug("screen size screen={} grid={}, cell={}", .{ dim, grid_size, self.cell_size });
}

View File

@ -1259,6 +1259,12 @@ pub fn setScreenSize(
if (single_threaded_draw) self.draw_mutex.lock();
defer if (single_threaded_draw) self.draw_mutex.unlock();
// Reset our buffer sizes so that we free memory when the screen shrinks.
// This could be made more clever by only doing this when the screen
// shrinks but the performance cost really isn't that much.
self.cells.clearAndFree(self.alloc);
self.cells_bg.clearAndFree(self.alloc);
// Store our screen size
self.screen_size = dim;
self.padding.explicit = pad;