4
4
*
5
5
* GPU Accelerated JavaScript
6
6
*
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)
9
9
*
10
10
* @license MIT
11
11
* The MIT License
@@ -6070,6 +6070,7 @@ class CPUKernel extends Kernel {
6070
6070
case 'OffscreenCanvas':
6071
6071
case 'HTMLImage':
6072
6072
case 'ImageBitmap':
6073
+ case 'ImageData':
6073
6074
case 'HTMLVideo':
6074
6075
result.push(` const constants_${p} = this._mediaTo2DArray(this.constants.${p});\n`);
6075
6076
break;
@@ -6115,6 +6116,7 @@ class CPUKernel extends Kernel {
6115
6116
case 'OffscreenCanvas':
6116
6117
case 'HTMLImage':
6117
6118
case 'ImageBitmap':
6119
+ case 'ImageData':
6118
6120
case 'HTMLVideo':
6119
6121
result.push(` ${variableName} = this._mediaTo2DArray(${variableName});\n`);
6120
6122
break;
@@ -6162,8 +6164,13 @@ class CPUKernel extends Kernel {
6162
6164
canvas.height = height;
6163
6165
}
6164
6166
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
+ }
6167
6174
const imageArray = new Array(height);
6168
6175
let index = 0;
6169
6176
for (let y = height - 1; y >= 0; y--) {
@@ -8333,6 +8340,7 @@ const typeLookupMap = {
8333
8340
'OffscreenCanvas': 'Array(4)',
8334
8341
'HTMLImage': 'Array(4)',
8335
8342
'ImageBitmap': 'Array(4)',
8343
+ 'ImageData': 'Array(4)',
8336
8344
'HTMLVideo': 'Array(4)',
8337
8345
'HTMLImageArray': 'Array(4)',
8338
8346
'NumberTexture': 'Number',
@@ -12810,6 +12818,7 @@ class WebGLFunctionNode extends FunctionNode {
12810
12818
case 'OffscreenCanvas':
12811
12819
case 'HTMLImage':
12812
12820
case 'ImageBitmap':
12821
+ case 'ImageData':
12813
12822
case 'HTMLVideo':
12814
12823
retArr.push(`getVec4FromSampler2D(${ markupName }, ${ markupName }Size, ${ markupName }Dim, `);
12815
12824
this.memberExpressionXYZ(xProperty, yProperty, zProperty, retArr);
@@ -13012,6 +13021,7 @@ class WebGLFunctionNode extends FunctionNode {
13012
13021
case 'OffscreenCanvas':
13013
13022
case 'HTMLImage':
13014
13023
case 'ImageBitmap':
13024
+ case 'ImageData':
13015
13025
case 'HTMLImageArray':
13016
13026
case 'HTMLVideo':
13017
13027
case 'ArrayTexture(1)':
@@ -13126,6 +13136,7 @@ const typeMap = {
13126
13136
'OffscreenCanvas': 'sampler2D',
13127
13137
'HTMLImage': 'sampler2D',
13128
13138
'ImageBitmap': 'sampler2D',
13139
+ 'ImageData': 'sampler2D',
13129
13140
'HTMLImageArray': 'sampler2DArray',
13130
13141
};
13131
13142
@@ -13137,7 +13148,6 @@ const operatorMap = {
13137
13148
module.exports = {
13138
13149
WebGLFunctionNode
13139
13150
};
13140
-
13141
13151
},{"../../utils":114,"../function-node":10}],39:[function(require,module,exports){
13142
13152
const { WebGLKernelValueBoolean } = require('./kernel-value/boolean');
13143
13153
const { WebGLKernelValueFloat } = require('./kernel-value/float');
@@ -13210,6 +13220,7 @@ const kernelValueMaps = {
13210
13220
'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
13211
13221
'HTMLImage': WebGLKernelValueDynamicHTMLImage,
13212
13222
'ImageBitmap': WebGLKernelValueDynamicHTMLImage,
13223
+ 'ImageData': WebGLKernelValueDynamicHTMLImage,
13213
13224
'HTMLImageArray': false,
13214
13225
'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
13215
13226
},
@@ -13241,6 +13252,7 @@ const kernelValueMaps = {
13241
13252
'OffscreenCanvas': WebGLKernelValueHTMLImage,
13242
13253
'HTMLImage': WebGLKernelValueHTMLImage,
13243
13254
'ImageBitmap': WebGLKernelValueHTMLImage,
13255
+ 'ImageData': WebGLKernelValueHTMLImage,
13244
13256
'HTMLImageArray': false,
13245
13257
'HTMLVideo': WebGLKernelValueHTMLVideo,
13246
13258
}
@@ -13274,6 +13286,7 @@ const kernelValueMaps = {
13274
13286
'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
13275
13287
'HTMLImage': WebGLKernelValueDynamicHTMLImage,
13276
13288
'ImageBitmap': WebGLKernelValueDynamicHTMLImage,
13289
+ 'ImageData': WebGLKernelValueDynamicHTMLImage,
13277
13290
'HTMLImageArray': false,
13278
13291
'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
13279
13292
},
@@ -13305,6 +13318,7 @@ const kernelValueMaps = {
13305
13318
'OffscreenCanvas': WebGLKernelValueHTMLImage,
13306
13319
'HTMLImage': WebGLKernelValueHTMLImage,
13307
13320
'ImageBitmap': WebGLKernelValueHTMLImage,
13321
+ 'ImageData': WebGLKernelValueHTMLImage,
13308
13322
'HTMLImageArray': false,
13309
13323
'HTMLVideo': WebGLKernelValueHTMLVideo,
13310
13324
}
@@ -16499,6 +16513,7 @@ const kernelValueMaps = {
16499
16513
'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
16500
16514
'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
16501
16515
'ImageBitmap': WebGL2KernelValueDynamicHTMLImage,
16516
+ 'ImageData': WebGL2KernelValueDynamicHTMLImage,
16502
16517
'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
16503
16518
'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
16504
16519
},
@@ -16530,6 +16545,7 @@ const kernelValueMaps = {
16530
16545
'OffscreenCanvas': WebGL2KernelValueHTMLImage,
16531
16546
'HTMLImage': WebGL2KernelValueHTMLImage,
16532
16547
'ImageBitmap': WebGL2KernelValueHTMLImage,
16548
+ 'ImageData': WebGL2KernelValueHTMLImage,
16533
16549
'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
16534
16550
'HTMLVideo': WebGL2KernelValueHTMLVideo,
16535
16551
}
@@ -16563,6 +16579,7 @@ const kernelValueMaps = {
16563
16579
'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
16564
16580
'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
16565
16581
'ImageBitmap': WebGL2KernelValueDynamicHTMLImage,
16582
+ 'ImageData': WebGL2KernelValueDynamicHTMLImage,
16566
16583
'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
16567
16584
'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
16568
16585
},
@@ -16594,6 +16611,7 @@ const kernelValueMaps = {
16594
16611
'OffscreenCanvas': WebGL2KernelValueHTMLImage,
16595
16612
'HTMLImage': WebGL2KernelValueHTMLImage,
16596
16613
'ImageBitmap': WebGL2KernelValueHTMLImage,
16614
+ 'ImageData': WebGL2KernelValueHTMLImage,
16597
16615
'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
16598
16616
'HTMLVideo': WebGL2KernelValueHTMLVideo,
16599
16617
}
@@ -18715,6 +18733,8 @@ const utils = {
18715
18733
return 'OffscreenCanvas';
18716
18734
case ImageBitmap:
18717
18735
return 'ImageBitmap';
18736
+ case ImageData:
18737
+ return 'ImageData';
18718
18738
}
18719
18739
switch (value.nodeName) {
18720
18740
case 'IMG':
0 commit comments