Skip to content

Commit 181c553

Browse files
fix: #473 resize canvas when needed in headlessgl and unit test
1 parent 67300c3 commit 181c553

File tree

8 files changed

+239
-25
lines changed

8 files changed

+239
-25
lines changed

bin/gpu-browser-core.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* GPU Accelerated JavaScript
66
*
77
* @version 2.0.0-rc.14
8-
* @date Thu May 23 2019 14:25:29 GMT-0400 (Eastern Daylight Time)
8+
* @date Thu May 23 2019 16:47:13 GMT-0400 (Eastern Daylight Time)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -4543,6 +4543,11 @@ class HeadlessGLKernel extends WebGLKernel {
45434543
};
45444544
}
45454545

4546+
build() {
4547+
super.build.apply(this, arguments);
4548+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
4549+
}
4550+
45464551
destroyExtensions() {
45474552
this.extensions.STACKGL_resize_drawingbuffer = null;
45484553
this.extensions.STACKGL_destroy_context = null;
@@ -4568,16 +4573,15 @@ class HeadlessGLKernel extends WebGLKernel {
45684573
setOutput(output) {
45694574
super.setOutput(output);
45704575
if (this.graphical) {
4571-
const { context: gl } = this;
4572-
const [width, height] = this.output;
4573-
(this.extensions.STACKGL_resize_drawingbuffer || gl.getExtension('STACKGL_resize_drawingbuffer')).resize(width, height);
4576+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
45744577
}
45754578
}
45764579
}
45774580

45784581
module.exports = {
45794582
HeadlessGLKernel
45804583
};
4584+
45814585
},{"../gl/kernel-string":10,"../web-gl/kernel":55,"gl":2}],32:[function(require,module,exports){
45824586
const { utils } = require('../utils');
45834587

@@ -9796,7 +9800,6 @@ class WebGL2Kernel extends WebGLKernel {
97969800
module.exports = {
97979801
WebGL2Kernel
97989802
};
9799-
98009803
},{"../../utils":88,"../function-builder":8,"../web-gl/kernel":55,"./fragment-shader":57,"./function-node":58,"./kernel-value-maps":59,"./vertex-shader":80}],80:[function(require,module,exports){
98019804
const vertexShader = `#version 300 es
98029805
precision highp float;

bin/gpu-browser-core.min.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* GPU Accelerated JavaScript
66
*
77
* @version 2.0.0-rc.14
8-
* @date Thu May 23 2019 14:25:31 GMT-0400 (Eastern Daylight Time)
8+
* @date Thu May 23 2019 16:47:15 GMT-0400 (Eastern Daylight Time)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -18,7 +18,7 @@
1818
* GPU Accelerated JavaScript
1919
*
2020
* @version 2.0.0-rc.14
21-
* @date Thu May 23 2019 14:25:29 GMT-0400 (Eastern Daylight Time)
21+
* @date Thu May 23 2019 16:47:13 GMT-0400 (Eastern Daylight Time)
2222
*
2323
* @license MIT
2424
* The MIT License
@@ -4556,6 +4556,11 @@ class HeadlessGLKernel extends WebGLKernel {
45564556
};
45574557
}
45584558

4559+
build() {
4560+
super.build.apply(this, arguments);
4561+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
4562+
}
4563+
45594564
destroyExtensions() {
45604565
this.extensions.STACKGL_resize_drawingbuffer = null;
45614566
this.extensions.STACKGL_destroy_context = null;
@@ -4581,16 +4586,15 @@ class HeadlessGLKernel extends WebGLKernel {
45814586
setOutput(output) {
45824587
super.setOutput(output);
45834588
if (this.graphical) {
4584-
const { context: gl } = this;
4585-
const [width, height] = this.output;
4586-
(this.extensions.STACKGL_resize_drawingbuffer || gl.getExtension('STACKGL_resize_drawingbuffer')).resize(width, height);
4589+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
45874590
}
45884591
}
45894592
}
45904593

45914594
module.exports = {
45924595
HeadlessGLKernel
45934596
};
4597+
45944598
},{"../gl/kernel-string":10,"../web-gl/kernel":55,"gl":2}],32:[function(require,module,exports){
45954599
const { utils } = require('../utils');
45964600

@@ -9809,7 +9813,6 @@ class WebGL2Kernel extends WebGLKernel {
98099813
module.exports = {
98109814
WebGL2Kernel
98119815
};
9812-
98139816
},{"../../utils":88,"../function-builder":8,"../web-gl/kernel":55,"./fragment-shader":57,"./function-node":58,"./kernel-value-maps":59,"./vertex-shader":80}],80:[function(require,module,exports){
98149817
const vertexShader = `#version 300 es
98159818
precision highp float;

bin/gpu-browser.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* GPU Accelerated JavaScript
66
*
77
* @version 2.0.0-rc.14
8-
* @date Thu May 23 2019 14:25:29 GMT-0400 (Eastern Daylight Time)
8+
* @date Thu May 23 2019 16:47:13 GMT-0400 (Eastern Daylight Time)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -9307,6 +9307,11 @@ class HeadlessGLKernel extends WebGLKernel {
93079307
};
93089308
}
93099309

9310+
build() {
9311+
super.build.apply(this, arguments);
9312+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
9313+
}
9314+
93109315
destroyExtensions() {
93119316
this.extensions.STACKGL_resize_drawingbuffer = null;
93129317
this.extensions.STACKGL_destroy_context = null;
@@ -9332,16 +9337,15 @@ class HeadlessGLKernel extends WebGLKernel {
93329337
setOutput(output) {
93339338
super.setOutput(output);
93349339
if (this.graphical) {
9335-
const { context: gl } = this;
9336-
const [width, height] = this.output;
9337-
(this.extensions.STACKGL_resize_drawingbuffer || gl.getExtension('STACKGL_resize_drawingbuffer')).resize(width, height);
9340+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
93389341
}
93399342
}
93409343
}
93419344

93429345
module.exports = {
93439346
HeadlessGLKernel
93449347
};
9348+
93459349
},{"../gl/kernel-string":11,"../web-gl/kernel":56,"gl":3}],33:[function(require,module,exports){
93469350
const { utils } = require('../utils');
93479351

@@ -14560,7 +14564,6 @@ class WebGL2Kernel extends WebGLKernel {
1456014564
module.exports = {
1456114565
WebGL2Kernel
1456214566
};
14563-
1456414567
},{"../../utils":89,"../function-builder":9,"../web-gl/kernel":56,"./fragment-shader":58,"./function-node":59,"./kernel-value-maps":60,"./vertex-shader":81}],81:[function(require,module,exports){
1456514568
const vertexShader = `#version 300 es
1456614569
precision highp float;

bin/gpu-browser.min.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* GPU Accelerated JavaScript
66
*
77
* @version 2.0.0-rc.14
8-
* @date Thu May 23 2019 14:25:31 GMT-0400 (Eastern Daylight Time)
8+
* @date Thu May 23 2019 16:47:15 GMT-0400 (Eastern Daylight Time)
99
*
1010
* @license MIT
1111
* The MIT License
@@ -18,7 +18,7 @@
1818
* GPU Accelerated JavaScript
1919
*
2020
* @version 2.0.0-rc.14
21-
* @date Thu May 23 2019 14:25:29 GMT-0400 (Eastern Daylight Time)
21+
* @date Thu May 23 2019 16:47:13 GMT-0400 (Eastern Daylight Time)
2222
*
2323
* @license MIT
2424
* The MIT License
@@ -9320,6 +9320,11 @@ class HeadlessGLKernel extends WebGLKernel {
93209320
};
93219321
}
93229322

9323+
build() {
9324+
super.build.apply(this, arguments);
9325+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
9326+
}
9327+
93239328
destroyExtensions() {
93249329
this.extensions.STACKGL_resize_drawingbuffer = null;
93259330
this.extensions.STACKGL_destroy_context = null;
@@ -9345,16 +9350,15 @@ class HeadlessGLKernel extends WebGLKernel {
93459350
setOutput(output) {
93469351
super.setOutput(output);
93479352
if (this.graphical) {
9348-
const { context: gl } = this;
9349-
const [width, height] = this.output;
9350-
(this.extensions.STACKGL_resize_drawingbuffer || gl.getExtension('STACKGL_resize_drawingbuffer')).resize(width, height);
9353+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
93519354
}
93529355
}
93539356
}
93549357

93559358
module.exports = {
93569359
HeadlessGLKernel
93579360
};
9361+
93589362
},{"../gl/kernel-string":11,"../web-gl/kernel":56,"gl":3}],33:[function(require,module,exports){
93599363
const { utils } = require('../utils');
93609364

@@ -14573,7 +14577,6 @@ class WebGL2Kernel extends WebGLKernel {
1457314577
module.exports = {
1457414578
WebGL2Kernel
1457514579
};
14576-
1457714580
},{"../../utils":89,"../function-builder":9,"../web-gl/kernel":56,"./fragment-shader":58,"./function-node":59,"./kernel-value-maps":60,"./vertex-shader":81}],81:[function(require,module,exports){
1457814581
const vertexShader = `#version 300 es
1457914582
precision highp float;

src/backend/headless-gl/kernel.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,11 @@ class HeadlessGLKernel extends WebGLKernel {
105105
};
106106
}
107107

108+
build() {
109+
super.build.apply(this, arguments);
110+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
111+
}
112+
108113
destroyExtensions() {
109114
this.extensions.STACKGL_resize_drawingbuffer = null;
110115
this.extensions.STACKGL_destroy_context = null;
@@ -133,9 +138,7 @@ class HeadlessGLKernel extends WebGLKernel {
133138
setOutput(output) {
134139
super.setOutput(output);
135140
if (this.graphical) {
136-
const { context: gl } = this;
137-
const [width, height] = this.output;
138-
(this.extensions.STACKGL_resize_drawingbuffer || gl.getExtension('STACKGL_resize_drawingbuffer')).resize(width, height);
141+
this.extensions.STACKGL_resize_drawingbuffer.resize(this.maxTexSize[0], this.maxTexSize[1]);
139142
}
140143
}
141144
}

src/index.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,8 @@ export interface IKernelSettings {
209209
graphical?: boolean;
210210
onRequestFallback?: () => Kernel;
211211
optimizeFloatMemory?: boolean;
212+
dynamicOutput?: boolean;
213+
dynamicArguments?: boolean;
212214
}
213215

214216
export interface IKernelRunShortcut extends Kernel {

test/all.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,5 +162,6 @@
162162
<script type="module" src="issues/401-cpu-canvas-check.js"></script>
163163
<script type="module" src="issues/410-if-statement.js"></script>
164164
<script type="module" src="issues/422-warnings.js"></script>
165+
<script type="module" src="issues/473-4-pixels.js"></script>
165166
</body>
166167
</html>

0 commit comments

Comments
 (0)