4
4
*
5
5
* GPU Accelerated JavaScript
6
6
*
7
- * @version 2.6.11
8
- * @date Mon Mar 09 2020 05:48:54 GMT-0400 (Eastern Daylight Time)
7
+ * @version 2.7.0
8
+ * @date Tue Mar 10 2020 15:46:55 GMT-0400 (Eastern Daylight Time)
9
9
*
10
10
* @license MIT
11
11
* The MIT License
@@ -8806,12 +8806,13 @@ function getToArrayString(kernelResult, textureName) {
8806
8806
throw new Error('unhandled fromObject');
8807
8807
}
8808
8808
},
8809
- thisLookup: (property) => {
8809
+ thisLookup: (property, isDeclaration ) => {
8810
8810
if (property === 'texture') {
8811
8811
return textureName;
8812
8812
}
8813
8813
if (property === 'context') {
8814
- return null;
8814
+ if (isDeclaration) return null;
8815
+ return 'gl';
8815
8816
}
8816
8817
if (property === '_framebuffer') {
8817
8818
return '_framebuffer';
@@ -9956,10 +9957,7 @@ class GLTextureFloat extends GLTexture {
9956
9957
}
9957
9958
renderRawOutput() {
9958
9959
const { context: gl, size } = this;
9959
- if (!this._framebuffer) {
9960
- this._framebuffer = gl.createFramebuffer();
9961
- }
9962
- gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer);
9960
+ gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer());
9963
9961
gl.framebufferTexture2D(
9964
9962
gl.FRAMEBUFFER,
9965
9963
gl.COLOR_ATTACHMENT0,
@@ -10024,12 +10022,7 @@ class GLTexture extends Texture {
10024
10022
console.warn('cloning internal texture');
10025
10023
}
10026
10024
const existingFramebuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);
10027
- if (!this._framebuffer) {
10028
- this._framebuffer = gl.createFramebuffer();
10029
- }
10030
- this._framebuffer.width = size[0];
10031
- this._framebuffer.height = size[1];
10032
- gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer);
10025
+ gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer());
10033
10026
selectTexture(gl, texture);
10034
10027
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
10035
10028
const target = gl.createTexture();
@@ -10043,13 +10036,32 @@ class GLTexture extends Texture {
10043
10036
}
10044
10037
}
10045
10038
10039
+ clear() {
10040
+ const { context: gl, size, texture } = this;
10041
+ gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer());
10042
+ gl.bindTexture(gl.TEXTURE_2D, texture);
10043
+ selectTexture(gl, texture);
10044
+ gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
10045
+ gl.clearColor(0, 0, 0, 0);
10046
+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
10047
+ }
10048
+
10046
10049
delete() {
10047
10050
super.delete();
10048
10051
if (this.texture._refs === 0 && this._framebuffer) {
10049
10052
this.context.deleteFramebuffer(this._framebuffer);
10050
10053
this._framebuffer = null;
10051
10054
}
10052
10055
}
10056
+
10057
+ framebuffer() {
10058
+ if (!this._framebuffer) {
10059
+ this._framebuffer = this.context.createFramebuffer();
10060
+ }
10061
+ this._framebuffer.width = this.size[0];
10062
+ this._framebuffer.height = this.size[1];
10063
+ return this._framebuffer;
10064
+ }
10053
10065
}
10054
10066
10055
10067
function selectTexture(gl, texture) {
@@ -18707,7 +18719,7 @@ const utils = {
18707
18719
}
18708
18720
case 'VariableDeclarator':
18709
18721
if (ast.init.object && ast.init.object.type === 'ThisExpression') {
18710
- const lookup = thisLookup(ast.init.property.name);
18722
+ const lookup = thisLookup(ast.init.property.name, true );
18711
18723
if (lookup) {
18712
18724
return `${ast.id.name} = ${flatten(ast.init)}`;
18713
18725
} else {
0 commit comments