summaryrefslogtreecommitdiff
path: root/src/Presentation.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Presentation.zig')
-rw-r--r--src/Presentation.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Presentation.zig b/src/Presentation.zig
index e1f1b585..3b5bb3e0 100644
--- a/src/Presentation.zig
+++ b/src/Presentation.zig
@@ -44,6 +44,8 @@ pending: bool = false,
previous_cells: []pardes.Cell = &.{},
previous_body_layers: [MAX_PANES]pardes.Layer = @splat(.{}),
previous_tag_layers: [pardes.MAX_TAG_LAYERS]pardes.Layer = @splat(.{}),
+previous_regions: [pardes.MAX_REGIONS]pardes.Region = undefined,
+previous_nregions: u16 = 0,
previous_cols: u16 = 0,
previous_rows: u16 = 0,
previous_valid: bool = false,
@@ -346,6 +348,8 @@ pub fn capturePrevious(self: *Presentation, gpa: std.mem.Allocator, surface: *co
old.cells = storage;
}
@memcpy(self.previous_cells, cells);
+ @memcpy(self.previous_regions[0..surface.nregions], surface.regionList());
+ self.previous_nregions = surface.nregions;
self.previous_cols = surface.cols;
self.previous_rows = surface.rows;
self.previous_valid = true;
@@ -584,6 +588,7 @@ pub fn submit(self: *Presentation, p: *Pardes, s: *pardes.Surface) !void {
s.previous_cells = self.previous_cells;
s.previous_body_layers = &self.previous_body_layers;
s.previous_tag_layers = &self.previous_tag_layers;
+ s.previous_regions = self.previous_regions[0..self.previous_nregions];
s.cell_diffs = self.diffs;
}
s.npanel_tracks = paintOrder(