[canvaskit] Add drawImage support
Adds drawImageRect as well.
Bug: skia:
Change-Id: Ib74f92a3ee22664297d8ce7ff1d2cd2644b806b7
Reviewed-on: https://skia-review.googlesource.com/c/173990
Reviewed-by: Kevin Lubick <kjlubick@google.com>
diff --git a/experimental/canvaskit/interface.js b/experimental/canvaskit/interface.js
index 6ecb327..e3d6b3a 100644
--- a/experimental/canvaskit/interface.js
+++ b/experimental/canvaskit/interface.js
@@ -328,6 +328,15 @@
};
}
+ CanvasKit.XYWHRect = function(x, y, w, h) {
+ return {
+ fLeft: x,
+ fTop: y,
+ fRight: x+w,
+ fBottom: y+h,
+ };
+ }
+
var nullptr = 0; // emscripten doesn't like to take null as uintptr_t
// arr can be a normal JS array or a TypedArray
@@ -403,6 +412,26 @@
return dpe;
}
+ // data is a TypedArray or ArrayBuffer
+ CanvasKit.MakeImageFromEncoded = function(data) {
+ data = new Uint8Array(data);
+
+ var iptr = CanvasKit._malloc(data.byteLength);
+ CanvasKit.HEAPU8.set(data, iptr);
+ var img = CanvasKit._decodeImage(iptr, data.byteLength);
+ if (!img) {
+ SkDebug('Could not decode image');
+ CanvasKit._free(iptr);
+ return null;
+ }
+ var realDelete = img.delete.bind(img);
+ img.delete = function() {
+ CanvasKit._free(iptr);
+ realDelete();
+ }
+ return img;
+ }
+
CanvasKit.MakeImageShader = function(imgData, xTileMode, yTileMode) {
var iptr = CanvasKit._malloc(imgData.byteLength);
CanvasKit.HEAPU8.set(new Uint8Array(imgData), iptr);