44 *
55 * GPU Accelerated JavaScript
66 *
7- * @version 2.14 .0
8- * @date Wed Jan 26 2022 16:31:43 GMT-0500 (Eastern Standard Time)
7+ * @version 2.15 .0
8+ * @date Wed Jan 26 2022 17:11:45 GMT-0500 (Eastern Standard Time)
99 *
1010 * @license MIT
1111 * The MIT License
@@ -6070,6 +6070,7 @@ class CPUKernel extends Kernel {
60706070 case 'OffscreenCanvas':
60716071 case 'HTMLImage':
60726072 case 'ImageBitmap':
6073+ case 'ImageData':
60736074 case 'HTMLVideo':
60746075 result.push(` const constants_${p} = this._mediaTo2DArray(this.constants.${p});\n`);
60756076 break;
@@ -6115,6 +6116,7 @@ class CPUKernel extends Kernel {
61156116 case 'OffscreenCanvas':
61166117 case 'HTMLImage':
61176118 case 'ImageBitmap':
6119+ case 'ImageData':
61186120 case 'HTMLVideo':
61196121 result.push(` ${variableName} = this._mediaTo2DArray(${variableName});\n`);
61206122 break;
@@ -6162,8 +6164,13 @@ class CPUKernel extends Kernel {
61626164 canvas.height = height;
61636165 }
61646166 const ctx = this.context;
6165- ctx.drawImage(media, 0, 0, width, height);
6166- const pixelsData = ctx.getImageData(0, 0, width, height).data;
6167+ let pixelsData;
6168+ if (media.constructor === ImageData) {
6169+ pixelsData = media.data;
6170+ } else {
6171+ ctx.drawImage(media, 0, 0, width, height);
6172+ pixelsData = ctx.getImageData(0, 0, width, height).data;
6173+ }
61676174 const imageArray = new Array(height);
61686175 let index = 0;
61696176 for (let y = height - 1; y >= 0; y--) {
@@ -8333,6 +8340,7 @@ const typeLookupMap = {
83338340 'OffscreenCanvas': 'Array(4)',
83348341 'HTMLImage': 'Array(4)',
83358342 'ImageBitmap': 'Array(4)',
8343+ 'ImageData': 'Array(4)',
83368344 'HTMLVideo': 'Array(4)',
83378345 'HTMLImageArray': 'Array(4)',
83388346 'NumberTexture': 'Number',
@@ -12810,6 +12818,7 @@ class WebGLFunctionNode extends FunctionNode {
1281012818 case 'OffscreenCanvas':
1281112819 case 'HTMLImage':
1281212820 case 'ImageBitmap':
12821+ case 'ImageData':
1281312822 case 'HTMLVideo':
1281412823 retArr.push(`getVec4FromSampler2D(${ markupName }, ${ markupName }Size, ${ markupName }Dim, `);
1281512824 this.memberExpressionXYZ(xProperty, yProperty, zProperty, retArr);
@@ -13012,6 +13021,7 @@ class WebGLFunctionNode extends FunctionNode {
1301213021 case 'OffscreenCanvas':
1301313022 case 'HTMLImage':
1301413023 case 'ImageBitmap':
13024+ case 'ImageData':
1301513025 case 'HTMLImageArray':
1301613026 case 'HTMLVideo':
1301713027 case 'ArrayTexture(1)':
@@ -13126,6 +13136,7 @@ const typeMap = {
1312613136 'OffscreenCanvas': 'sampler2D',
1312713137 'HTMLImage': 'sampler2D',
1312813138 'ImageBitmap': 'sampler2D',
13139+ 'ImageData': 'sampler2D',
1312913140 'HTMLImageArray': 'sampler2DArray',
1313013141};
1313113142
@@ -13137,7 +13148,6 @@ const operatorMap = {
1313713148module.exports = {
1313813149 WebGLFunctionNode
1313913150};
13140-
1314113151},{"../../utils":114,"../function-node":10}],39:[function(require,module,exports){
1314213152const { WebGLKernelValueBoolean } = require('./kernel-value/boolean');
1314313153const { WebGLKernelValueFloat } = require('./kernel-value/float');
@@ -13210,6 +13220,7 @@ const kernelValueMaps = {
1321013220 'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
1321113221 'HTMLImage': WebGLKernelValueDynamicHTMLImage,
1321213222 'ImageBitmap': WebGLKernelValueDynamicHTMLImage,
13223+ 'ImageData': WebGLKernelValueDynamicHTMLImage,
1321313224 'HTMLImageArray': false,
1321413225 'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
1321513226 },
@@ -13241,6 +13252,7 @@ const kernelValueMaps = {
1324113252 'OffscreenCanvas': WebGLKernelValueHTMLImage,
1324213253 'HTMLImage': WebGLKernelValueHTMLImage,
1324313254 'ImageBitmap': WebGLKernelValueHTMLImage,
13255+ 'ImageData': WebGLKernelValueHTMLImage,
1324413256 'HTMLImageArray': false,
1324513257 'HTMLVideo': WebGLKernelValueHTMLVideo,
1324613258 }
@@ -13274,6 +13286,7 @@ const kernelValueMaps = {
1327413286 'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
1327513287 'HTMLImage': WebGLKernelValueDynamicHTMLImage,
1327613288 'ImageBitmap': WebGLKernelValueDynamicHTMLImage,
13289+ 'ImageData': WebGLKernelValueDynamicHTMLImage,
1327713290 'HTMLImageArray': false,
1327813291 'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
1327913292 },
@@ -13305,6 +13318,7 @@ const kernelValueMaps = {
1330513318 'OffscreenCanvas': WebGLKernelValueHTMLImage,
1330613319 'HTMLImage': WebGLKernelValueHTMLImage,
1330713320 'ImageBitmap': WebGLKernelValueHTMLImage,
13321+ 'ImageData': WebGLKernelValueHTMLImage,
1330813322 'HTMLImageArray': false,
1330913323 'HTMLVideo': WebGLKernelValueHTMLVideo,
1331013324 }
@@ -16499,6 +16513,7 @@ const kernelValueMaps = {
1649916513 'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
1650016514 'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
1650116515 'ImageBitmap': WebGL2KernelValueDynamicHTMLImage,
16516+ 'ImageData': WebGL2KernelValueDynamicHTMLImage,
1650216517 'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
1650316518 'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
1650416519 },
@@ -16530,6 +16545,7 @@ const kernelValueMaps = {
1653016545 'OffscreenCanvas': WebGL2KernelValueHTMLImage,
1653116546 'HTMLImage': WebGL2KernelValueHTMLImage,
1653216547 'ImageBitmap': WebGL2KernelValueHTMLImage,
16548+ 'ImageData': WebGL2KernelValueHTMLImage,
1653316549 'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
1653416550 'HTMLVideo': WebGL2KernelValueHTMLVideo,
1653516551 }
@@ -16563,6 +16579,7 @@ const kernelValueMaps = {
1656316579 'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
1656416580 'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
1656516581 'ImageBitmap': WebGL2KernelValueDynamicHTMLImage,
16582+ 'ImageData': WebGL2KernelValueDynamicHTMLImage,
1656616583 'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
1656716584 'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
1656816585 },
@@ -16594,6 +16611,7 @@ const kernelValueMaps = {
1659416611 'OffscreenCanvas': WebGL2KernelValueHTMLImage,
1659516612 'HTMLImage': WebGL2KernelValueHTMLImage,
1659616613 'ImageBitmap': WebGL2KernelValueHTMLImage,
16614+ 'ImageData': WebGL2KernelValueHTMLImage,
1659716615 'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
1659816616 'HTMLVideo': WebGL2KernelValueHTMLVideo,
1659916617 }
@@ -18715,6 +18733,8 @@ const utils = {
1871518733 return 'OffscreenCanvas';
1871618734 case ImageBitmap:
1871718735 return 'ImageBitmap';
18736+ case ImageData:
18737+ return 'ImageData';
1871818738 }
1871918739 switch (value.nodeName) {
1872018740 case 'IMG':
0 commit comments