From 9a4cebaa1bdb71f64b3743d52676f2557a3214ca Mon Sep 17 00:00:00 2001 From: Halil Durak Date: Tue, 17 Feb 2026 01:45:40 +0300 Subject: [PATCH] `ImageData`: prefer new typed array type --- src/browser/webapi/ImageData.zig | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/browser/webapi/ImageData.zig b/src/browser/webapi/ImageData.zig index faf65c29..ece60ec0 100644 --- a/src/browser/webapi/ImageData.zig +++ b/src/browser/webapi/ImageData.zig @@ -29,8 +29,7 @@ const Page = @import("../Page.zig"); const ImageData = @This(); _width: u32, _height: u32, -/// Can be mutated from both Zig and JS ends; see `js.Uint8ClampedArray(.ref)`. -_data: []u8, +_data: js.ArrayBufferRef(.Uint8Clamped), pub const ConstructorSettings = struct { /// Specifies the color space of the image data. @@ -68,14 +67,14 @@ pub fn constructor( } const size = width * height * 4; - const mem = try page.arena.alloc(u8, size); - // Zero-init since debug mode fills w/ char 170. - @memset(mem, 0); + //const mem = try page.arena.alloc(u8, size); + //// Zero-init since debug mode fills w/ char 170. + //@memset(mem, 0); return page._factory.create(ImageData{ ._width = width, ._height = height, - ._data = mem, + ._data = page.js.createTypedArray(.Uint8Clamped, size), }); } @@ -95,8 +94,8 @@ pub fn getColorSpace(_: *const ImageData) String { return comptime .wrap("srgb"); } -pub fn getData(self: *const ImageData) js.Uint8ClampedArray(.ref) { - return .{ .values = self._data }; +pub fn getData(self: *const ImageData) js.ArrayBufferRef(.Uint8Clamped) { + return self._data; } pub const JsApi = struct {