Skip to content

Commit 2ff65b1

Browse files
Merge branch 'master' into develop
2 parents e9d3b66 + 49ee619 commit 2ff65b1

17 files changed

+135
-19
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,9 @@ Types that can be used with GPU.js are as follows:
750750
* 'Array3D(3)' **New in V2!**
751751
* 'Array3D(4)' **New in V2!**
752752
* 'HTMLCanvas' **New in V2.6**
753+
* 'OffscreenCanvas' **New in V2.13**
753754
* 'HTMLImage'
755+
* 'ImageBitmap' **New in V2.14**
754756
* 'HTMLImageArray'
755757
* 'HTMLVideo' **New in V2!**
756758
* 'Number'

dist/gpu-browser-core.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*
55
* GPU Accelerated JavaScript
66
*
7-
* @version 2.12.0
8-
* @date Wed Jan 26 2022 15:33:09 GMT-0500 (Eastern Standard Time)
7+
* @version 2.14.0
8+
* @date Wed Jan 26 2022 16:31:42 GMT-0500 (Eastern Standard Time)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -1614,7 +1614,9 @@ class CPUKernel extends Kernel {
16141614
const type = this.constantTypes[p];
16151615
switch (type) {
16161616
case 'HTMLCanvas':
1617+
case 'OffscreenCanvas':
16171618
case 'HTMLImage':
1619+
case 'ImageBitmap':
16181620
case 'HTMLVideo':
16191621
result.push(` const constants_${p} = this._mediaTo2DArray(this.constants.${p});\n`);
16201622
break;
@@ -1657,7 +1659,9 @@ class CPUKernel extends Kernel {
16571659
const variableName = `user_${this.argumentNames[i]}`;
16581660
switch (this.argumentTypes[i]) {
16591661
case 'HTMLCanvas':
1662+
case 'OffscreenCanvas':
16601663
case 'HTMLImage':
1664+
case 'ImageBitmap':
16611665
case 'HTMLVideo':
16621666
result.push(` ${variableName} = this._mediaTo2DArray(${variableName});\n`);
16631667
break;
@@ -3875,6 +3879,7 @@ const typeLookupMap = {
38753879
'HTMLCanvas': 'Array(4)',
38763880
'OffscreenCanvas': 'Array(4)',
38773881
'HTMLImage': 'Array(4)',
3882+
'ImageBitmap': 'Array(4)',
38783883
'HTMLVideo': 'Array(4)',
38793884
'HTMLImageArray': 'Array(4)',
38803885
'NumberTexture': 'Number',
@@ -8351,6 +8356,7 @@ class WebGLFunctionNode extends FunctionNode {
83518356
case 'HTMLCanvas':
83528357
case 'OffscreenCanvas':
83538358
case 'HTMLImage':
8359+
case 'ImageBitmap':
83548360
case 'HTMLVideo':
83558361
retArr.push(`getVec4FromSampler2D(${ markupName }, ${ markupName }Size, ${ markupName }Dim, `);
83568362
this.memberExpressionXYZ(xProperty, yProperty, zProperty, retArr);
@@ -8550,7 +8556,9 @@ class WebGLFunctionNode extends FunctionNode {
85508556
}
85518557
break;
85528558
case 'HTMLCanvas':
8559+
case 'OffscreenCanvas':
85538560
case 'HTMLImage':
8561+
case 'ImageBitmap':
85548562
case 'HTMLImageArray':
85558563
case 'HTMLVideo':
85568564
case 'ArrayTexture(1)':
@@ -8662,7 +8670,9 @@ const typeMap = {
86628670
'ArrayTexture(4)': 'sampler2D',
86638671
'HTMLVideo': 'sampler2D',
86648672
'HTMLCanvas': 'sampler2D',
8673+
'OffscreenCanvas': 'sampler2D',
86658674
'HTMLImage': 'sampler2D',
8675+
'ImageBitmap': 'sampler2D',
86668676
'HTMLImageArray': 'sampler2DArray',
86678677
};
86688678

@@ -8674,6 +8684,7 @@ const operatorMap = {
86748684
module.exports = {
86758685
WebGLFunctionNode
86768686
};
8687+
86778688
},{"../../utils":113,"../function-node":9}],38:[function(require,module,exports){
86788689
const { WebGLKernelValueBoolean } = require('./kernel-value/boolean');
86798690
const { WebGLKernelValueFloat } = require('./kernel-value/float');
@@ -8745,6 +8756,7 @@ const kernelValueMaps = {
87458756
'HTMLCanvas': WebGLKernelValueDynamicHTMLImage,
87468757
'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
87478758
'HTMLImage': WebGLKernelValueDynamicHTMLImage,
8759+
'ImageBitmap': WebGLKernelValueDynamicHTMLImage,
87488760
'HTMLImageArray': false,
87498761
'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
87508762
},
@@ -8775,6 +8787,7 @@ const kernelValueMaps = {
87758787
'HTMLCanvas': WebGLKernelValueHTMLImage,
87768788
'OffscreenCanvas': WebGLKernelValueHTMLImage,
87778789
'HTMLImage': WebGLKernelValueHTMLImage,
8790+
'ImageBitmap': WebGLKernelValueHTMLImage,
87788791
'HTMLImageArray': false,
87798792
'HTMLVideo': WebGLKernelValueHTMLVideo,
87808793
}
@@ -8807,6 +8820,7 @@ const kernelValueMaps = {
88078820
'HTMLCanvas': WebGLKernelValueDynamicHTMLImage,
88088821
'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
88098822
'HTMLImage': WebGLKernelValueDynamicHTMLImage,
8823+
'ImageBitmap': WebGLKernelValueDynamicHTMLImage,
88108824
'HTMLImageArray': false,
88118825
'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
88128826
},
@@ -8837,6 +8851,7 @@ const kernelValueMaps = {
88378851
'HTMLCanvas': WebGLKernelValueHTMLImage,
88388852
'OffscreenCanvas': WebGLKernelValueHTMLImage,
88398853
'HTMLImage': WebGLKernelValueHTMLImage,
8854+
'ImageBitmap': WebGLKernelValueHTMLImage,
88408855
'HTMLImageArray': false,
88418856
'HTMLVideo': WebGLKernelValueHTMLVideo,
88428857
}
@@ -12030,6 +12045,7 @@ const kernelValueMaps = {
1203012045
'HTMLCanvas': WebGL2KernelValueDynamicHTMLImage,
1203112046
'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
1203212047
'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
12048+
'ImageBitmap': WebGL2KernelValueDynamicHTMLImage,
1203312049
'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
1203412050
'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
1203512051
},
@@ -12060,6 +12076,7 @@ const kernelValueMaps = {
1206012076
'HTMLCanvas': WebGL2KernelValueHTMLImage,
1206112077
'OffscreenCanvas': WebGL2KernelValueHTMLImage,
1206212078
'HTMLImage': WebGL2KernelValueHTMLImage,
12079+
'ImageBitmap': WebGL2KernelValueHTMLImage,
1206312080
'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
1206412081
'HTMLVideo': WebGL2KernelValueHTMLVideo,
1206512082
}
@@ -12092,6 +12109,7 @@ const kernelValueMaps = {
1209212109
'HTMLCanvas': WebGL2KernelValueDynamicHTMLImage,
1209312110
'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
1209412111
'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
12112+
'ImageBitmap': WebGL2KernelValueDynamicHTMLImage,
1209512113
'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
1209612114
'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
1209712115
},
@@ -12122,6 +12140,7 @@ const kernelValueMaps = {
1212212140
'HTMLCanvas': WebGL2KernelValueHTMLImage,
1212312141
'OffscreenCanvas': WebGL2KernelValueHTMLImage,
1212412142
'HTMLImage': WebGL2KernelValueHTMLImage,
12143+
'ImageBitmap': WebGL2KernelValueHTMLImage,
1212512144
'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
1212612145
'HTMLVideo': WebGL2KernelValueHTMLVideo,
1212712146
}
@@ -14241,6 +14260,8 @@ const utils = {
1424114260
return 'Input';
1424214261
case OffscreenCanvas:
1424314262
return 'OffscreenCanvas';
14263+
case ImageBitmap:
14264+
return 'ImageBitmap';
1424414265
}
1424514266
switch (value.nodeName) {
1424614267
case 'IMG':

dist/gpu-browser-core.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/gpu-browser.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*
55
* GPU Accelerated JavaScript
66
*
7-
* @version 2.12.0
8-
* @date Wed Jan 26 2022 15:33:09 GMT-0500 (Eastern Standard Time)
7+
* @version 2.14.0
8+
* @date Wed Jan 26 2022 16:31:43 GMT-0500 (Eastern Standard Time)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -6067,7 +6067,9 @@ class CPUKernel extends Kernel {
60676067
const type = this.constantTypes[p];
60686068
switch (type) {
60696069
case 'HTMLCanvas':
6070+
case 'OffscreenCanvas':
60706071
case 'HTMLImage':
6072+
case 'ImageBitmap':
60716073
case 'HTMLVideo':
60726074
result.push(` const constants_${p} = this._mediaTo2DArray(this.constants.${p});\n`);
60736075
break;
@@ -6110,7 +6112,9 @@ class CPUKernel extends Kernel {
61106112
const variableName = `user_${this.argumentNames[i]}`;
61116113
switch (this.argumentTypes[i]) {
61126114
case 'HTMLCanvas':
6115+
case 'OffscreenCanvas':
61136116
case 'HTMLImage':
6117+
case 'ImageBitmap':
61146118
case 'HTMLVideo':
61156119
result.push(` ${variableName} = this._mediaTo2DArray(${variableName});\n`);
61166120
break;
@@ -8328,6 +8332,7 @@ const typeLookupMap = {
83288332
'HTMLCanvas': 'Array(4)',
83298333
'OffscreenCanvas': 'Array(4)',
83308334
'HTMLImage': 'Array(4)',
8335+
'ImageBitmap': 'Array(4)',
83318336
'HTMLVideo': 'Array(4)',
83328337
'HTMLImageArray': 'Array(4)',
83338338
'NumberTexture': 'Number',
@@ -12804,6 +12809,7 @@ class WebGLFunctionNode extends FunctionNode {
1280412809
case 'HTMLCanvas':
1280512810
case 'OffscreenCanvas':
1280612811
case 'HTMLImage':
12812+
case 'ImageBitmap':
1280712813
case 'HTMLVideo':
1280812814
retArr.push(`getVec4FromSampler2D(${ markupName }, ${ markupName }Size, ${ markupName }Dim, `);
1280912815
this.memberExpressionXYZ(xProperty, yProperty, zProperty, retArr);
@@ -13003,7 +13009,9 @@ class WebGLFunctionNode extends FunctionNode {
1300313009
}
1300413010
break;
1300513011
case 'HTMLCanvas':
13012+
case 'OffscreenCanvas':
1300613013
case 'HTMLImage':
13014+
case 'ImageBitmap':
1300713015
case 'HTMLImageArray':
1300813016
case 'HTMLVideo':
1300913017
case 'ArrayTexture(1)':
@@ -13115,7 +13123,9 @@ const typeMap = {
1311513123
'ArrayTexture(4)': 'sampler2D',
1311613124
'HTMLVideo': 'sampler2D',
1311713125
'HTMLCanvas': 'sampler2D',
13126+
'OffscreenCanvas': 'sampler2D',
1311813127
'HTMLImage': 'sampler2D',
13128+
'ImageBitmap': 'sampler2D',
1311913129
'HTMLImageArray': 'sampler2DArray',
1312013130
};
1312113131

@@ -13127,6 +13137,7 @@ const operatorMap = {
1312713137
module.exports = {
1312813138
WebGLFunctionNode
1312913139
};
13140+
1313013141
},{"../../utils":114,"../function-node":10}],39:[function(require,module,exports){
1313113142
const { WebGLKernelValueBoolean } = require('./kernel-value/boolean');
1313213143
const { WebGLKernelValueFloat } = require('./kernel-value/float');
@@ -13198,6 +13209,7 @@ const kernelValueMaps = {
1319813209
'HTMLCanvas': WebGLKernelValueDynamicHTMLImage,
1319913210
'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
1320013211
'HTMLImage': WebGLKernelValueDynamicHTMLImage,
13212+
'ImageBitmap': WebGLKernelValueDynamicHTMLImage,
1320113213
'HTMLImageArray': false,
1320213214
'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
1320313215
},
@@ -13228,6 +13240,7 @@ const kernelValueMaps = {
1322813240
'HTMLCanvas': WebGLKernelValueHTMLImage,
1322913241
'OffscreenCanvas': WebGLKernelValueHTMLImage,
1323013242
'HTMLImage': WebGLKernelValueHTMLImage,
13243+
'ImageBitmap': WebGLKernelValueHTMLImage,
1323113244
'HTMLImageArray': false,
1323213245
'HTMLVideo': WebGLKernelValueHTMLVideo,
1323313246
}
@@ -13260,6 +13273,7 @@ const kernelValueMaps = {
1326013273
'HTMLCanvas': WebGLKernelValueDynamicHTMLImage,
1326113274
'OffscreenCanvas': WebGLKernelValueDynamicHTMLImage,
1326213275
'HTMLImage': WebGLKernelValueDynamicHTMLImage,
13276+
'ImageBitmap': WebGLKernelValueDynamicHTMLImage,
1326313277
'HTMLImageArray': false,
1326413278
'HTMLVideo': WebGLKernelValueDynamicHTMLVideo,
1326513279
},
@@ -13290,6 +13304,7 @@ const kernelValueMaps = {
1329013304
'HTMLCanvas': WebGLKernelValueHTMLImage,
1329113305
'OffscreenCanvas': WebGLKernelValueHTMLImage,
1329213306
'HTMLImage': WebGLKernelValueHTMLImage,
13307+
'ImageBitmap': WebGLKernelValueHTMLImage,
1329313308
'HTMLImageArray': false,
1329413309
'HTMLVideo': WebGLKernelValueHTMLVideo,
1329513310
}
@@ -16483,6 +16498,7 @@ const kernelValueMaps = {
1648316498
'HTMLCanvas': WebGL2KernelValueDynamicHTMLImage,
1648416499
'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
1648516500
'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
16501+
'ImageBitmap': WebGL2KernelValueDynamicHTMLImage,
1648616502
'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
1648716503
'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
1648816504
},
@@ -16513,6 +16529,7 @@ const kernelValueMaps = {
1651316529
'HTMLCanvas': WebGL2KernelValueHTMLImage,
1651416530
'OffscreenCanvas': WebGL2KernelValueHTMLImage,
1651516531
'HTMLImage': WebGL2KernelValueHTMLImage,
16532+
'ImageBitmap': WebGL2KernelValueHTMLImage,
1651616533
'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
1651716534
'HTMLVideo': WebGL2KernelValueHTMLVideo,
1651816535
}
@@ -16545,6 +16562,7 @@ const kernelValueMaps = {
1654516562
'HTMLCanvas': WebGL2KernelValueDynamicHTMLImage,
1654616563
'OffscreenCanvas': WebGL2KernelValueDynamicHTMLImage,
1654716564
'HTMLImage': WebGL2KernelValueDynamicHTMLImage,
16565+
'ImageBitmap': WebGL2KernelValueDynamicHTMLImage,
1654816566
'HTMLImageArray': WebGL2KernelValueDynamicHTMLImageArray,
1654916567
'HTMLVideo': WebGL2KernelValueDynamicHTMLVideo,
1655016568
},
@@ -16575,6 +16593,7 @@ const kernelValueMaps = {
1657516593
'HTMLCanvas': WebGL2KernelValueHTMLImage,
1657616594
'OffscreenCanvas': WebGL2KernelValueHTMLImage,
1657716595
'HTMLImage': WebGL2KernelValueHTMLImage,
16596+
'ImageBitmap': WebGL2KernelValueHTMLImage,
1657816597
'HTMLImageArray': WebGL2KernelValueHTMLImageArray,
1657916598
'HTMLVideo': WebGL2KernelValueHTMLVideo,
1658016599
}
@@ -18694,6 +18713,8 @@ const utils = {
1869418713
return 'Input';
1869518714
case OffscreenCanvas:
1869618715
return 'OffscreenCanvas';
18716+
case ImageBitmap:
18717+
return 'ImageBitmap';
1869718718
}
1869818719
switch (value.nodeName) {
1869918720
case 'IMG':

dist/gpu-browser.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gpu.js",
3-
"version": "2.12.0",
3+
"version": "2.14.0",
44
"description": "GPU Accelerated JavaScript",
55
"engines": {
66
"node": ">=8.0.0"

src/backend/cpu/kernel.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,9 @@ class CPUKernel extends Kernel {
266266
const type = this.constantTypes[p];
267267
switch (type) {
268268
case 'HTMLCanvas':
269+
case 'OffscreenCanvas':
269270
case 'HTMLImage':
271+
case 'ImageBitmap':
270272
case 'HTMLVideo':
271273
result.push(` const constants_${p} = this._mediaTo2DArray(this.constants.${p});\n`);
272274
break;
@@ -309,7 +311,9 @@ class CPUKernel extends Kernel {
309311
const variableName = `user_${this.argumentNames[i]}`;
310312
switch (this.argumentTypes[i]) {
311313
case 'HTMLCanvas':
314+
case 'OffscreenCanvas':
312315
case 'HTMLImage':
316+
case 'ImageBitmap':
313317
case 'HTMLVideo':
314318
result.push(` ${variableName} = this._mediaTo2DArray(${variableName});\n`);
315319
break;

src/backend/function-node.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1472,6 +1472,7 @@ const typeLookupMap = {
14721472
'HTMLCanvas': 'Array(4)',
14731473
'OffscreenCanvas': 'Array(4)',
14741474
'HTMLImage': 'Array(4)',
1475+
'ImageBitmap': 'Array(4)',
14751476
'HTMLVideo': 'Array(4)',
14761477
'HTMLImageArray': 'Array(4)',
14771478
'NumberTexture': 'Number',

src/backend/web-gl/function-node.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1250,6 +1250,7 @@ class WebGLFunctionNode extends FunctionNode {
12501250
case 'HTMLCanvas':
12511251
case 'OffscreenCanvas':
12521252
case 'HTMLImage':
1253+
case 'ImageBitmap':
12531254
case 'HTMLVideo':
12541255
retArr.push(`getVec4FromSampler2D(${ markupName }, ${ markupName }Size, ${ markupName }Dim, `);
12551256
this.memberExpressionXYZ(xProperty, yProperty, zProperty, retArr);
@@ -1465,7 +1466,9 @@ class WebGLFunctionNode extends FunctionNode {
14651466
}
14661467
break;
14671468
case 'HTMLCanvas':
1469+
case 'OffscreenCanvas':
14681470
case 'HTMLImage':
1471+
case 'ImageBitmap':
14691472
case 'HTMLImageArray':
14701473
case 'HTMLVideo':
14711474
case 'ArrayTexture(1)':
@@ -1584,7 +1587,9 @@ const typeMap = {
15841587
'ArrayTexture(4)': 'sampler2D',
15851588
'HTMLVideo': 'sampler2D',
15861589
'HTMLCanvas': 'sampler2D',
1590+
'OffscreenCanvas': 'sampler2D',
15871591
'HTMLImage': 'sampler2D',
1592+
'ImageBitmap': 'sampler2D',
15881593
'HTMLImageArray': 'sampler2DArray',
15891594
};
15901595

0 commit comments

Comments
 (0)