glre 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/events.ts CHANGED
@@ -50,4 +50,4 @@ export const glEvent = (self: GL) =>
50
50
  });
51
51
  });
52
52
  }
53
- });
53
+ } as any);
package/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("refr"),n=require("reev");function t(e,n,t){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.warn(e.getShaderInfoLog(r))}var r=function(e){return n.event({mount:function(n){var r=e.el=document.getElementById(e.id),i=e.gl=null==r?void 0:r.getContext("webgl"),o=t(i,e.frag,null==i?void 0:i.FRAGMENT_SHADER),u=t(i,e.vert,null==i?void 0:i.VERTEX_SHADER);e.pg=function(e,n,t){var r=e.createProgram();return e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?(e.useProgram(r),r):(console.log(e.getProgramInfoLog(r)),null)}(i,u,o),window.addEventListener("resize",n.on("resize")),window.addEventListener("mousemove",n.on("mousemove")),n("resize"),e.frame()},clean:function(e){window.removeEventListener("resize",e.on("resize")),window.removeEventListener("mousemove",e.on("mousemove"))},mousemove:function(n,t){var r=t.clientX,i=t.clientY,o=e.size,u=o[0],a=o[1];e.mouse[0]=(r-u/2)/(u/2),e.mouse[1]=-(i-a/2)/(a/2),e.setUniform("mouse",e.mouse)},resize:function(n,t,r,i){void 0===r&&(r=0),void 0===i&&(i=0),e.size[0]=e.el.width=r||window.innerWidth,e.size[1]=e.el.height=i||window.innerHeight,e.setUniform("resolution",e.size)},load:function(n,t){e.setFrame((function(){var n=t.path[0],r=e.activeUnit(n.alt),i=e.location(n.alt),o=function(e,n){var t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n),e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),t}(e.gl,n);e.setFrame((function(){return e.gl.uniform1i(i,r),e.gl.activeTexture(e.gl["TEXTURE"+r]),e.gl.bindTexture(e.gl.TEXTURE_2D,o),!0}))}))}})};function i(t){var i,o,u,a,l,f,c,s,v;void 0===t&&(t={});var d=function e(n){if(void 0===n&&(n=""),"function"==typeof n)return e.frame.mount(n)};return d.id=null!=(i=t.id)?i:"myCanvas",d.size=null!=(o=t.size)?o:[0,0],d.mouse=null!=(u=t.mouse)?u:[0,0],d.count=null!=(a=t.count)?a:1e3,d.frag=null!=(l=null!=(f=t.frag)?f:t.fragShader)?l:"",d.vert=null!=(c=null!=(s=t.vert)?s:t.vertShader)?c:"",d.lastActiveUnit=null!=(v=t.lastActiveUnit)?v:0,d.event=r(d),d.frame=e.frame(),d.stride=n.nested((function(e,n){return void 0===n&&(n=[]),n.length/d.count<<0})),d.activeUnit=n.nested((function(){return d.lastActiveUnit++})),d.uniformType=n.nested((function(e,n,t){return void 0===n&&(n=[]),void 0===t&&(t=!1),"number"==typeof n?"uniform1f":t?"uniformMatrix"+(Math.sqrt(n.length)<<0)+"fv":"uniform"+n.length+"fv"})),d.location=n.nested((function(e,n){var t,r;return void 0===n&&(n=!1),n?null==(t=d.gl)?void 0:t.getAttribLocation(d.pg,e):null==(r=d.gl)?void 0:r.getUniformLocation(d.pg,e)})),d.setDpr=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void d.event.apply(d,["resize"].concat(n))||d},d.setSize=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void d.event.apply(d,["resize"].concat(n))||d},d.setFrame=function(e){return void d.frame.mount(e)||d},d.setMount=function(e){return void d.event.mount({mount:e})||d},d.setClean=function(e){return void d.event.mount({clean:e})||d},d.setUniform=n.durable((function(e,n,t){void 0===t&&(t=!1);var r=d.uniformType(e,n,t);d.setFrame(t?function(){return d.gl[r](d.location(e),!1,n)}:function(){return d.gl[r](d.location(e),n)})}),d),d.setAttribute=n.durable((function(e,n,t){d.setFrame((function(){var r=d.gl,i=d.stride(e,n),o=d.location(e,!0);r.bindBuffer(r.ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array(n),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),t}}(r,n)),r.enableVertexAttribArray(o),r.vertexAttribPointer(o,i,r.FLOAT,!1,0,0),t&&r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(n),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),t}}(r,t))}))}),d),d.setTexture=n.durable((function(e,n){var t=new Image;t.addEventListener("load",d.event.on("load"),!1),Object.assign(t,{src:n,alt:e,crossOrigin:"anonymous"})}),d),d}exports.default=i,exports.gl=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("refr"),t=require("reev");function n(e,t,n){var r=e.createShader(n);if(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.warn(e.getShaderInfoLog(r))}var r=function(e){return t.event({mount:function(t){var r=e.el=document.getElementById(e.id),o=e.gl=null==r?void 0:r.getContext("webgl"),i=n(o,e.frag,null==o?void 0:o.FRAGMENT_SHADER),u=n(o,e.vert,null==o?void 0:o.VERTEX_SHADER);e.pg=function(e,t,n){var r=e.createProgram();return e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?(e.useProgram(r),r):(console.log(e.getProgramInfoLog(r)),null)}(o,u,i),window.addEventListener("resize",t.on("resize")),window.addEventListener("mousemove",t.on("mousemove")),t("resize"),e.frame()},clean:function(e){window.removeEventListener("resize",e.on("resize")),window.removeEventListener("mousemove",e.on("mousemove"))},mousemove:function(t,n){var r=n.clientX,o=n.clientY,i=e.size,u=i[0],a=i[1];e.mouse[0]=(r-u/2)/(u/2),e.mouse[1]=-(o-a/2)/(a/2),e.setUniform("mouse",e.mouse)},resize:function(t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=0),e.size[0]=e.el.width=r||window.innerWidth,e.size[1]=e.el.height=o||window.innerHeight,e.setUniform("resolution",e.size)},load:function(t,n){e.setFrame((function(){var t=n.path[0],r=e.activeUnit(t.alt),o=e.location(t.alt),i=function(e,t){var n=e.createTexture();return e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),n}(e.gl,t);e.setFrame((function(){return e.gl.uniform1i(o,r),e.gl.activeTexture(e.gl["TEXTURE"+r]),e.gl.bindTexture(e.gl.TEXTURE_2D,i),!0}))}))}})},o={id:"myCanvas",frag:"",vert:"",size:[0,0],mouse:[0,0],count:1e3},i=function(n){var i=function e(t){if(void 0===t&&(t=""),"function"==typeof t)return e.frame.mount(t)},u=i.event=r(i),a=i.frame=e.frame();return i.lastActiveUnit=0,i.activeUnit=t.nested((function(){return i.lastActiveUnit++})),i.stride=t.nested((function(e,t,n){var r=(null==n?void 0:n.length)||i.count;return t.length/r<<0})),i.uniformType=t.nested((function(e,t,n){return void 0===n&&(n=!1),"number"==typeof t?"uniform1f":n?"uniformMatrix"+(Math.sqrt(t.length)<<0)+"fv":"uniform"+t.length+"fv"})),i.location=t.nested((function(e,t){var n,r;return void 0===t&&(t=!1),t?null==(n=i.gl)?void 0:n.getAttribLocation(i.pg,e):null==(r=i.gl)?void 0:r.getUniformLocation(i.pg,e)})),i.setDpr=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return void u.apply(void 0,["resize"].concat(t))||i},i.setSize=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return void u.apply(void 0,["resize"].concat(t))||i},i.setFrame=function(e){return void a.mount(e)||i},i.setMount=function(e){return void u.mount({mount:e})||i},i.setClean=function(e){return void u.mount({clean:e})||i},i.setConfig=t.durable((function(e,t){i[e]=t||o[e]}),i),"string"==typeof n&&(n={id:n}),"object"==typeof n&&i.setConfig(n),i.setUniform=t.durable((function(e,t,n){void 0===n&&(n=!1);var r=i.uniformType(e,t,n);i.setFrame(n?function(){return i.gl[r](i.location(e),!1,t)}:function(){return i.gl[r](i.location(e),t)})}),i),i.setAttribute=t.durable((function(e,t,n){i.setFrame((function(){var r=i.gl,o=i.stride(e,t,n),u=i.location(e,!0);r.bindBuffer(r.ARRAY_BUFFER,function(e,t){if(t){var n=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,new Float32Array(t),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),n}}(r,t)),r.enableVertexAttribArray(u),r.vertexAttribPointer(u,o,r.FLOAT,!1,0,0),n&&r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,function(e,t){if(t){var n=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(t),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),n}}(r,n))}))}),i),i.setTexture=t.durable((function(e,t){var n=new Image;n.addEventListener("load",u.on("load"),!1),Object.assign(n,{src:t,alt:e,crossOrigin:"anonymous"})}),i),i};exports.default=i,exports.defaultConfig=o,exports.gl=i;
package/index.develop.js CHANGED
@@ -1 +1 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("refr"),require("reev")):"function"==typeof define&&define.amd?define(["exports","refr","reev"],n):n(((e="undefined"!=typeof globalThis?globalThis:e||self).index=e.index||{},e.index.ts={}),e.refr,e.reev)}(this,(function(e,n,t){"use strict";function r(e,n,t){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.warn(e.getShaderInfoLog(r))}var i=function(e){return t.event({mount:function(n){var t=e.el=document.getElementById(e.id),i=e.gl=null==t?void 0:t.getContext("webgl"),o=r(i,e.frag,null==i?void 0:i.FRAGMENT_SHADER),u=r(i,e.vert,null==i?void 0:i.VERTEX_SHADER);e.pg=function(e,n,t){var r=e.createProgram();return e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?(e.useProgram(r),r):(console.log(e.getProgramInfoLog(r)),null)}(i,u,o),window.addEventListener("resize",n.on("resize")),window.addEventListener("mousemove",n.on("mousemove")),n("resize"),e.frame()},clean:function(e){window.removeEventListener("resize",e.on("resize")),window.removeEventListener("mousemove",e.on("mousemove"))},mousemove:function(n,t){var r=t.clientX,i=t.clientY,o=e.size,u=o[0],a=o[1];e.mouse[0]=(r-u/2)/(u/2),e.mouse[1]=-(i-a/2)/(a/2),e.setUniform("mouse",e.mouse)},resize:function(n,t,r,i){void 0===r&&(r=0),void 0===i&&(i=0),e.size[0]=e.el.width=r||window.innerWidth,e.size[1]=e.el.height=i||window.innerHeight,e.setUniform("resolution",e.size)},load:function(n,t){e.setFrame((function(){var n=t.path[0],r=e.activeUnit(n.alt),i=e.location(n.alt),o=function(e,n){var t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n),e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),t}(e.gl,n);e.setFrame((function(){return e.gl.uniform1i(i,r),e.gl.activeTexture(e.gl["TEXTURE"+r]),e.gl.bindTexture(e.gl.TEXTURE_2D,o),!0}))}))}})};function o(e){var r,o,u,a,f,l,d,s,c;void 0===e&&(e={});var v=function e(n){if(void 0===n&&(n=""),"function"==typeof n)return e.frame.mount(n)};return v.id=null!=(r=e.id)?r:"myCanvas",v.size=null!=(o=e.size)?o:[0,0],v.mouse=null!=(u=e.mouse)?u:[0,0],v.count=null!=(a=e.count)?a:1e3,v.frag=null!=(f=null!=(l=e.frag)?l:e.fragShader)?f:"",v.vert=null!=(d=null!=(s=e.vert)?s:e.vertShader)?d:"",v.lastActiveUnit=null!=(c=e.lastActiveUnit)?c:0,v.event=i(v),v.frame=n.frame(),v.stride=t.nested((function(e,n){return void 0===n&&(n=[]),n.length/v.count<<0})),v.activeUnit=t.nested((function(){return v.lastActiveUnit++})),v.uniformType=t.nested((function(e,n,t){return void 0===n&&(n=[]),void 0===t&&(t=!1),"number"==typeof n?"uniform1f":t?"uniformMatrix"+(Math.sqrt(n.length)<<0)+"fv":"uniform"+n.length+"fv"})),v.location=t.nested((function(e,n){var t,r;return void 0===n&&(n=!1),n?null==(t=v.gl)?void 0:t.getAttribLocation(v.pg,e):null==(r=v.gl)?void 0:r.getUniformLocation(v.pg,e)})),v.setDpr=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void v.event.apply(v,["resize"].concat(n))||v},v.setSize=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void v.event.apply(v,["resize"].concat(n))||v},v.setFrame=function(e){return void v.frame.mount(e)||v},v.setMount=function(e){return void v.event.mount({mount:e})||v},v.setClean=function(e){return void v.event.mount({clean:e})||v},v.setUniform=t.durable((function(e,n,t){void 0===t&&(t=!1);var r=v.uniformType(e,n,t);v.setFrame(t?function(){return v.gl[r](v.location(e),!1,n)}:function(){return v.gl[r](v.location(e),n)})}),v),v.setAttribute=t.durable((function(e,n,t){v.setFrame((function(){var r=v.gl,i=v.stride(e,n),o=v.location(e,!0);r.bindBuffer(r.ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array(n),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),t}}(r,n)),r.enableVertexAttribArray(o),r.vertexAttribPointer(o,i,r.FLOAT,!1,0,0),t&&r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(n),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),t}}(r,t))}))}),v),v.setTexture=t.durable((function(e,n){var t=new Image;t.addEventListener("load",v.event.on("load"),!1),Object.assign(t,{src:n,alt:e,crossOrigin:"anonymous"})}),v),v}e.default=o,e.gl=o,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("refr"),require("reev")):"function"==typeof define&&define.amd?define(["exports","refr","reev"],n):n(((e="undefined"!=typeof globalThis?globalThis:e||self).index=e.index||{},e.index.ts={}),e.refr,e.reev)}(this,(function(e,n,t){"use strict";function r(e,n,t){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.warn(e.getShaderInfoLog(r))}var i=function(e){return t.event({mount:function(n){var t=e.el=document.getElementById(e.id),i=e.gl=null==t?void 0:t.getContext("webgl"),o=r(i,e.frag,null==i?void 0:i.FRAGMENT_SHADER),u=r(i,e.vert,null==i?void 0:i.VERTEX_SHADER);e.pg=function(e,n,t){var r=e.createProgram();return e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?(e.useProgram(r),r):(console.log(e.getProgramInfoLog(r)),null)}(i,u,o),window.addEventListener("resize",n.on("resize")),window.addEventListener("mousemove",n.on("mousemove")),n("resize"),e.frame()},clean:function(e){window.removeEventListener("resize",e.on("resize")),window.removeEventListener("mousemove",e.on("mousemove"))},mousemove:function(n,t){var r=t.clientX,i=t.clientY,o=e.size,u=o[0],a=o[1];e.mouse[0]=(r-u/2)/(u/2),e.mouse[1]=-(i-a/2)/(a/2),e.setUniform("mouse",e.mouse)},resize:function(n,t,r,i){void 0===r&&(r=0),void 0===i&&(i=0),e.size[0]=e.el.width=r||window.innerWidth,e.size[1]=e.el.height=i||window.innerHeight,e.setUniform("resolution",e.size)},load:function(n,t){e.setFrame((function(){var n=t.path[0],r=e.activeUnit(n.alt),i=e.location(n.alt),o=function(e,n){var t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n),e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),t}(e.gl,n);e.setFrame((function(){return e.gl.uniform1i(i,r),e.gl.activeTexture(e.gl["TEXTURE"+r]),e.gl.bindTexture(e.gl.TEXTURE_2D,o),!0}))}))}})},o={id:"myCanvas",frag:"",vert:"",size:[0,0],mouse:[0,0],count:1e3},u=function(e){var r=function e(n){if(void 0===n&&(n=""),"function"==typeof n)return e.frame.mount(n)},u=r.event=i(r),a=r.frame=n.frame();return r.lastActiveUnit=0,r.activeUnit=t.nested((function(){return r.lastActiveUnit++})),r.stride=t.nested((function(e,n,t){var i=(null==t?void 0:t.length)||r.count;return n.length/i<<0})),r.uniformType=t.nested((function(e,n,t){return void 0===t&&(t=!1),"number"==typeof n?"uniform1f":t?"uniformMatrix"+(Math.sqrt(n.length)<<0)+"fv":"uniform"+n.length+"fv"})),r.location=t.nested((function(e,n){var t,i;return void 0===n&&(n=!1),n?null==(t=r.gl)?void 0:t.getAttribLocation(r.pg,e):null==(i=r.gl)?void 0:i.getUniformLocation(r.pg,e)})),r.setDpr=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void u.apply(void 0,["resize"].concat(n))||r},r.setSize=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void u.apply(void 0,["resize"].concat(n))||r},r.setFrame=function(e){return void a.mount(e)||r},r.setMount=function(e){return void u.mount({mount:e})||r},r.setClean=function(e){return void u.mount({clean:e})||r},r.setConfig=t.durable((function(e,n){r[e]=n||o[e]}),r),"string"==typeof e&&(e={id:e}),"object"==typeof e&&r.setConfig(e),r.setUniform=t.durable((function(e,n,t){void 0===t&&(t=!1);var i=r.uniformType(e,n,t);r.setFrame(t?function(){return r.gl[i](r.location(e),!1,n)}:function(){return r.gl[i](r.location(e),n)})}),r),r.setAttribute=t.durable((function(e,n,t){r.setFrame((function(){var i=r.gl,o=r.stride(e,n,t),u=r.location(e,!0);i.bindBuffer(i.ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array(n),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),t}}(i,n)),i.enableVertexAttribArray(u),i.vertexAttribPointer(u,o,i.FLOAT,!1,0,0),t&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(n),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),t}}(i,t))}))}),r),r.setTexture=t.durable((function(e,n){var t=new Image;t.addEventListener("load",u.on("load"),!1),Object.assign(t,{src:n,alt:e,crossOrigin:"anonymous"})}),r),r};e.default=u,e.defaultConfig=o,e.gl=u,Object.defineProperty(e,"__esModule",{value:!0})}));
package/index.js CHANGED
@@ -1 +1 @@
1
- import{frame as e}from"refr";import{event as n,nested as t,durable as r}from"reev";function o(e,n,t){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.warn(e.getShaderInfoLog(r))}var i=function(e){return n({mount:function(n){var t=e.el=document.getElementById(e.id),r=e.gl=null==t?void 0:t.getContext("webgl"),i=o(r,e.frag,null==r?void 0:r.FRAGMENT_SHADER),u=o(r,e.vert,null==r?void 0:r.VERTEX_SHADER);e.pg=function(e,n,t){var r=e.createProgram();return e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?(e.useProgram(r),r):(console.log(e.getProgramInfoLog(r)),null)}(r,u,i),window.addEventListener("resize",n.on("resize")),window.addEventListener("mousemove",n.on("mousemove")),n("resize"),e.frame()},clean:function(e){window.removeEventListener("resize",e.on("resize")),window.removeEventListener("mousemove",e.on("mousemove"))},mousemove:function(n,t){var r=t.clientX,o=t.clientY,i=e.size,u=i[0],a=i[1];e.mouse[0]=(r-u/2)/(u/2),e.mouse[1]=-(o-a/2)/(a/2),e.setUniform("mouse",e.mouse)},resize:function(n,t,r,o){void 0===r&&(r=0),void 0===o&&(o=0),e.size[0]=e.el.width=r||window.innerWidth,e.size[1]=e.el.height=o||window.innerHeight,e.setUniform("resolution",e.size)},load:function(n,t){e.setFrame((function(){var n=t.path[0],r=e.activeUnit(n.alt),o=e.location(n.alt),i=function(e,n){var t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n),e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),t}(e.gl,n);e.setFrame((function(){return e.gl.uniform1i(o,r),e.gl.activeTexture(e.gl["TEXTURE"+r]),e.gl.bindTexture(e.gl.TEXTURE_2D,i),!0}))}))}})};function u(n){var o,u,a,l,f,c,E,v,m;void 0===n&&(n={});var s=function e(n){if(void 0===n&&(n=""),"function"==typeof n)return e.frame.mount(n)};return s.id=null!=(o=n.id)?o:"myCanvas",s.size=null!=(u=n.size)?u:[0,0],s.mouse=null!=(a=n.mouse)?a:[0,0],s.count=null!=(l=n.count)?l:1e3,s.frag=null!=(f=null!=(c=n.frag)?c:n.fragShader)?f:"",s.vert=null!=(E=null!=(v=n.vert)?v:n.vertShader)?E:"",s.lastActiveUnit=null!=(m=n.lastActiveUnit)?m:0,s.event=i(s),s.frame=e(),s.stride=t((function(e,n){return void 0===n&&(n=[]),n.length/s.count<<0})),s.activeUnit=t((function(){return s.lastActiveUnit++})),s.uniformType=t((function(e,n,t){return void 0===n&&(n=[]),void 0===t&&(t=!1),"number"==typeof n?"uniform1f":t?"uniformMatrix"+(Math.sqrt(n.length)<<0)+"fv":"uniform"+n.length+"fv"})),s.location=t((function(e,n){var t,r;return void 0===n&&(n=!1),n?null==(t=s.gl)?void 0:t.getAttribLocation(s.pg,e):null==(r=s.gl)?void 0:r.getUniformLocation(s.pg,e)})),s.setDpr=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void s.event.apply(s,["resize"].concat(n))||s},s.setSize=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void s.event.apply(s,["resize"].concat(n))||s},s.setFrame=function(e){return void s.frame.mount(e)||s},s.setMount=function(e){return void s.event.mount({mount:e})||s},s.setClean=function(e){return void s.event.mount({clean:e})||s},s.setUniform=r((function(e,n,t){void 0===t&&(t=!1);var r=s.uniformType(e,n,t);s.setFrame(t?function(){return s.gl[r](s.location(e),!1,n)}:function(){return s.gl[r](s.location(e),n)})}),s),s.setAttribute=r((function(e,n,t){s.setFrame((function(){var r=s.gl,o=s.stride(e,n),i=s.location(e,!0);r.bindBuffer(r.ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array(n),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),t}}(r,n)),r.enableVertexAttribArray(i),r.vertexAttribPointer(i,o,r.FLOAT,!1,0,0),t&&r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(n),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),t}}(r,t))}))}),s),s.setTexture=r((function(e,n){var t=new Image;t.addEventListener("load",s.event.on("load"),!1),Object.assign(t,{src:n,alt:e,crossOrigin:"anonymous"})}),s),s}export{u as default,u as gl};
1
+ import{frame as e}from"refr";import{event as n,nested as t,durable as r}from"reev";function o(e,n,t){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS))return r;console.warn(e.getShaderInfoLog(r))}var i=function(e){return n({mount:function(n){var t=e.el=document.getElementById(e.id),r=e.gl=null==t?void 0:t.getContext("webgl"),i=o(r,e.frag,null==r?void 0:r.FRAGMENT_SHADER),a=o(r,e.vert,null==r?void 0:r.VERTEX_SHADER);e.pg=function(e,n,t){var r=e.createProgram();return e.attachShader(r,n),e.attachShader(r,t),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?(e.useProgram(r),r):(console.log(e.getProgramInfoLog(r)),null)}(r,a,i),window.addEventListener("resize",n.on("resize")),window.addEventListener("mousemove",n.on("mousemove")),n("resize"),e.frame()},clean:function(e){window.removeEventListener("resize",e.on("resize")),window.removeEventListener("mousemove",e.on("mousemove"))},mousemove:function(n,t){var r=t.clientX,o=t.clientY,i=e.size,a=i[0],u=i[1];e.mouse[0]=(r-a/2)/(a/2),e.mouse[1]=-(o-u/2)/(u/2),e.setUniform("mouse",e.mouse)},resize:function(n,t,r,o){void 0===r&&(r=0),void 0===o&&(o=0),e.size[0]=e.el.width=r||window.innerWidth,e.size[1]=e.el.height=o||window.innerHeight,e.setUniform("resolution",e.size)},load:function(n,t){e.setFrame((function(){var n=t.path[0],r=e.activeUnit(n.alt),o=e.location(n.alt),i=function(e,n){var t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n),e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),t}(e.gl,n);e.setFrame((function(){return e.gl.uniform1i(o,r),e.gl.activeTexture(e.gl["TEXTURE"+r]),e.gl.bindTexture(e.gl.TEXTURE_2D,i),!0}))}))}})},a={id:"myCanvas",frag:"",vert:"",size:[0,0],mouse:[0,0],count:1e3},u=function(n){var o=function e(n){if(void 0===n&&(n=""),"function"==typeof n)return e.frame.mount(n)},u=o.event=i(o),f=o.frame=e();return o.lastActiveUnit=0,o.activeUnit=t((function(){return o.lastActiveUnit++})),o.stride=t((function(e,n,t){var r=(null==t?void 0:t.length)||o.count;return n.length/r<<0})),o.uniformType=t((function(e,n,t){return void 0===t&&(t=!1),"number"==typeof n?"uniform1f":t?"uniformMatrix"+(Math.sqrt(n.length)<<0)+"fv":"uniform"+n.length+"fv"})),o.location=t((function(e,n){var t,r;return void 0===n&&(n=!1),n?null==(t=o.gl)?void 0:t.getAttribLocation(o.pg,e):null==(r=o.gl)?void 0:r.getUniformLocation(o.pg,e)})),o.setDpr=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void u.apply(void 0,["resize"].concat(n))||o},o.setSize=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return void u.apply(void 0,["resize"].concat(n))||o},o.setFrame=function(e){return void f.mount(e)||o},o.setMount=function(e){return void u.mount({mount:e})||o},o.setClean=function(e){return void u.mount({clean:e})||o},o.setConfig=r((function(e,n){o[e]=n||a[e]}),o),"string"==typeof n&&(n={id:n}),"object"==typeof n&&o.setConfig(n),o.setUniform=r((function(e,n,t){void 0===t&&(t=!1);var r=o.uniformType(e,n,t);o.setFrame(t?function(){return o.gl[r](o.location(e),!1,n)}:function(){return o.gl[r](o.location(e),n)})}),o),o.setAttribute=r((function(e,n,t){o.setFrame((function(){var r=o.gl,i=o.stride(e,n,t),a=o.location(e,!0);r.bindBuffer(r.ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array(n),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),t}}(r,n)),r.enableVertexAttribArray(a),r.vertexAttribPointer(a,i,r.FLOAT,!1,0,0),t&&r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,function(e,n){if(n){var t=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(n),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),t}}(r,t))}))}),o),o.setTexture=r((function(e,n){var t=new Image;t.addEventListener("load",u.on("load"),!1),Object.assign(t,{src:n,alt:e,crossOrigin:"anonymous"})}),o),o};export{u as default,a as defaultConfig,u as gl};
package/index.ts CHANGED
@@ -1,33 +1,33 @@
1
1
  import { frame } from 'refr'
2
- import { nested, durable } from 'reev'
3
2
  import { glEvent } from './events'
3
+ import { durable, nested } from 'reev'
4
4
  import { createVbo, createIbo } from './utils'
5
5
  import type { GL, GLConfig } from './types'
6
6
 
7
- export * from './types'
8
-
9
- export default gl
7
+ export const defaultConfig: GLConfig = {
8
+ id: 'myCanvas',
9
+ frag: '', // @TODO feat: add default fragment shader
10
+ vert: '', // @TODO feat: add default vertex shader
11
+ size: [0, 0],
12
+ mouse: [0, 0],
13
+ count: 1000,
14
+ }
10
15
 
11
- export function gl(config: GLConfig = {}) {
16
+ export const gl = (config?: string | Partial<GLConfig>) => {
12
17
  const self = ((arg = '') => {
13
- if (typeof arg === 'function') return self.frame.mount(arg)
18
+ if (typeof arg === 'function') return self.frame.mount(arg)
14
19
  }) as GL
15
20
 
16
- // initial value
17
- self.id = config.id ?? 'myCanvas'
18
- self.size = config.size ?? [0, 0]
19
- self.mouse = config.mouse ?? [0, 0]
20
- self.count = config.count ?? 1000
21
- self.frag = config.frag ?? config.fragShader ?? ''
22
- self.vert = config.vert ?? config.vertShader ?? ''
23
- self.lastActiveUnit = config.lastActiveUnit ?? 0
24
-
25
21
  // core state
26
- self.event = glEvent(self)
27
- self.frame = frame()
28
- self.stride = nested((_key, value: any = []) => (value.length / self.count) << 0)
22
+ const ev = (self.event = glEvent(self))
23
+ const fr = (self.frame = frame())
24
+ self.lastActiveUnit = 0
29
25
  self.activeUnit = nested(() => self.lastActiveUnit++)
30
- self.uniformType = nested((_key, value: any = [], isMatrix = false) => {
26
+ self.stride = nested((_key, value, iboValue) => {
27
+ const count = iboValue?.length || self.count
28
+ return (value.length / count) << 0
29
+ })
30
+ self.uniformType = nested((_key, value, isMatrix = false) => {
31
31
  if (typeof value === 'number') return `uniform1f`
32
32
  if (!isMatrix) return `uniform${value.length}fv`
33
33
  else return `uniformMatrix${Math.sqrt(value.length) << 0}fv`
@@ -39,11 +39,19 @@ export function gl(config: GLConfig = {}) {
39
39
  })
40
40
 
41
41
  // setter
42
- self.setDpr = (...args) => void self.event('resize', ...args) || self
43
- self.setSize = (...args) => void self.event('resize', ...args) || self
44
- self.setFrame = (frame) => void self.frame.mount(frame) || self
45
- self.setMount = (mount) => void self.event.mount({ mount }) || self
46
- self.setClean = (clean) => void self.event.mount({ clean }) || self
42
+ self.setDpr = (...args) => void ev('resize', ...args) || self
43
+ self.setSize = (...args) => void ev('resize', ...args) || self
44
+ self.setFrame = (frame) => void fr.mount(frame) || self
45
+ self.setMount = (mount) => void ev.mount({ mount }) || self
46
+ self.setClean = (clean) => void ev.mount({ clean }) || self
47
+
48
+ // config
49
+ self.setConfig = durable((key, value) => {
50
+ self[key] = value || defaultConfig[key]
51
+ }, self)
52
+
53
+ if (typeof config === "string") config = { id: config }
54
+ if (typeof config === "object") self.setConfig(config)
47
55
 
48
56
  // uniform
49
57
  self.setUniform = durable((key, value, isMatrix = false) => {
@@ -57,7 +65,7 @@ export function gl(config: GLConfig = {}) {
57
65
  self.setAttribute = durable((key, value, iboValue) => {
58
66
  self.setFrame(() => {
59
67
  const { gl } = self
60
- const stride = self.stride(key, value)
68
+ const stride = self.stride(key, value, iboValue)
61
69
  const location = self.location(key, true)
62
70
  gl.bindBuffer(gl.ARRAY_BUFFER, createVbo(gl, value))
63
71
  gl.enableVertexAttribArray(location)
@@ -70,9 +78,13 @@ export function gl(config: GLConfig = {}) {
70
78
  // texture
71
79
  self.setTexture = durable((key, src) => {
72
80
  const image = new Image()
73
- image.addEventListener('load', self.event.on('load'), false)
81
+ image.addEventListener('load', ev.on('load'), false)
74
82
  Object.assign(image, { src, alt: key, crossOrigin: 'anonymous' })
75
83
  }, self)
76
84
 
77
85
  return self
78
86
  }
87
+
88
+ export default gl
89
+
90
+
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "glre",
3
3
  "author": "tseijp",
4
4
  "license": "MIT",
5
- "version": "0.1.0",
5
+ "version": "0.2.0",
6
6
  "module": "index.js",
7
7
  "types": "index.ts",
8
8
  "main": "index.cjs.js",
package/types.ts CHANGED
@@ -32,7 +32,7 @@ export interface GL {
32
32
  el: any
33
33
  event: Event
34
34
  frame: Frame
35
- stride: Nested<number>
35
+ stride: Nested<number> // @TODO Nested<(key: string, value: number: number[], ibo: number[]) => number>
36
36
  location: Nested<any>
37
37
  activeUnit: Nested<number>
38
38
  uniformType: Nested<string>
@@ -45,18 +45,35 @@ export interface GL {
45
45
  setMount(frame: Fun): GL
46
46
  setClean(frame: Fun): GL
47
47
  setUniform(key: string, value: Uniform): GL
48
- setAttribute(key: string, value: Attribute, iboValue?: Attribute): GL
49
48
  setTexture(key: string, value: string): GL
49
+ setAttribute(key: string, value: Attribute, iboValue?: Attribute): GL
50
+ setConfig<K extends keyof GLConfig>(key: K, value: GLConfig[K]): GL
51
+ // setUniform: Durable<(
52
+ // key: string,
53
+ // value: Uniform,
54
+ // isMatrix: boolean
55
+ // ) => GL>,
56
+ // setTexture: Durable<(
57
+ // key: string,
58
+ // value: string,
59
+ // activeUnit: number
60
+ // ) => GL>,
61
+ // setAttribute: Durable<(
62
+ // key: string,
63
+ // value: Attribute,
64
+ // iboValue: Attribute
65
+ // ) => GL>,
66
+ // setConfig: Durable<<K extends keyof GLConfig>(
67
+ // key: K,
68
+ // value: GLConfig[K]
69
+ // ) => GL>,
50
70
  }
51
71
 
52
72
  export interface GLConfig {
53
- id?: string
54
- size?: [number, number]
55
- mouse?: [number, number]
56
- count?: number
57
- frag?: string
58
- vert?: string
59
- fragShader?: string
60
- vertShader?: string
61
- lastActiveUnit?: number
73
+ id: string
74
+ frag: string
75
+ vert: string
76
+ size: [number, number]
77
+ mouse: [number, number]
78
+ count: number
62
79
  }