44 *
55 * GPU Accelerated JavaScript
66 *
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)
99 *
1010 * @license MIT
1111 * The MIT License
@@ -8806,12 +8806,13 @@ function getToArrayString(kernelResult, textureName) {
88068806 throw new Error('unhandled fromObject');
88078807 }
88088808 },
8809- thisLookup: (property) => {
8809+ thisLookup: (property, isDeclaration ) => {
88108810 if (property === 'texture') {
88118811 return textureName;
88128812 }
88138813 if (property === 'context') {
8814- return null;
8814+ if (isDeclaration) return null;
8815+ return 'gl';
88158816 }
88168817 if (property === '_framebuffer') {
88178818 return '_framebuffer';
@@ -9956,10 +9957,7 @@ class GLTextureFloat extends GLTexture {
99569957 }
99579958 renderRawOutput() {
99589959 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());
99639961 gl.framebufferTexture2D(
99649962 gl.FRAMEBUFFER,
99659963 gl.COLOR_ATTACHMENT0,
@@ -10024,12 +10022,7 @@ class GLTexture extends Texture {
1002410022 console.warn('cloning internal texture');
1002510023 }
1002610024 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());
1003310026 selectTexture(gl, texture);
1003410027 gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
1003510028 const target = gl.createTexture();
@@ -10043,13 +10036,32 @@ class GLTexture extends Texture {
1004310036 }
1004410037 }
1004510038
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+
1004610049 delete() {
1004710050 super.delete();
1004810051 if (this.texture._refs === 0 && this._framebuffer) {
1004910052 this.context.deleteFramebuffer(this._framebuffer);
1005010053 this._framebuffer = null;
1005110054 }
1005210055 }
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+ }
1005310065}
1005410066
1005510067function selectTexture(gl, texture) {
@@ -18707,7 +18719,7 @@ const utils = {
1870718719 }
1870818720 case 'VariableDeclarator':
1870918721 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 );
1871118723 if (lookup) {
1871218724 return `${ast.id.name} = ${flatten(ast.init)}`;
1871318725 } else {
0 commit comments