aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/terminal/kitty/graphics_storage.zig
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/libghostty-vt/src/terminal/kitty/graphics_storage.zig')
-rw-r--r--vendor/libghostty-vt/src/terminal/kitty/graphics_storage.zig11
1 files changed, 10 insertions, 1 deletions
diff --git a/vendor/libghostty-vt/src/terminal/kitty/graphics_storage.zig b/vendor/libghostty-vt/src/terminal/kitty/graphics_storage.zig
index 897c8944..bd8cd424 100644
--- a/vendor/libghostty-vt/src/terminal/kitty/graphics_storage.zig
+++ b/vendor/libghostty-vt/src/terminal/kitty/graphics_storage.zig
@@ -154,7 +154,7 @@ pub const ImageStorage = struct {
if (img.generation != self.generation) return false;
const expected_len = switch (img.data) {
- .complete => return false,
+ .complete, .encoded_png, .native_file => return false,
.pending => |len| len,
};
if (data.len != expected_len) return false;
@@ -975,6 +975,15 @@ pub const ImageStorage = struct {
img.generation = self.generation;
}
+ pub fn materializeBacking(self: *ImageStorage, io: std.Io, alloc: Allocator, img: *Image) !void {
+ if (img.data != .encoded_png and img.data != .native_file) return;
+ const before = img.data.len();
+ try img.materializeFile(alloc);
+ try img.materializePng(alloc);
+ self.total_bytes -= before - img.data.len();
+ self.markImageContentChanged(io, img);
+ }
+
/// Convert a stored image's base data to RGBA in place, adjusting
/// byte accounting. All animation composition happens in RGBA;
/// this is called before the first composition into an image.