canvaskit-wasm
Version:
A WASM version of Skia's Canvas API
9 lines (7 loc) • 235 kB
JavaScript
var CanvasKitInit = (function() {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(CanvasKitInit) {
CanvasKitInit = CanvasKitInit || {};
null;var Module=typeof CanvasKitInit!=="undefined"?CanvasKitInit:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});function Debug(msg){}var IsDebug=false;(function(CanvasKit){CanvasKit._extraInitializations=CanvasKit._extraInitializations||[];CanvasKit._extraInitializations.push(function(){CanvasKit.MakeSWCanvasSurface=function(idOrElement){var canvas=idOrElement;if(canvas.tagName!=="CANVAS"){canvas=document.getElementById(idOrElement);if(!canvas){throw"Canvas with id "+idOrElement+" was not found"}}var surface=CanvasKit.MakeSurface(canvas.width,canvas.height);if(surface){surface._canvas=canvas}return surface};if(!CanvasKit.MakeCanvasSurface){CanvasKit.MakeCanvasSurface=CanvasKit.MakeSWCanvasSurface}CanvasKit.MakeSurface=function(width,height){var imageInfo={"width":width,"height":height,"colorType":CanvasKit.ColorType.RGBA_8888,"alphaType":CanvasKit.AlphaType.Unpremul,"colorSpace":CanvasKit.ColorSpace.SRGB};var pixelLen=width*height*4;var pixelPtr=CanvasKit._malloc(pixelLen);var surface=CanvasKit.Surface._makeRasterDirect(imageInfo,pixelPtr,width*4);if(surface){surface._canvas=null;surface._width=width;surface._height=height;surface._pixelLen=pixelLen;surface._pixelPtr=pixelPtr;surface.getCanvas().clear(CanvasKit.TRANSPARENT)}return surface};CanvasKit.MakeRasterDirectSurface=function(imageInfo,mallocObj,bytesPerRow){return CanvasKit.Surface._makeRasterDirect(imageInfo,mallocObj["byteOffset"],bytesPerRow)};CanvasKit.Surface.prototype.flush=function(dirtyRect){this._flush();if(this._canvas){var pixels=new Uint8ClampedArray(CanvasKit.HEAPU8.buffer,this._pixelPtr,this._pixelLen);var imageData=new ImageData(pixels,this._width,this._height);if(!dirtyRect){this._canvas.getContext("2d").putImageData(imageData,0,0)}else{this._canvas.getContext("2d").putImageData(imageData,0,0,dirtyRect[0],dirtyRect[1],dirtyRect[2]-dirtyRect[0],dirtyRect[3]-dirtyRect[1])}}};CanvasKit.Surface.prototype.dispose=function(){if(this._pixelPtr){CanvasKit._free(this._pixelPtr)}this.delete()};CanvasKit.currentContext=CanvasKit.currentContext||function(){};CanvasKit.setCurrentContext=CanvasKit.setCurrentContext||function(){}})})(Module);(function(CanvasKit){CanvasKit._extraInitializations=CanvasKit._extraInitializations||[];CanvasKit._extraInitializations.push(function(){function get(obj,attr,defaultValue){if(obj&&obj.hasOwnProperty(attr)){return obj[attr]}return defaultValue}CanvasKit.GetWebGLContext=function(canvas,attrs){if(!canvas){throw"null canvas passed into makeWebGLContext"}var contextAttributes={"alpha":get(attrs,"alpha",1),"depth":get(attrs,"depth",1),"stencil":get(attrs,"stencil",8),"antialias":get(attrs,"antialias",0),"premultipliedAlpha":get(attrs,"premultipliedAlpha",1),"preserveDrawingBuffer":get(attrs,"preserveDrawingBuffer",0),"preferLowPowerToHighPerformance":get(attrs,"preferLowPowerToHighPerformance",0),"failIfMajorPerformanceCaveat":get(attrs,"failIfMajorPerformanceCaveat",0),"enableExtensionsByDefault":get(attrs,"enableExtensionsByDefault",1),"explicitSwapControl":get(attrs,"explicitSwapControl",0),"renderViaOffscreenBackBuffer":get(attrs,"renderViaOffscreenBackBuffer",0)};if(attrs&&attrs["majorVersion"]){contextAttributes["majorVersion"]=attrs["majorVersion"]}else{contextAttributes["majorVersion"]=typeof WebGL2RenderingContext!=="undefined"?2:1}if(contextAttributes["explicitSwapControl"]){throw"explicitSwapControl is not supported"}var handle=GL.createContext(canvas,contextAttributes);if(!handle){return 0}GL.makeContextCurrent(handle);return handle};CanvasKit.deleteContext=function(handle){GL.deleteContext(handle)};CanvasKit.MakeWebGLCanvasSurface=function(idOrElement,colorSpace,attrs){colorSpace=colorSpace||null;var canvas=idOrElement;var isHTMLCanvas=typeof HTMLCanvasElement!=="undefined"&&canvas instanceof HTMLCanvasElement;var isOffscreenCanvas=typeof OffscreenCanvas!=="undefined"&&canvas instanceof OffscreenCanvas;if(!isHTMLCanvas&&!isOffscreenCanvas){canvas=document.getElementById(idOrElement);if(!canvas){throw"Canvas with id "+idOrElement+" was not found"}}var ctx=this.GetWebGLContext(canvas,attrs);if(!ctx||ctx<0){throw"failed to create webgl context: err "+ctx}var grcontext=this.MakeGrContext(ctx);var surface=this.MakeOnScreenGLSurface(grcontext,canvas.width,canvas.height,colorSpace);if(!surface){Debug("falling back from GPU implementation to a SW based one");var newCanvas=canvas.cloneNode(true);var parent=canvas.parentNode;parent.replaceChild(newCanvas,canvas);newCanvas.classList.add("ck-replaced");return CanvasKit.MakeSWCanvasSurface(newCanvas)}surface._context=ctx;surface.grContext=grcontext;surface.openGLversion=canvas.GLctxObject.version;return surface};CanvasKit.MakeCanvasSurface=CanvasKit.MakeWebGLCanvasSurface})})(Module);(function(CanvasKit){CanvasKit.Color=function(r,g,b,a){if(a===undefined){a=1}return CanvasKit.Color4f(clamp(r)/255,clamp(g)/255,clamp(b)/255,a)};CanvasKit.ColorAsInt=function(r,g,b,a){if(a===undefined){a=255}return(clamp(a)<<24|clamp(r)<<16|clamp(g)<<8|clamp(b)<<0&268435455)>>>0};CanvasKit.Color4f=function(r,g,b,a){if(a===undefined){a=1}return Float32Array.of(r,g,b,a)};Object.defineProperty(CanvasKit,"TRANSPARENT",{get:function(){return CanvasKit.Color4f(0,0,0,0)}});Object.defineProperty(CanvasKit,"BLACK",{get:function(){return CanvasKit.Color4f(0,0,0,1)}});Object.defineProperty(CanvasKit,"WHITE",{get:function(){return CanvasKit.Color4f(1,1,1,1)}});Object.defineProperty(CanvasKit,"RED",{get:function(){return CanvasKit.Color4f(1,0,0,1)}});Object.defineProperty(CanvasKit,"GREEN",{get:function(){return CanvasKit.Color4f(0,1,0,1)}});Object.defineProperty(CanvasKit,"BLUE",{get:function(){return CanvasKit.Color4f(0,0,1,1)}});Object.defineProperty(CanvasKit,"YELLOW",{get:function(){return CanvasKit.Color4f(1,1,0,1)}});Object.defineProperty(CanvasKit,"CYAN",{get:function(){return CanvasKit.Color4f(0,1,1,1)}});Object.defineProperty(CanvasKit,"MAGENTA",{get:function(){return CanvasKit.Color4f(1,0,1,1)}});CanvasKit.getColorComponents=function(color){return[Math.floor(color[0]*255),Math.floor(color[1]*255),Math.floor(color[2]*255),color[3]]};CanvasKit.parseColorString=function(colorStr,colorMap){colorStr=colorStr.toLowerCase();if(colorStr.startsWith("#")){var r,g,b,a=255;switch(colorStr.length){case 9:a=parseInt(colorStr.slice(7,9),16);case 7:r=parseInt(colorStr.slice(1,3),16);g=parseInt(colorStr.slice(3,5),16);b=parseInt(colorStr.slice(5,7),16);break;case 5:a=parseInt(colorStr.slice(4,5),16)*17;case 4:r=parseInt(colorStr.slice(1,2),16)*17;g=parseInt(colorStr.slice(2,3),16)*17;b=parseInt(colorStr.slice(3,4),16)*17;break}return CanvasKit.Color(r,g,b,a/255)}else if(colorStr.startsWith("rgba")){colorStr=colorStr.slice(5,-1);var nums=colorStr.split(",");return CanvasKit.Color(+nums[0],+nums[1],+nums[2],valueOrPercent(nums[3]))}else if(colorStr.startsWith("rgb")){colorStr=colorStr.slice(4,-1);var nums=colorStr.split(",");return CanvasKit.Color(+nums[0],+nums[1],+nums[2],valueOrPercent(nums[3]))}else if(colorStr.startsWith("gray(")){}else if(colorStr.startsWith("hsl")){}else if(colorMap){var nc=colorMap[colorStr];if(nc!==undefined){return nc}}Debug("unrecognized color "+colorStr);return CanvasKit.BLACK};function isCanvasKitColor(ob){if(!ob){return false}return ob.constructor===Float32Array&&ob.length===4}function toUint32Color(c){return(clamp(c[3]*255)<<24|clamp(c[0]*255)<<16|clamp(c[1]*255)<<8|clamp(c[2]*255)<<0)>>>0}function assureIntColors(arr){if(arr instanceof Float32Array){var count=Math.floor(arr.length/4);var result=new Uint32Array(count);for(var i=0;i<count;i++){result[i]=toUint32Color(arr.slice(i*4,(i+1)*4))}return result}else if(arr instanceof Uint32Array){return arr}else if(arr instanceof Array&&arr[0]instanceof Float32Array){return arr.map(toUint32Color)}}function valueOrPercent(aStr){if(aStr===undefined){return 1}var a=parseFloat(aStr);if(aStr&&aStr.indexOf("%")!==-1){return a/100}return a}function clamp(c){return Math.round(Math.max(0,Math.min(c||0,255)))}CanvasKit.multiplyByAlpha=function(color,alpha){var result=color.slice();result[3]=Math.max(0,Math.min(result[3]*alpha,1));return result};CanvasKit.Malloc=function(typedArray,len){var byteLen=len*typedArray.BYTES_PER_ELEMENT;var ptr=CanvasKit._malloc(byteLen);return{"_ck":true,"length":len,"byteOffset":ptr,typedArray:null,"subarray":function(start,end){var sa=this["toTypedArray"]().subarray(start,end);sa["_ck"]=true;return sa},"toTypedArray":function(){if(this.typedArray&&this.typedArray.length){return this.typedArray}this.typedArray=new typedArray(CanvasKit.HEAPU8.buffer,ptr,len);this.typedArray["_ck"]=true;return this.typedArray}}};CanvasKit.Free=function(mallocObj){CanvasKit._free(mallocObj["byteOffset"]);mallocObj["byteOffset"]=nullptr;mallocObj["toTypedArray"]=null;mallocObj.typedArray=null};function freeArraysThatAreNotMallocedByUsers(ptr,arr){if(arr&&!arr["_ck"]){CanvasKit._free(ptr)}}var _scratch3x3MatrixPtr=nullptr;var _scratch3x3Matrix;var _scratch4x4MatrixPtr=nullptr;var _scratch4x4Matrix;var _scratchColorPtr=nullptr;var _scratchColor;var _scratchFourFloatsA;var _scratchFourFloatsAPtr=nullptr;var _scratchFourFloatsB;var _scratchFourFloatsBPtr=nullptr;var _scratchThreeFloatsA;var _scratchThreeFloatsAPtr=nullptr;var _scratchThreeFloatsB;var _scratchThreeFloatsBPtr=nullptr;var _scratchIRect;var _scratchIRectPtr=nullptr;var _scratchRRect;var _scratchRRectPtr=nullptr;var _scratchRRect2;var _scratchRRect2Ptr=nullptr;function copy1dArray(arr,dest,ptr){if(!arr||!arr.length){return nullptr}if(arr["_ck"]){return arr.byteOffset}var bytesPerElement=CanvasKit[dest].BYTES_PER_ELEMENT;if(!ptr){ptr=CanvasKit._malloc(arr.length*bytesPerElement)}CanvasKit[dest].set(arr,ptr/bytesPerElement);return ptr}function copyFlexibleColorArray(colors){var result={colorPtr:nullptr,count:colors.length,colorType:CanvasKit.ColorType.RGBA_F32};if(colors instanceof Float32Array){result.colorPtr=copy1dArray(colors,"HEAPF32");result.count=colors.length/4}else if(colors instanceof Uint32Array){result.colorPtr=copy1dArray(colors,"HEAPU32");result.colorType=CanvasKit.ColorType.RGBA_8888}else if(colors instanceof Array){result.colorPtr=copyColorArray(colors)}else{throw"Invalid argument to copyFlexibleColorArray, Not a color array "+typeof colors}return result}function copyColorArray(arr){if(!arr||!arr.length){return nullptr}var ptr=CanvasKit._malloc(arr.length*4*4);var idx=0;var adjustedPtr=ptr/4;for(var r=0;r<arr.length;r++){for(var c=0;c<4;c++){CanvasKit.HEAPF32[adjustedPtr+idx]=arr[r][c];idx++}}return ptr}var defaultPerspective=Float32Array.of(0,0,1);function copy3x3MatrixToWasm(matr){if(!matr){return nullptr}if(matr.length){if(matr.length===6||matr.length===9){copy1dArray(matr,"HEAPF32",_scratch3x3MatrixPtr);if(matr.length===6){CanvasKit.HEAPF32.set(defaultPerspective,6+_scratch3x3MatrixPtr/4)}return _scratch3x3MatrixPtr}else if(matr.length===16){var wasm3x3Matrix=_scratch3x3Matrix["toTypedArray"]();wasm3x3Matrix[0]=matr[0];wasm3x3Matrix[1]=matr[1];wasm3x3Matrix[2]=matr[3];wasm3x3Matrix[3]=matr[4];wasm3x3Matrix[4]=matr[5];wasm3x3Matrix[5]=matr[7];wasm3x3Matrix[6]=matr[12];wasm3x3Matrix[7]=matr[13];wasm3x3Matrix[8]=matr[15];return _scratch3x3MatrixPtr}throw"invalid matrix size"}var wasm3x3Matrix=_scratch3x3Matrix["toTypedArray"]();wasm3x3Matrix[0]=matr.m11;wasm3x3Matrix[1]=matr.m21;wasm3x3Matrix[2]=matr.m41;wasm3x3Matrix[3]=matr.m12;wasm3x3Matrix[4]=matr.m22;wasm3x3Matrix[5]=matr.m42;wasm3x3Matrix[6]=matr.m14;wasm3x3Matrix[7]=matr.m24;wasm3x3Matrix[8]=matr.m44;return _scratch3x3MatrixPtr}function copy4x4MatrixToWasm(matr){if(!matr){return nullptr}var wasm4x4Matrix=_scratch4x4Matrix["toTypedArray"]();if(matr.length){if(matr.length!==16&&matr.length!==6&&matr.length!==9){throw"invalid matrix size"}if(matr.length===16){return copy1dArray(matr,"HEAPF32",_scratch4x4MatrixPtr)}wasm4x4Matrix.fill(0);wasm4x4Matrix[0]=matr[0];wasm4x4Matrix[1]=matr[1];wasm4x4Matrix[3]=matr[2];wasm4x4Matrix[4]=matr[3];wasm4x4Matrix[5]=matr[4];wasm4x4Matrix[7]=matr[5];wasm4x4Matrix[12]=matr[6];wasm4x4Matrix[13]=matr[7];wasm4x4Matrix[15]=matr[8];if(matr.length===6){wasm4x4Matrix[12]=0;wasm4x4Matrix[13]=0;wasm4x4Matrix[15]=1}return _scratch4x4MatrixPtr}wasm4x4Matrix[0]=matr.m11;wasm4x4Matrix[1]=matr.m21;wasm4x4Matrix[2]=matr.m31;wasm4x4Matrix[3]=matr.m41;wasm4x4Matrix[4]=matr.m12;wasm4x4Matrix[5]=matr.m22;wasm4x4Matrix[6]=matr.m32;wasm4x4Matrix[7]=matr.m42;wasm4x4Matrix[8]=matr.m13;wasm4x4Matrix[9]=matr.m23;wasm4x4Matrix[10]=matr.m33;wasm4x4Matrix[11]=matr.m43;wasm4x4Matrix[12]=matr.m14;wasm4x4Matrix[13]=matr.m24;wasm4x4Matrix[14]=matr.m34;wasm4x4Matrix[15]=matr.m44;return _scratch4x4MatrixPtr}function copy4x4MatrixFromWasm(matrPtr){var rv=new Array(16);for(var i=0;i<16;i++){rv[i]=CanvasKit.HEAPF32[matrPtr/4+i]}return rv}function copyColorToWasm(color4f,ptr){return copy1dArray(color4f,"HEAPF32",ptr||_scratchColorPtr)}function copyColorComponentsToWasm(r,g,b,a){var colors=_scratchColor["toTypedArray"]();colors[0]=r;colors[1]=g;colors[2]=b;colors[3]=a;return _scratchColorPtr}function copyColorToWasmNoScratch(color4f){return copy1dArray(color4f,"HEAPF32")}function copyColorFromWasm(colorPtr){var rv=new Float32Array(4);for(var i=0;i<4;i++){rv[i]=CanvasKit.HEAPF32[colorPtr/4+i]}return rv}function copyRectToWasm(fourFloats,ptr){return copy1dArray(fourFloats,"HEAPF32",ptr||_scratchFourFloatsAPtr)}function copyIRectToWasm(fourInts,ptr){return copy1dArray(fourInts,"HEAP32",ptr||_scratchIRectPtr)}function copyRRectToWasm(twelveFloats,ptr){return copy1dArray(twelveFloats,"HEAPF32",ptr||_scratchRRectPtr)}var Float32ArrayCache={};function loadCmdsTypedArray(arr){var len=0;for(var r=0;r<arr.length;r++){len+=arr[r].length}var ta;if(Float32ArrayCache[len]){ta=Float32ArrayCache[len]}else{ta=new Float32Array(len);Float32ArrayCache[len]=ta}var i=0;for(var r=0;r<arr.length;r++){for(var c=0;c<arr[r].length;c++){var item=arr[r][c];ta[i]=item;i++}}var ptr=copy1dArray(ta,"HEAPF32");return[ptr,len]}CanvasKit.FourFloatArrayHelper=function(){this._floats=[];this._ptr=null;Object.defineProperty(this,"length",{enumerable:true,get:function(){return this._floats.length/4}})};CanvasKit.FourFloatArrayHelper.prototype.push=function(f1,f2,f3,f4){if(this._ptr){Debug("Cannot push more points - already built");return}this._floats.push(f1,f2,f3,f4)};CanvasKit.FourFloatArrayHelper.prototype.set=function(idx,f1,f2,f3,f4){if(idx<0||idx>=this._floats.length/4){Debug("Cannot set index "+idx+", it is out of range",this._floats.length/4);return}idx*=4;var BYTES_PER_ELEMENT=4;if(this._ptr){var floatPtr=this._ptr/BYTES_PER_ELEMENT+idx;CanvasKit.HEAPF32[floatPtr]=f1;CanvasKit.HEAPF32[floatPtr+1]=f2;CanvasKit.HEAPF32[floatPtr+2]=f3;CanvasKit.HEAPF32[floatPtr+3]=f4;return}this._floats[idx]=f1;this._floats[idx+1]=f2;this._floats[idx+2]=f3;this._floats[idx+3]=f4};CanvasKit.FourFloatArrayHelper.prototype.build=function(){if(this._ptr){return this._ptr}this._ptr=copy1dArray(this._floats,"HEAPF32");return this._ptr};CanvasKit.FourFloatArrayHelper.prototype.delete=function(){if(this._ptr){CanvasKit._free(this._ptr);this._ptr=null}};CanvasKit.OneUIntArrayHelper=function(){this._uints=[];this._ptr=null;Object.defineProperty(this,"length",{enumerable:true,get:function(){return this._uints.length}})};CanvasKit.OneUIntArrayHelper.prototype.push=function(u){if(this._ptr){Debug("Cannot push more points - already built");return}this._uints.push(u)};CanvasKit.OneUIntArrayHelper.prototype.set=function(idx,u){if(idx<0||idx>=this._uints.length){Debug("Cannot set index "+idx+", it is out of range",this._uints.length);return}idx*=4;var BYTES_PER_ELEMENT=4;if(this._ptr){var uintPtr=this._ptr/BYTES_PER_ELEMENT+idx;CanvasKit.HEAPU32[uintPtr]=u;return}this._uints[idx]=u};CanvasKit.OneUIntArrayHelper.prototype.build=function(){if(this._ptr){return this._ptr}this._ptr=copy1dArray(this._uints,"HEAPU32");return this._ptr};CanvasKit.OneUIntArrayHelper.prototype.delete=function(){if(this._ptr){CanvasKit._free(this._ptr);this._ptr=null}};CanvasKit.RectBuilder=CanvasKit.FourFloatArrayHelper;CanvasKit.RSXFormBuilder=CanvasKit.FourFloatArrayHelper;CanvasKit.ColorBuilder=CanvasKit.OneUIntArrayHelper;var nullptr=0;function radiansToDegrees(rad){return rad/Math.PI*180}var isNode=!new Function("try {return this===window;}catch(e){ return false;}")();function almostEqual(floata,floatb){return Math.abs(floata-floatb)<1e-5}function saveBytesToFile(bytes,fileName){if(!isNode){var blob=new Blob([bytes],{type:"application/octet-stream"});url=window.URL.createObjectURL(blob);var a=document.createElement("a");document.body.appendChild(a);a.href=url;a.download=fileName;a.click();setTimeout(function(){URL.revokeObjectURL(url);a.remove()},50)}else{var fs=require("fs");fs.writeFile(fileName,new Buffer(bytes),function(err){if(err)throw err})}}CanvasKit.onRuntimeInitialized=function(){_scratchColor=CanvasKit.Malloc(Float32Array,4);_scratchColorPtr=_scratchColor["byteOffset"];_scratch4x4Matrix=CanvasKit.Malloc(Float32Array,16);_scratch4x4MatrixPtr=_scratch4x4Matrix["byteOffset"];_scratch3x3Matrix=CanvasKit.Malloc(Float32Array,9);_scratch3x3MatrixPtr=_scratch3x3Matrix["byteOffset"];_scratchRRect=CanvasKit.Malloc(Float32Array,12);_scratchRRectPtr=_scratchRRect["byteOffset"];_scratchRRect2=CanvasKit.Malloc(Float32Array,12);_scratchRRect2Ptr=_scratchRRect2["byteOffset"];_scratchFourFloatsA=CanvasKit.Malloc(Float32Array,4);_scratchFourFloatsAPtr=_scratchFourFloatsA["byteOffset"];_scratchFourFloatsB=CanvasKit.Malloc(Float32Array,4);_scratchFourFloatsBPtr=_scratchFourFloatsB["byteOffset"];_scratchThreeFloatsA=CanvasKit.Malloc(Float32Array,3);_scratchThreeFloatsAPtr=_scratchThreeFloatsA["byteOffset"];_scratchThreeFloatsB=CanvasKit.Malloc(Float32Array,3);_scratchThreeFloatsBPtr=_scratchThreeFloatsB["byteOffset"];_scratchIRect=CanvasKit.Malloc(Int32Array,4);_scratchIRectPtr=_scratchIRect["byteOffset"];CanvasKit.ColorSpace.SRGB=CanvasKit.ColorSpace._MakeSRGB();CanvasKit.ColorSpace.DISPLAY_P3=CanvasKit.ColorSpace._MakeDisplayP3();CanvasKit.ColorSpace.ADOBE_RGB=CanvasKit.ColorSpace._MakeAdobeRGB();CanvasKit.Path.MakeFromCmds=function(cmds){var ptrLen=loadCmdsTypedArray(cmds);var path=CanvasKit.Path._MakeFromCmds(ptrLen[0],ptrLen[1]);CanvasKit._free(ptrLen[0]);return path};CanvasKit.Path.MakeFromVerbsPointsWeights=function(verbs,pts,weights){var verbsPtr=copy1dArray(verbs,"HEAPU8");var pointsPtr=copy1dArray(pts,"HEAPF32");var weightsPtr=copy1dArray(weights,"HEAPF32");var numWeights=weights&&weights.length||0;var path=CanvasKit.Path._MakeFromVerbsPointsWeights(verbsPtr,verbs.length,pointsPtr,pts.length,weightsPtr,numWeights);freeArraysThatAreNotMallocedByUsers(verbsPtr,verbs);freeArraysThatAreNotMallocedByUsers(pointsPtr,pts);freeArraysThatAreNotMallocedByUsers(weightsPtr,weights);return path};CanvasKit.Path.prototype.addArc=function(oval,startAngle,sweepAngle){var oPtr=copyRectToWasm(oval);this._addArc(oPtr,startAngle,sweepAngle);return this};CanvasKit.Path.prototype.addOval=function(oval,isCCW,startIndex){if(startIndex===undefined){startIndex=1}var oPtr=copyRectToWasm(oval);this._addOval(oPtr,!!isCCW,startIndex);return this};CanvasKit.Path.prototype.addPath=function(){var args=Array.prototype.slice.call(arguments);var path=args[0];var extend=false;if(typeof args[args.length-1]==="boolean"){extend=args.pop()}if(args.length===1){this._addPath(path,1,0,0,0,1,0,0,0,1,extend)}else if(args.length===2){var a=args[1];this._addPath(path,a[0],a[1],a[2],a[3],a[4],a[5],a[6]||0,a[7]||0,a[8]||1,extend)}else if(args.length===7||args.length===10){var a=args;this._addPath(path,a[1],a[2],a[3],a[4],a[5],a[6],a[7]||0,a[8]||0,a[9]||1,extend)}else{Debug("addPath expected to take 1, 2, 7, or 10 required args. Got "+args.length);return null}return this};CanvasKit.Path.prototype.addPoly=function(points,close){var ptr=copy1dArray(points,"HEAPF32");this._addPoly(ptr,points.length/2,close);freeArraysThatAreNotMallocedByUsers(ptr,points);return this};CanvasKit.Path.prototype.addRect=function(rect,isCCW){var rPtr=copyRectToWasm(rect);this._addRect(rPtr,!!isCCW);return this};CanvasKit.Path.prototype.addRRect=function(rrect,isCCW){var rPtr=copyRRectToWasm(rrect);this._addRRect(rPtr,!!isCCW);return this};CanvasKit.Path.prototype.addVerbsPointsWeights=function(verbs,points,weights){var verbsPtr=copy1dArray(verbs,"HEAPU8");var pointsPtr=copy1dArray(points,"HEAPF32");var weightsPtr=copy1dArray(weights,"HEAPF32");var numWeights=weights&&weights.length||0;this._addVerbsPointsWeights(verbsPtr,verbs.length,pointsPtr,points.length,weightsPtr,numWeights);freeArraysThatAreNotMallocedByUsers(verbsPtr,verbs);freeArraysThatAreNotMallocedByUsers(pointsPtr,points);freeArraysThatAreNotMallocedByUsers(weightsPtr,weights)};CanvasKit.Path.prototype.arc=function(x,y,radius,startAngle,endAngle,ccw){var bounds=CanvasKit.LTRBRect(x-radius,y-radius,x+radius,y+radius);var sweep=radiansToDegrees(endAngle-startAngle)-360*!!ccw;var temp=new CanvasKit.Path;temp.addArc(bounds,radiansToDegrees(startAngle),sweep);this.addPath(temp,true);temp.delete();return this};CanvasKit.Path.prototype.arcToOval=function(oval,startAngle,sweepAngle,forceMoveTo){var oPtr=copyRectToWasm(oval);this._arcToOval(oPtr,startAngle,sweepAngle,forceMoveTo);return this};CanvasKit.Path.prototype.arcToRotated=function(rx,ry,xAxisRotate,useSmallArc,isCCW,x,y){this._arcToRotated(rx,ry,xAxisRotate,!!useSmallArc,!!isCCW,x,y);return this};CanvasKit.Path.prototype.arcToTangent=function(x1,y1,x2,y2,radius){this._arcToTangent(x1,y1,x2,y2,radius);return this};CanvasKit.Path.prototype.close=function(){this._close();return this};CanvasKit.Path.prototype.conicTo=function(x1,y1,x2,y2,w){this._conicTo(x1,y1,x2,y2,w);return this};CanvasKit.Path.prototype.computeTightBounds=function(optionalOutputArray){this._computeTightBounds(_scratchFourFloatsAPtr);var ta=_scratchFourFloatsA["toTypedArray"]();if(optionalOutputArray){optionalOutputArray.set(ta);return optionalOutputArray}return ta.slice()};CanvasKit.Path.prototype.cubicTo=function(cp1x,cp1y,cp2x,cp2y,x,y){this._cubicTo(cp1x,cp1y,cp2x,cp2y,x,y);return this};CanvasKit.Path.prototype.dash=function(on,off,phase){if(this._dash(on,off,phase)){return this}return null};CanvasKit.Path.prototype.getBounds=function(optionalOutputArray){this._getBounds(_scratchFourFloatsAPtr);var ta=_scratchFourFloatsA["toTypedArray"]();if(optionalOutputArray){optionalOutputArray.set(ta);return optionalOutputArray}return ta.slice()};CanvasKit.Path.prototype.lineTo=function(x,y){this._lineTo(x,y);return this};CanvasKit.Path.prototype.moveTo=function(x,y){this._moveTo(x,y);return this};CanvasKit.Path.prototype.offset=function(dx,dy){this._transform(1,0,dx,0,1,dy,0,0,1);return this};CanvasKit.Path.prototype.quadTo=function(cpx,cpy,x,y){this._quadTo(cpx,cpy,x,y);return this};CanvasKit.Path.prototype.rArcTo=function(rx,ry,xAxisRotate,useSmallArc,isCCW,dx,dy){this._rArcTo(rx,ry,xAxisRotate,useSmallArc,isCCW,dx,dy);return this};CanvasKit.Path.prototype.rConicTo=function(dx1,dy1,dx2,dy2,w){this._rConicTo(dx1,dy1,dx2,dy2,w);return this};CanvasKit.Path.prototype.rCubicTo=function(cp1x,cp1y,cp2x,cp2y,x,y){this._rCubicTo(cp1x,cp1y,cp2x,cp2y,x,y);return this};CanvasKit.Path.prototype.rLineTo=function(dx,dy){this._rLineTo(dx,dy);return this};CanvasKit.Path.prototype.rMoveTo=function(dx,dy){this._rMoveTo(dx,dy);return this};CanvasKit.Path.prototype.rQuadTo=function(cpx,cpy,x,y){this._rQuadTo(cpx,cpy,x,y);return this};CanvasKit.Path.prototype.stroke=function(opts){opts=opts||{};opts["width"]=opts["width"]||1;opts["miter_limit"]=opts["miter_limit"]||4;opts["cap"]=opts["cap"]||CanvasKit.StrokeCap.Butt;opts["join"]=opts["join"]||CanvasKit.StrokeJoin.Miter;opts["precision"]=opts["precision"]||1;if(this._stroke(opts)){return this}return null};CanvasKit.Path.prototype.transform=function(){if(arguments.length===1){var a=arguments[0];this._transform(a[0],a[1],a[2],a[3],a[4],a[5],a[6]||0,a[7]||0,a[8]||1)}else if(arguments.length===6||arguments.length===9){var a=arguments;this._transform(a[0],a[1],a[2],a[3],a[4],a[5],a[6]||0,a[7]||0,a[8]||1)}else{throw"transform expected to take 1 or 9 arguments. Got "+arguments.length}return this};CanvasKit.Path.prototype.trim=function(startT,stopT,isComplement){if(this._trim(startT,stopT,!!isComplement)){return this}return null};CanvasKit.Image.prototype.makeShaderCubic=function(xTileMode,yTileMode,cubicResamplerB,cubicResamplerC,localMatrix){var localMatrixPtr=copy3x3MatrixToWasm(localMatrix);return this._makeShaderCubic(xTileMode,yTileMode,cubicResamplerB,cubicResamplerC,localMatrixPtr)};CanvasKit.Image.prototype.makeShaderOptions=function(xTileMode,yTileMode,filterMode,mipmapMode,localMatrix){var localMatrixPtr=copy3x3MatrixToWasm(localMatrix);return this._makeShaderOptions(xTileMode,yTileMode,filterMode,mipmapMode,localMatrixPtr)};function readPixels(source,srcX,srcY,imageInfo,destMallocObj,bytesPerRow){if(!bytesPerRow){bytesPerRow=4*imageInfo["width"];if(imageInfo["colorType"]===CanvasKit.ColorType.RGBA_F16){bytesPerRow*=2}else if(imageInfo["colorType"]===CanvasKit.ColorType.RGBA_F32){bytesPerRow*=4}}var pBytes=bytesPerRow*imageInfo.height;var pPtr;if(destMallocObj){pPtr=destMallocObj["byteOffset"]}else{pPtr=CanvasKit._malloc(pBytes)}if(!source._readPixels(imageInfo,pPtr,bytesPerRow,srcX,srcY)){Debug("Could not read pixels with the given inputs");if(!destMallocObj){CanvasKit._free(pPtr)}return null}if(destMallocObj){return destMallocObj["toTypedArray"]()}var retVal=null;switch(imageInfo["colorType"]){case CanvasKit.ColorType.RGBA_8888:case CanvasKit.ColorType.RGBA_F16:retVal=new Uint8Array(CanvasKit.HEAPU8.buffer,pPtr,pBytes).slice();break;case CanvasKit.ColorType.RGBA_F32:retVal=new Float32Array(CanvasKit.HEAPU8.buffer,pPtr,pBytes).slice();break;default:Debug("ColorType not yet supported");return null}CanvasKit._free(pPtr);return retVal}CanvasKit.Image.prototype.readPixels=function(srcX,srcY,imageInfo,destMallocObj,bytesPerRow){return readPixels(this,srcX,srcY,imageInfo,destMallocObj,bytesPerRow)};CanvasKit.Canvas.prototype.clear=function(color4f){var cPtr=copyColorToWasm(color4f);this._clear(cPtr)};CanvasKit.Canvas.prototype.clipRRect=function(rrect,op,antialias){var rPtr=copyRRectToWasm(rrect);this._clipRRect(rPtr,op,antialias)};CanvasKit.Canvas.prototype.clipRect=function(rect,op,antialias){var rPtr=copyRectToWasm(rect);this._clipRect(rPtr,op,antialias)};CanvasKit.Canvas.prototype.concat=function(matr){var matrPtr=copy4x4MatrixToWasm(matr);this._concat(matrPtr)};CanvasKit.Canvas.prototype.drawArc=function(oval,startAngle,sweepAngle,useCenter,paint){var oPtr=copyRectToWasm(oval);this._drawArc(oPtr,startAngle,sweepAngle,useCenter,paint)};CanvasKit.Canvas.prototype.drawAtlas=function(atlas,srcRects,dstXforms,paint,blendMode,colors){if(!atlas||!paint||!srcRects||!dstXforms){Debug("Doing nothing since missing a required input");return}if(srcRects.length!==dstXforms.length){Debug("Doing nothing since input arrays length mismatches");return}if(!blendMode){blendMode=CanvasKit.BlendMode.SrcOver}var srcRectPtr;if(srcRects.build){srcRectPtr=srcRects.build()}else{srcRectPtr=copy1dArray(srcRects,"HEAPF32")}var count=1;var dstXformPtr;if(dstXforms.build){dstXformPtr=dstXforms.build();count=dstXforms.length}else{dstXformPtr=copy1dArray(dstXforms,"HEAPF32");count=dstXforms.length/4}var colorPtr=nullptr;if(colors){if(colors.build){colorPtr=colors.build()}else{colorPtr=copy1dArray(assureIntColors(colors),"HEAPU32")}}this._drawAtlas(atlas,dstXformPtr,srcRectPtr,colorPtr,count,blendMode,paint);if(srcRectPtr&&!srcRects.build){freeArraysThatAreNotMallocedByUsers(srcRectPtr,srcRects)}if(dstXformPtr&&!dstXforms.build){freeArraysThatAreNotMallocedByUsers(dstXformPtr,dstXforms)}if(colorPtr&&!colors.build){freeArraysThatAreNotMallocedByUsers(colorPtr,colors)}};CanvasKit.Canvas.prototype.drawColor=function(color4f,mode){var cPtr=copyColorToWasm(color4f);if(mode!==undefined){this._drawColor(cPtr,mode)}else{this._drawColor(cPtr)}};CanvasKit.Canvas.prototype.drawColorComponents=function(r,g,b,a,mode){var cPtr=copyColorComponentsToWasm(r,g,b,a);if(mode!==undefined){this._drawColor(cPtr,mode)}else{this._drawColor(cPtr)}};CanvasKit.Canvas.prototype.drawDRRect=function(outer,inner,paint){var oPtr=copyRRectToWasm(outer,_scratchRRectPtr);var iPtr=copyRRectToWasm(inner,_scratchRRect2Ptr);this._drawDRRect(oPtr,iPtr,paint)};CanvasKit.Canvas.prototype.drawImageNine=function(img,center,dest,filter,paint){var cPtr=copyIRectToWasm(center);var dPtr=copyRectToWasm(dest);this._drawImageNine(img,cPtr,dPtr,filter,paint||null)};CanvasKit.Canvas.prototype.drawImageRect=function(img,src,dest,paint,fastSample){copyRectToWasm(src,_scratchFourFloatsAPtr);copyRectToWasm(dest,_scratchFourFloatsBPtr);this._drawImageRect(img,_scratchFourFloatsAPtr,_scratchFourFloatsBPtr,paint,!!fastSample)};CanvasKit.Canvas.prototype.drawImageRectCubic=function(img,src,dest,B,C,paint){copyRectToWasm(src,_scratchFourFloatsAPtr);copyRectToWasm(dest,_scratchFourFloatsBPtr);this._drawImageRectCubic(img,_scratchFourFloatsAPtr,_scratchFourFloatsBPtr,B,C,paint||null)};CanvasKit.Canvas.prototype.drawImageRectOptions=function(img,src,dest,filter,mipmap,paint){copyRectToWasm(src,_scratchFourFloatsAPtr);copyRectToWasm(dest,_scratchFourFloatsBPtr);this._drawImageRectOptions(img,_scratchFourFloatsAPtr,_scratchFourFloatsBPtr,filter,mipmap,paint||null)};CanvasKit.Canvas.prototype.drawOval=function(oval,paint){var oPtr=copyRectToWasm(oval);this._drawOval(oPtr,paint)};CanvasKit.Canvas.prototype.drawPoints=function(mode,points,paint){var ptr=copy1dArray(points,"HEAPF32");this._drawPoints(mode,ptr,points.length/2,paint);freeArraysThatAreNotMallocedByUsers(ptr,points)};CanvasKit.Canvas.prototype.drawRRect=function(rrect,paint){var rPtr=copyRRectToWasm(rrect);this._drawRRect(rPtr,paint)};CanvasKit.Canvas.prototype.drawRect=function(rect,paint){var rPtr=copyRectToWasm(rect);this._drawRect(rPtr,paint)};CanvasKit.Canvas.prototype.drawShadow=function(path,zPlaneParams,lightPos,lightRadius,ambientColor,spotColor,flags){var ambiPtr=copyColorToWasmNoScratch(ambientColor);var spotPtr=copyColorToWasmNoScratch(spotColor);var zPlanePtr=copy1dArray(zPlaneParams,"HEAPF32",_scratchThreeFloatsAPtr);var lightPosPtr=copy1dArray(lightPos,"HEAPF32",_scratchThreeFloatsBPtr);this._drawShadow(path,zPlanePtr,lightPosPtr,lightRadius,ambiPtr,spotPtr,flags);freeArraysThatAreNotMallocedByUsers(ambiPtr,ambientColor);freeArraysThatAreNotMallocedByUsers(spotPtr,spotColor)};CanvasKit.getShadowLocalBounds=function(ctm,path,zPlaneParams,lightPos,lightRadius,flags,optOutputRect){var ctmPtr=copy3x3MatrixToWasm(ctm);var zPlanePtr=copy1dArray(zPlaneParams,"HEAPF32",_scratchThreeFloatsAPtr);var lightPosPtr=copy1dArray(lightPos,"HEAPF32",_scratchThreeFloatsBPtr);var ok=this._getShadowLocalBounds(ctmPtr,path,zPlanePtr,lightPosPtr,lightRadius,flags,_scratchFourFloatsAPtr);if(!ok){return null}var ta=_scratchFourFloatsA["toTypedArray"]();if(optOutputRect){optOutputRect.set(ta);return optOutputRect}return ta.slice()};CanvasKit.Canvas.prototype.getLocalToDevice=function(){this._getLocalToDevice(_scratch4x4MatrixPtr);return copy4x4MatrixFromWasm(_scratch4x4MatrixPtr)};CanvasKit.Canvas.prototype.findMarkedCTM=function(marker){var found=this._findMarkedCTM(marker,_scratch4x4MatrixPtr);if(!found){return null}return copy4x4MatrixFromWasm(_scratch4x4MatrixPtr)};CanvasKit.Canvas.prototype.getTotalMatrix=function(){this._getTotalMatrix(_scratch3x3MatrixPtr);var rv=new Array(9);for(var i=0;i<9;i++){rv[i]=CanvasKit.HEAPF32[_scratch3x3MatrixPtr/4+i]}return rv};CanvasKit.Canvas.prototype.readPixels=function(srcX,srcY,imageInfo,destMallocObj,bytesPerRow){return readPixels(this,srcX,srcY,imageInfo,destMallocObj,bytesPerRow)};CanvasKit.Canvas.prototype.saveLayer=function(paint,boundsRect,backdrop,flags){var bPtr=copyRectToWasm(boundsRect);return this._saveLayer(paint||null,bPtr,backdrop||null,flags||0)};CanvasKit.Canvas.prototype.writePixels=function(pixels,srcWidth,srcHeight,destX,destY,alphaType,colorType,colorSpace){if(pixels.byteLength%(srcWidth*srcHeight)){throw"pixels length must be a multiple of the srcWidth * srcHeight"}var bytesPerPixel=pixels.byteLength/(srcWidth*srcHeight);alphaType=alphaType||CanvasKit.AlphaType.Unpremul;colorType=colorType||CanvasKit.ColorType.RGBA_8888;colorSpace=colorSpace||CanvasKit.ColorSpace.SRGB;var srcRowBytes=bytesPerPixel*srcWidth;var pptr=copy1dArray(pixels,"HEAPU8");var ok=this._writePixels({"width":srcWidth,"height":srcHeight,"colorType":colorType,"alphaType":alphaType,"colorSpace":colorSpace},pptr,srcRowBytes,destX,destY);freeArraysThatAreNotMallocedByUsers(pptr,pixels);return ok};CanvasKit.ColorFilter.MakeBlend=function(color4f,mode){var cPtr=copyColorToWasm(color4f);return CanvasKit.ColorFilter._MakeBlend(cPtr,mode)};CanvasKit.ColorFilter.MakeMatrix=function(colorMatrix){if(!colorMatrix||colorMatrix.length!==20){throw"invalid color matrix"}var fptr=copy1dArray(colorMatrix,"HEAPF32");var m=CanvasKit.ColorFilter._makeMatrix(fptr);freeArraysThatAreNotMallocedByUsers(fptr,colorMatrix);return m};CanvasKit.ContourMeasure.prototype.getPosTan=function(distance,optionalOutput){this._getPosTan(distance,_scratchFourFloatsAPtr);var ta=_scratchFourFloatsA["toTypedArray"]();if(optionalOutput){optionalOutput.set(ta);return optionalOutput}return ta.slice()};CanvasKit.ImageFilter.MakeMatrixTransform=function(matr,filterQuality,input){var matrPtr=copy3x3MatrixToWasm(matr);return CanvasKit.ImageFilter._MakeMatrixTransform(matrPtr,filterQuality,input)};CanvasKit.Paint.prototype.getColor=function(){this._getColor(_scratchColorPtr);return copyColorFromWasm(_scratchColorPtr)};CanvasKit.Paint.prototype.setColor=function(color4f,colorSpace){colorSpace=colorSpace||null;var cPtr=copyColorToWasm(color4f);this._setColor(cPtr,colorSpace)};CanvasKit.Paint.prototype.setColorComponents=function(r,g,b,a,colorSpace){colorSpace=colorSpace||null;var cPtr=copyColorComponentsToWasm(r,g,b,a);this._setColor(cPtr,colorSpace)};CanvasKit.Path.prototype.getPoint=function(idx,optionalOutput){this._getPoint(idx,_scratchFourFloatsAPtr);var ta=_scratchFourFloatsA["toTypedArray"]();if(optionalOutput){optionalOutput[0]=ta[0];optionalOutput[1]=ta[1];return optionalOutput}return ta.slice(0,2)};CanvasKit.PictureRecorder.prototype.beginRecording=function(bounds){var bPtr=copyRectToWasm(bounds);return this._beginRecording(bPtr)};CanvasKit.Surface.prototype.makeImageSnapshot=function(optionalBoundsRect){var bPtr=copyIRectToWasm(optionalBoundsRect);return this._makeImageSnapshot(bPtr)};CanvasKit.Surface.prototype.requestAnimationFrame=function(callback,dirtyRect){if(!this._cached_canvas){this._cached_canvas=this.getCanvas()}requestAnimationFrame(function(){if(this._context!==undefined){CanvasKit.setCurrentContext(this._context)}callback(this._cached_canvas);this.flush(dirtyRect)}.bind(this))};CanvasKit.Surface.prototype.drawOnce=function(callback,dirtyRect){if(!this._cached_canvas){this._cached_canvas=this.getCanvas()}requestAnimationFrame(function(){if(this._context!==undefined){CanvasKit.setCurrentContext(this._context)}callback(this._cached_canvas);this.flush(dirtyRect);this.dispose()}.bind(this))};CanvasKit.PathEffect.MakeDash=function(intervals,phase){if(!phase){phase=0}if(!intervals.length||intervals.length%2===1){throw"Intervals array must have even length"}var ptr=copy1dArray(intervals,"HEAPF32");var dpe=CanvasKit.PathEffect._MakeDash(ptr,intervals.length,phase);freeArraysThatAreNotMallocedByUsers(ptr,intervals);return dpe};CanvasKit.Shader.MakeColor=function(color4f,colorSpace){colorSpace=colorSpace||null;var cPtr=copyColorToWasm(color4f);return CanvasKit.Shader._MakeColor(cPtr,colorSpace)};CanvasKit.Shader.Blend=CanvasKit.Shader.MakeBlend;CanvasKit.Shader.Color=CanvasKit.Shader.MakeColor;CanvasKit.Shader.Lerp=CanvasKit.Shader.MakeLerp;CanvasKit.Shader.MakeLinearGradient=function(start,end,colors,pos,mode,localMatrix,flags,colorSpace){colorSpace=colorSpace||null;var cPtrInfo=copyFlexibleColorArray(colors);var posPtr=copy1dArray(pos,"HEAPF32");flags=flags||0;var localMatrixPtr=copy3x3MatrixToWasm(localMatrix);var startEndPts=_scratchFourFloatsA["toTypedArray"]();startEndPts.set(start);startEndPts.set(end,2);var lgs=CanvasKit.Shader._MakeLinearGradient(_scratchFourFloatsAPtr,cPtrInfo.colorPtr,cPtrInfo.colorType,posPtr,cPtrInfo.count,mode,flags,localMatrixPtr,colorSpace);freeArraysThatAreNotMallocedByUsers(cPtrInfo.colorPtr,colors);pos&&freeArraysThatAreNotMallocedByUsers(posPtr,pos);return lgs};CanvasKit.Shader.MakeRadialGradient=function(center,radius,colors,pos,mode,localMatrix,flags,colorSpace){colorSpace=colorSpace||null;var cPtrInfo=copyFlexibleColorArray(colors);var posPtr=copy1dArray(pos,"HEAPF32");flags=flags||0;var localMatrixPtr=copy3x3MatrixToWasm(localMatrix);var rgs=CanvasKit.Shader._MakeRadialGradient(center[0],center[1],radius,cPtrInfo.colorPtr,cPtrInfo.colorType,posPtr,cPtrInfo.count,mode,flags,localMatrixPtr,colorSpace);freeArraysThatAreNotMallocedByUsers(cPtrInfo.colorPtr,colors);pos&&freeArraysThatAreNotMallocedByUsers(posPtr,pos);return rgs};CanvasKit.Shader.MakeSweepGradient=function(cx,cy,colors,pos,mode,localMatrix,flags,startAngle,endAngle,colorSpace){colorSpace=colorSpace||null;var cPtrInfo=copyFlexibleColorArray(colors);var posPtr=copy1dArray(pos,"HEAPF32");flags=flags||0;startAngle=startAngle||0;endAngle=endAngle||360;var localMatrixPtr=copy3x3MatrixToWasm(localMatrix);var sgs=CanvasKit.Shader._MakeSweepGradient(cx,cy,cPtrInfo.colorPtr,cPtrInfo.colorType,posPtr,cPtrInfo.count,mode,startAngle,endAngle,flags,localMatrixPtr,colorSpace);freeArraysThatAreNotMallocedByUsers(cPtrInfo.colorPtr,colors);pos&&freeArraysThatAreNotMallocedByUsers(posPtr,pos);return sgs};CanvasKit.Shader.MakeTwoPointConicalGradient=function(start,startRadius,end,endRadius,colors,pos,mode,localMatrix,flags,colorSpace){colorSpace=colorSpace||null;var cPtrInfo=copyFlexibleColorArray(colors);var posPtr=copy1dArray(pos,"HEAPF32");flags=flags||0;var localMatrixPtr=copy3x3MatrixToWasm(localMatrix);var startEndPts=_scratchFourFloatsA["toTypedArray"]();startEndPts.set(start);startEndPts.set(end,2);var rgs=CanvasKit.Shader._MakeTwoPointConicalGradient(_scratchFourFloatsAPtr,startRadius,endRadius,cPtrInfo.colorPtr,cPtrInfo.colorType,posPtr,cPtrInfo.count,mode,flags,localMatrixPtr,colorSpace);freeArraysThatAreNotMallocedByUsers(cPtrInfo.colorPtr,colors);pos&&freeArraysThatAreNotMallocedByUsers(posPtr,pos);return rgs};CanvasKit.Vertices.prototype.bounds=function(optionalOutputArray){this._bounds(_scratchFourFloatsAPtr);var ta=_scratchFourFloatsA["toTypedArray"]();if(optionalOutputArray){optionalOutputArray.set(ta);return optionalOutputArray}return ta.slice()};if(CanvasKit._extraInitializations){CanvasKit._extraInitializations.forEach(function(init){init()})}};CanvasKit.computeTonalColors=function(tonalColors){var cPtrAmbi=copyColorToWasmNoScratch(tonalColors["ambient"]);var cPtrSpot=copyColorToWasmNoScratch(tonalColors["spot"]);this._computeTonalColors(cPtrAmbi,cPtrSpot);var result={"ambient":copyColorFromWasm(cPtrAmbi),"spot":copyColorFromWasm(cPtrSpot)};freeArraysThatAreNotMallocedByUsers(cPtrAmbi,tonalColors["ambient"]);freeArraysThatAreNotMallocedByUsers(cPtrSpot,tonalColors["spot"]);return result};CanvasKit.LTRBRect=function(l,t,r,b){return Float32Array.of(l,t,r,b)};CanvasKit.XYWHRect=function(x,y,w,h){return Float32Array.of(x,y,x+w,y+h)};CanvasKit.LTRBiRect=function(l,t,r,b){return Int32Array.of(l,t,r,b)};CanvasKit.XYWHiRect=function(x,y,w,h){return Int32Array.of(x,y,x+w,y+h)};CanvasKit.RRectXY=function(rect,rx,ry){return Float32Array.of(rect[0],rect[1],rect[2],rect[3],rx,ry,rx,ry,rx,ry,rx,ry)};CanvasKit.MakeAnimatedImageFromEncoded=function(data){data=new Uint8Array(data);var iptr=CanvasKit._malloc(data.byteLength);CanvasKit.HEAPU8.set(data,iptr);var img=CanvasKit._decodeAnimatedImage(iptr,data.byteLength);if(!img){Debug("Could not decode animated image");return null}return img};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){Debug("Could not decode image");return null}return img};var memoizedCanvas2dElement=null;CanvasKit.MakeImageFromCanvasImageSource=function(canvasImageSource){var width=canvasImageSource.width;var height=canvasImageSource.height;if(!memoizedCanvas2dElement){memoizedCanvas2dElement=document.createElement("canvas")}memoizedCanvas2dElement.width=width;memoizedCanvas2dElement.height=height;var ctx2d=memoizedCanvas2dElement.getContext("2d");ctx2d.drawImage(canvasImageSource,0,0);var imageData=ctx2d.getImageData(0,0,width,height);return CanvasKit.MakeImage({"width":width,"height":height,"alphaType":CanvasKit.AlphaType.Unpremul,"colorType":CanvasKit.ColorType.RGBA_8888,"colorSpace":CanvasKit.ColorSpace.SRGB},imageData.data,4*width)};CanvasKit.MakeImage=function(info,pixels,bytesPerRow){var pptr=CanvasKit._malloc(pixels.length);CanvasKit.HEAPU8.set(pixels,pptr);return CanvasKit._MakeImage(info,pptr,pixels.length,bytesPerRow)};CanvasKit.MakeVertices=function(mode,positions,textureCoordinates,colors,indices,isVolatile){isVolatile=isVolatile===undefined?true:isVolatile;var idxCount=indices&&indices.length||0;var flags=0;if(textureCoordinates&&textureCoordinates.length){flags|=1<<0}if(colors&&colors.length){flags|=1<<1}if(!isVolatile){flags|=1<<2}var builder=new CanvasKit._VerticesBuilder(mode,positions.length/2,idxCount,flags);copy1dArray(positions,"HEAPF32",builder.positions());if(builder.texCoords()){copy1dArray(textureCoordinates,"HEAPF32",builder.texCoords())}if(builder.colors()){if(colors.build){throw"Color builder not accepted by MakeVertices, use array of ints"}else{copy1dArray(assureIntColors(colors),"HEAPU32",builder.colors())}}if(builder.indices()){copy1dArray(indices,"HEAPU16",builder.indices())}return builder.detach()};CanvasKit.Matrix={};function sdot(){var acc=0;for(var i=0;i<arguments.length-1;i+=2){acc+=arguments[i]*arguments[i+1]}return acc}var identityN=function(n){var size=n*n;var m=new Array(size);while(size--){m[size]=size%(n+1)===0?1:0}return m};var stride=function(v,m,width,offset,colStride){for(var i=0;i<v.length;i++){m[i*width+(i*colStride+offset+width)%width]=v[i]}return m};CanvasKit.Matrix.identity=function(){return identityN(3)};CanvasKit.Matrix.invert=function(m){var det=m[0]*m[4]*m[8]+m[1]*m[5]*m[6]+m[2]*m[3]*m[7]-m[2]*m[4]*m[6]-m[1]*m[3]*m[8]-m[0]*m[5]*m[7];if(!det){Debug("Warning, uninvertible matrix");return null}return[(m[4]*m[8]-m[5]*m[7])/det,(m[2]*m[7]-m[1]*m[8])/det,(m[1]*m[5]-m[2]*m[4])/det,(m[5]*m[6]-m[3]*m[8])/det,(m[0]*m[8]-m[2]*m[6])/det,(m[2]*m[3]-m[0]*m[5])/det,(m[3]*m[7]-m[4]*m[6])/det,(m[1]*m[6]-m[0]*m[7])/det,(m[0]*m[4]-m[1]*m[3])/det]};CanvasKit.Matrix.mapPoints=function(matrix,ptArr){if(IsDebug&&ptArr.length%2){throw"mapPoints requires an even length arr"}for(var i=0;i<ptArr.length;i+=2){var x=ptArr[i],y=ptArr[i+1];var denom=matrix[6]*x+matrix[7]*y+matrix[8];var xTrans=matrix[0]*x+matrix[1]*y+matrix[2];var yTrans=matrix[3]*x+matrix[4]*y+matrix[5];ptArr[i]=xTrans/denom;ptArr[i+1]=yTrans/denom}return ptArr};function isnumber(val){return!isNaN(val)}function multiply(m1,m2,size){if(IsDebug&&(!m1.every(isnumber)||!m2.every(isnumber))){throw"Some members of matrices are NaN m1="+m1+", m2="+m2+""}if(IsDebug&&m1.length!==m2.length){throw"Undefined for matrices of different sizes. m1.length="+m1.length+", m2.length="+m2.length}if(IsDebug&&size*size!==m1.length){throw"Undefined for non-square matrices. array size was "+size}var result=Array(m1.length);for(var r=0;r<size;r++){for(var c=0;c<size;c++){var acc=0;for(var k=0;k<size;k++){acc+=m1[size*r+k]*m2[size*k+c]}result[r*size+c]=acc}}return result}function multiplyMany(size,listOfMatrices){if(IsDebug&&listOfMatrices.length<2){throw"multiplication expected two or more matrices"}var result=multiply(listOfMatrices[0],listOfMatrices[1],size);var next=2;while(next<listOfMatrices.length){result=multiply(result,listOfMatrices[next],size);next++}return result}CanvasKit.Matrix.multiply=function(){return multiplyMany(3,arguments)};CanvasKit.Matrix.rotated=function(radians,px,py){px=px||0;py=py||0;var sinV=Math.sin(radians);var cosV=Math.cos(radians);return[cosV,-sinV,sdot(sinV,py,1-cosV,px),sinV,cosV,sdot(-sinV,px,1-cosV,py),0,0,1]};CanvasKit.Matrix.scaled=function(sx,sy,px,py){px=px||0;py=py||0;var m=stride([sx,sy],identityN(3),3,0,1);return stride([px-sx*px,py-sy*py],m,3,2,0)};CanvasKit.Matrix.skewed=function(kx,ky,px,py){px=px||0;py=py||0;var m=stride([kx,ky],identityN(3),3,1,-1);return stride([-kx*px,-ky*py],m,3,2,0)};CanvasKit.Matrix.translated=function(dx,dy){return stride(arguments,identityN(3),3,2,0)};CanvasKit.Vector={};CanvasKit.Vector.dot=function(a,b){if(IsDebug&&a.length!==b.length){throw"Cannot perform dot product on arrays of different length ("+a.length+" vs "+b.length+")"}return a.map(function(v,i){return v*b[i]}).reduce(function(acc,cur){return acc+cur})};CanvasKit.Vector.lengthSquared=function(v){return CanvasKit.Vector.dot(v,v)};CanvasKit.Vector.length=function(v){return Math.sqrt(CanvasKit.Vector.lengthSquared(v))};CanvasKit.Vector.mulScalar=function(v,s){return v.map(function(i){return i*s})};CanvasKit.Vector.add=function(a,b){return a.map(function(v,i){return v+b[i]})};CanvasKit.Vector.sub=function(a,b){return a.map(function(v,i){return v-b[i]})};CanvasKit.Vector.dist=function(a,b){return CanvasKit.Vector.length(CanvasKit.Vector.sub(a,b))};CanvasKit.Vector.normalize=function(v){return CanvasKit.Vector.mulScalar(v,1/CanvasKit.Vector.length(v))};CanvasKit.Vector.cross=function(a,b){if(IsDebug&&(a.length!==3||a.length!==3)){throw"Cross product is only defined for 3-dimensional vectors (a.length="+a.length+", b.length="+b.length+")"}return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]};CanvasKit.M44={};CanvasKit.M44.identity=function(){return identityN(4)};CanvasKit.M44.translated=function(vec){return stride(vec,identityN(4),4,3,0)};CanvasKit.M44.scaled=function(vec){return stride(vec,identityN(4),4,0,1)};CanvasKit.M44.rotated=function(axisVec,radians){return CanvasKit.M44.rotatedUnitSinCos(CanvasKit.Vector.normalize(axisVec),Math.sin(radians),Math.cos(radians))};CanvasKit.M44.rotatedUnitSinCos=function(axisVec,sinAngle,cosAngle){var x=axisVec[0];var y=axisVec[1];var z=axisVec[2];var c=cosAngle;var s=sinAngle;var t=1-c;return[t*x*x+c,t*x*y-s*z,t*x*z+s*y,0,t*x*y+s*z,t*y*y+c,t*y*z-s*x,0,t*x*z-s*y,t*y*z+s*x,t*z*z+c,0,0,0,0,1]};CanvasKit.M44.lookat=function(eyeVec,centerVec,upVec){var f=CanvasKit.Vector.normalize(CanvasKit.Vector.sub(centerVec,eyeVec));var u=CanvasKit.Vector.normalize(upVec);var s=CanvasKit.Vector.normalize(CanvasKit.Vector.cross(f,u));var m=CanvasKit.M44.identity();stride(s,m,4,0,0);stride(CanvasKit.Vector.cross(s,f),m,4,1,0);stride(CanvasKit.Vector.mulScalar(f,-1),m,4,2,0);stride(eyeVec,m,4,3,0);var m2=CanvasKit.M44.invert(m);if(m2===null){return CanvasKit.M44.identity()}return m2};CanvasKit.M44.perspective=function(near,far,angle){if(IsDebug&&far<=near){throw"far must be greater than near when constructing M44 using perspective."}var dInv=1/(far-near);var halfAngle=angle/2;var cot=Math.cos(halfAngle)/Math.sin(halfAngle);return[cot,0,0,0,0,cot,0,0,0,0,(far+near)*dInv,2*far*near*dInv,0,0,-1,1]};CanvasKit.M44.rc=function(m,r,c){return m[r*4+c]};CanvasKit.M44.multiply=function(){return multiplyMany(4,arguments)};CanvasKit.M44.invert=function(m){if(IsDebug&&!m.every(isnumber)){throw"some members of matrix are NaN m="+m}var a00=m[0];var a01=m[4];var a02=m[8];var a03=m[12];var a10=m[1];var a11=m[5];var a12=m[9];var a13=m[13];var a20=m[2];var a21=m[6];var a22=m[10];var a23=m[14];var a30=m[3];var a31=m[7];var a32=m[11];var a33=m[15];var b00=a00*a11-a01*a10;var b01=a00*a12-a02*a10;var b02=a00*a13-a03*a10;var b03=a01*a12-a02*a11;var b04=a01*a13-a03*a11;var b05=a02*a13-a03*a12;var b06=a20*a31-a21*a30;var b07=a20*a32-a22*a30;var b08=a20*a33-a23*a30;var b09=a21*a32-a22*a31;var b10=a21*a33-a23*a31;var b11=a22*a33-a23*a32;var det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var invdet=1/det;if(det===0||invdet===Infinity){Debug("Warning, uninvertible matrix");return null}b00*=invdet;b01*=invdet;b02*=invdet;b03*=invdet;b04*=invdet;b05*=invdet;b06*=invdet;b07*=invdet;b08*=invdet;b09*=invdet;b10*=invdet;b11*=invdet;var tmp=[a11*b11-a12*b10+a13*b09,a12*b08-a10*b11-a13*b07,a10*b10-a11*b08+a13*b06,a11*b07-a10*b09-a12*b06,a02*b10-a01*b11-a03*b09,a00*b11-a02*b08+a03*b07,a01*b08-a00*b10-a03*b06,a00*b09-a01*b07+a02*b06,a31*b05-a32*b04+a33*b03,a32*b02-a30*b05-a33*b01,a30*b04-a31*b02+a33*b00,a31*b01-a30*b03-a32*b00,a22*b04-a21*b05-a23*b03,a20*b05-a22*b02+a23*b01,a21*b02-a20*b04-a23*b00,a20*b03-a21*b01+a22*b00];if(!tmp.every(function(val){return!isNaN(val)&&val!==Infinity&&val!==-Infinity})){Debug("inverted matrix contains infinities or NaN "+tmp);return null}return tmp};CanvasKit.M44.transpose=function(m){return[m[0],m[4],m[8],m[12],m[1],m[5],m[9],m[13],m[2],m[6],m[10],m[14],m[3],m[7],m[11],m[15]]};CanvasKit.M44.mustInvert=function(m){var m2=CanvasKit.M44.invert(m);if(m2===null){throw"Matrix not invertible"}return m2};CanvasKit.M44.setupCamera=function(area,zscale,cam){var camera=CanvasKit.M44.lookat(cam["eye"],cam["coa"],cam["up"]);var perspective=CanvasKit.M44.perspective(cam["near"],cam["far"],cam["angle"]);var center=[(area[0]+area[2])/2,(area[1]+area[3])/2,0];var viewScale=[(area[2]-area[0])/2,(area[3]-area[1])/2,zscale];var viewport=CanvasKit.M44.multiply(CanvasKit.M44.translated(center),CanvasKit.M44.scaled(viewScale));return CanvasKit.M44.multiply(viewport,perspective,camera,CanvasKit.M44.mustInvert(viewport))};var rScale=0;var gScale=6;var bScale=12;var aScale=18;var rPostTrans=4;var gPostTrans=9;var bPostTrans=14;var aPostTrans=19;CanvasKit.ColorMatrix={};CanvasKit.ColorMat