glre 0.16.0 → 0.17.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/utils.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * utils
3
3
  */
4
- export function uniformType(value: number | number[], isMatrix = false) {
4
+ export const uniformType = (value: number | number[], isMatrix = false) => {
5
5
  let length = typeof value === 'number' ? 0 : value?.length
6
6
  if (!length) return `uniform1f`
7
7
  if (!isMatrix) return `uniform${length}fv`
@@ -9,11 +9,11 @@ export function uniformType(value: number | number[], isMatrix = false) {
9
9
  return `uniformMatrix${length}fv`
10
10
  }
11
11
 
12
- export function vertexStride(
12
+ export const vertexStride = (
13
13
  count: number,
14
14
  value: number[],
15
15
  iboValue?: number[]
16
- ) {
16
+ ) => {
17
17
  if (iboValue) count = Math.max(...iboValue) + 1
18
18
  const stride = value.length / count
19
19
  if (stride !== stride << 0)
@@ -24,7 +24,7 @@ export function vertexStride(
24
24
  /**
25
25
  * graphics
26
26
  */
27
- export function createShader(gl: any, source: string, type: unknown) {
27
+ export const createShader = (gl: any, source: string, type: unknown) => {
28
28
  const shader = gl.createShader(type)
29
29
  gl.shaderSource(shader, source)
30
30
  gl.compileShader(shader)
@@ -33,7 +33,7 @@ export function createShader(gl: any, source: string, type: unknown) {
33
33
  } else throw 'Could not compile glsl\n\n' + gl.getShaderInfoLog(shader)
34
34
  }
35
35
 
36
- export function createProgram(gl: any, vs: any, fs: any) {
36
+ export const createProgram = (gl: any, vs: any, fs: any) => {
37
37
  const program = gl.createProgram()
38
38
  gl.attachShader(program, vs)
39
39
  gl.attachShader(program, fs)
@@ -47,7 +47,7 @@ export function createProgram(gl: any, vs: any, fs: any) {
47
47
  }
48
48
  }
49
49
 
50
- export function createTfProgram(gl: any, vs: any, fs: any, varyings?: any) {
50
+ export const createTfProgram = (gl: any, vs: any, fs: any, varyings?: any) => {
51
51
  const pg = gl.createProgram()
52
52
  gl.attachShader(pg, vs)
53
53
  gl.attachShader(pg, fs)
@@ -62,7 +62,7 @@ export function createTfProgram(gl: any, vs: any, fs: any, varyings?: any) {
62
62
  }
63
63
  }
64
64
 
65
- export function createVbo(gl: any, data: number[]) {
65
+ export const createVbo = (gl: any, data: number[]) => {
66
66
  if (!data) return
67
67
  const vbo = gl.createBuffer()
68
68
  gl.bindBuffer(gl.ARRAY_BUFFER, vbo)
@@ -71,7 +71,7 @@ export function createVbo(gl: any, data: number[]) {
71
71
  return vbo
72
72
  }
73
73
 
74
- export function createIbo(gl: any, data?: number[]) {
74
+ export const createIbo = (gl: any, data?: number[]) => {
75
75
  if (!data) return
76
76
  const ibo = gl.createBuffer()
77
77
  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibo)
@@ -84,20 +84,20 @@ export function createIbo(gl: any, data?: number[]) {
84
84
  return ibo
85
85
  }
86
86
 
87
- export function createAttribute(
87
+ export const createAttribute = (
88
88
  gl: any,
89
89
  stride: number,
90
90
  location: any,
91
91
  vbo: any,
92
92
  ibo: any
93
- ) {
93
+ ) => {
94
94
  gl.bindBuffer(gl.ARRAY_BUFFER, vbo)
95
95
  gl.enableVertexAttribArray(location)
96
96
  gl.vertexAttribPointer(location, stride, gl.FLOAT, false, 0, 0)
97
97
  if (ibo) gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibo)
98
98
  }
99
99
 
100
- export function createFramebuffer(gl: any, width: number, height: number) {
100
+ export const createFramebuffer = (gl: any, width: number, height: number) => {
101
101
  const frameBuffer = gl.createFramebuffer()
102
102
  gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer)
103
103
  const renderBuffer = gl.createRenderbuffer()
@@ -144,12 +144,12 @@ export function createFramebuffer(gl: any, width: number, height: number) {
144
144
  return { frameBuffer, renderBuffer, texture }
145
145
  }
146
146
 
147
- export function createFramebufferFloat(
147
+ export const createFramebufferFloat = (
148
148
  gl: any,
149
149
  ext: any,
150
150
  width: number,
151
151
  height: number
152
- ) {
152
+ ) => {
153
153
  const flg =
154
154
  ext.textureFloat != null
155
155
  ? gl.FLOAT
@@ -185,7 +185,7 @@ export function createFramebufferFloat(
185
185
  return { frameBuffer, texture }
186
186
  }
187
187
 
188
- export function createTexture(gl: any, img: any) {
188
+ export const createTexture = (gl: any, img: any) => {
189
189
  const texture = gl.createTexture()
190
190
  gl.bindTexture(gl.TEXTURE_2D, texture)
191
191
  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img)
@@ -198,12 +198,12 @@ export function createTexture(gl: any, img: any) {
198
198
  return texture
199
199
  }
200
200
 
201
- export function activeTexture(
201
+ export const activeTexture = (
202
202
  gl: any,
203
203
  location: any,
204
204
  activeUnit: any,
205
205
  texture: any
206
- ) {
206
+ ) => {
207
207
  gl.uniform1i(location, activeUnit)
208
208
  gl.activeTexture(gl['TEXTURE' + activeUnit])
209
209
  gl.bindTexture(gl.TEXTURE_2D, texture)
package/index.cjs.js DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("reev"),r=require("refr");function t(e,r,t){var n=e.createShader(t);if(e.shaderSource(n,r),e.compileShader(n),e.getShaderParameter(n,e.COMPILE_STATUS))return n;throw"Could not compile glsl\n\n"+e.getShaderInfoLog(n)}var n=[-1,-1,1,-1,-1,1,-1,1,1,-1,1,1],i=performance.now(),o=0,a=0,u=function(u){var f=e.event({vertex:"\n attribute vec4 a_position;\n void main() {\n gl_Position = a_position;\n }\n",fragment:"\n precision mediump float;\n uniform vec2 iResolution;\n void main() {\n gl_FragColor = vec4(fract(gl_FragCoord.xy / iResolution), 0, 1);\n }\n",size:[0,0],mouse:[0,0],count:6,counter:0,init:function(){f(u);var i=f.gl,o=f.vs||f.vert||f.vertex,a=f.fs||f.frag||f.fragment,l=t(i,o,i.VERTEX_SHADER),c=t(i,a,i.FRAGMENT_SHADER);6===f.count&&f.attribute({a_position:n}),r.frame((function(){return void f.render()||1})),f.pg=f.varying?function(e,r,t,n){var i=e.createProgram();return e.attachShader(i,r),e.attachShader(i,t),e.transformFeedbackVaryings(i,n,e.SEPARATE_ATTRIBS),e.linkProgram(i),e.getProgramParameter(i,e.LINK_STATUS)?(e.useProgram(i),i):(console.warn(e.getProgramInfoLog(i)),null)}(i,l,c,f.varying):function(e,r,t){var n=e.createProgram();return e.attachShader(n,r),e.attachShader(n,t),e.linkProgram(n),e.getProgramParameter(n,e.LINK_STATUS)?(e.useProgram(n),n):(console.log(e.getProgramInfoLog(n)),null)}(i,l,c),f.lastActiveUnit=0,f.activeUnit=e.nested((function(){return f.lastActiveUnit++})),f.location=e.nested((function(e,r){return void 0===r&&(r=!1),r?null==i?void 0:i.getAttribLocation(f.pg,e):null==i?void 0:i.getUniformLocation(f.pg,e)}))},render:function(){f.gl.useProgram(f.pg),f.frame.flush(),o=i,i=performance.now()/1e3,a=i-o,f.uniform({iTime:i,iPrevTime:o,iDeltaTime:a})},_uniform:function(e,r,t){void 0===r&&(r=0),void 0===t&&(t=!1);var n=function(e,r){void 0===r&&(r=!1);var t="number"==typeof e?0:null==e?void 0:e.length;return t?r?"uniformMatrix"+(t=Math.sqrt(t)<<0)+"fv":"uniform"+t+"fv":"uniform1f"}(r,t);f.frame((function(){var i=f.location(e);t?f.gl[n](i,!1,r):f.gl[n](i,r)}))},_attribute:function(e,r,t){f.frame((function(){var n=f.location(e,!0),i=function(e,r){if(r){var t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),t}}(f.gl,r),o=function(e,r){if(r){var t=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(r),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),t}}(f.gl,t),a=function(e,r,t){t&&(e=Math.max.apply(Math,t)+1);var n=r.length/e;return n!==n<<0&&console.warn("Vertex Stride Error: count "+e+" is mismatch"),n<<0}(f.count,r,t);!function(e,r,t,n,i){e.bindBuffer(e.ARRAY_BUFFER,n),e.enableVertexAttribArray(t),e.vertexAttribPointer(t,r,e.FLOAT,!1,0,0),i&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,i)}(f.gl,a,n,i,o)}))},_texture:function(e,r,t){if(void 0===t&&(t="anonymous"),"undefined"!=typeof window){var n=new Image;n.addEventListener("load",(function(e){return f.load(e,n)}),!1),Object.assign(n,{src:r,alt:e,crossOrigin:t})}},resize:function(e,r,t){void 0===r&&(r=f.width||window.innerWidth),void 0===t&&(t=f.height||window.innerHeight),f.size[0]=f.el.width=r,f.size[1]=f.el.height=t,f.uniform("iResolution",f.size)},mousemove:function(e,r,t){void 0===r&&(r=e.clientX),void 0===t&&(t=e.clientY);var n=f.size,i=n[0],o=n[1],a=f.el.getBoundingClientRect(),u=a.top,l=a.left;f.mouse[0]=(r-u-i/2)/(i/2),f.mouse[1]=-(t-l-o/2)/(o/2),f.uniform("iMouse",f.mouse)},load:function(e,r){f.frame((function(){var e=f.location(r.alt),t=f.activeUnit(r.alt),n=function(e,r){var t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r),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}(f.gl,r);f.frame((function(){return function(e,r,t,n){e.uniform1i(r,t),e.activeTexture(e["TEXTURE"+t]),e.bindTexture(e.TEXTURE_2D,n)}(f.gl,e,t,n),!0}))}))},clear:function(e){void 0===e&&(e="COLOR_BUFFER_BIT"),f.gl.clear(f.gl[e])},viewport:function(e){var r;void 0===e&&(e=f.size),(r=f.gl).viewport.apply(r,[0,0].concat(e))},drawArrays:function(e){void 0===e&&(e="TRIANGLES"),f.gl.drawArrays(f.gl[e],0,f.count)},drawElements:function(e,r){void 0===e&&(e="TRIANGLES"),void 0===r&&(r="UNSIGNED_SHORT"),e=f.gl[e],r=f.gl[r],f.gl.drawElements(e,f.count,r,0)}});return f.frame=r.queue(),f.texture=e.durable(f._texture),f.uniform=e.durable(f._uniform),f.attribute=e.durable(f._attribute),f},f=u(),l=self;exports.createGL=u,exports.createTF=function(e,r){void 0===r&&(r=f);var t=u();return t({mount:function(){t(e),t.el=r.el,t.gl=r.gl,t.frame=r.frame,t.init(),r({resize:t.resize,mousemove:t.mousemove})},clean:function(){t(e),r({resize:t.resize,mousemove:t.mousemove})}}),t},exports.default=l,exports.gl=f;
package/index.develop.js DELETED
@@ -1 +0,0 @@
1
- !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("reev"),require("refr")):"function"==typeof define&&define.amd?define(["exports","reev","refr"],r):r(((e="undefined"!=typeof globalThis?globalThis:e||self).index=e.index||{},e.index.ts={}),e.reev,e.refr)}(this,(function(e,r,n){"use strict";function t(e,r,n){var t=e.createShader(n);if(e.shaderSource(t,r),e.compileShader(t),e.getShaderParameter(t,e.COMPILE_STATUS))return t;throw"Could not compile glsl\n\n"+e.getShaderInfoLog(t)}var i=[-1,-1,1,-1,-1,1,-1,1,1,-1,1,1],o=performance.now(),a=0,u=0,f=function(e){var f=r.event({vertex:"\n attribute vec4 a_position;\n void main() {\n gl_Position = a_position;\n }\n",fragment:"\n precision mediump float;\n uniform vec2 iResolution;\n void main() {\n gl_FragColor = vec4(fract(gl_FragCoord.xy / iResolution), 0, 1);\n }\n",size:[0,0],mouse:[0,0],count:6,counter:0,init:function(){f(e);var o=f.gl,a=f.vs||f.vert||f.vertex,u=f.fs||f.frag||f.fragment,l=t(o,a,o.VERTEX_SHADER),c=t(o,u,o.FRAGMENT_SHADER);6===f.count&&f.attribute({a_position:i}),n.frame((function(){return void f.render()||1})),f.pg=f.varying?function(e,r,n,t){var i=e.createProgram();return e.attachShader(i,r),e.attachShader(i,n),e.transformFeedbackVaryings(i,t,e.SEPARATE_ATTRIBS),e.linkProgram(i),e.getProgramParameter(i,e.LINK_STATUS)?(e.useProgram(i),i):(console.warn(e.getProgramInfoLog(i)),null)}(o,l,c,f.varying):function(e,r,n){var t=e.createProgram();return e.attachShader(t,r),e.attachShader(t,n),e.linkProgram(t),e.getProgramParameter(t,e.LINK_STATUS)?(e.useProgram(t),t):(console.log(e.getProgramInfoLog(t)),null)}(o,l,c),f.lastActiveUnit=0,f.activeUnit=r.nested((function(){return f.lastActiveUnit++})),f.location=r.nested((function(e,r){return void 0===r&&(r=!1),r?null==o?void 0:o.getAttribLocation(f.pg,e):null==o?void 0:o.getUniformLocation(f.pg,e)}))},render:function(){f.gl.useProgram(f.pg),f.frame.flush(),a=o,o=performance.now()/1e3,u=o-a,f.uniform({iTime:o,iPrevTime:a,iDeltaTime:u})},_uniform:function(e,r,n){void 0===r&&(r=0),void 0===n&&(n=!1);var t=function(e,r){void 0===r&&(r=!1);var n="number"==typeof e?0:null==e?void 0:e.length;return n?r?"uniformMatrix"+(n=Math.sqrt(n)<<0)+"fv":"uniform"+n+"fv":"uniform1f"}(r,n);f.frame((function(){var i=f.location(e);n?f.gl[t](i,!1,r):f.gl[t](i,r)}))},_attribute:function(e,r,n){f.frame((function(){var t=f.location(e,!0),i=function(e,r){if(r){var n=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),n}}(f.gl,r),o=function(e,r){if(r){var n=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(r),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),n}}(f.gl,n),a=function(e,r,n){n&&(e=Math.max.apply(Math,n)+1);var t=r.length/e;return t!==t<<0&&console.warn("Vertex Stride Error: count "+e+" is mismatch"),t<<0}(f.count,r,n);!function(e,r,n,t,i){e.bindBuffer(e.ARRAY_BUFFER,t),e.enableVertexAttribArray(n),e.vertexAttribPointer(n,r,e.FLOAT,!1,0,0),i&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,i)}(f.gl,a,t,i,o)}))},_texture:function(e,r,n){if(void 0===n&&(n="anonymous"),"undefined"!=typeof window){var t=new Image;t.addEventListener("load",(function(e){return f.load(e,t)}),!1),Object.assign(t,{src:r,alt:e,crossOrigin:n})}},resize:function(e,r,n){void 0===r&&(r=f.width||window.innerWidth),void 0===n&&(n=f.height||window.innerHeight),f.size[0]=f.el.width=r,f.size[1]=f.el.height=n,f.uniform("iResolution",f.size)},mousemove:function(e,r,n){void 0===r&&(r=e.clientX),void 0===n&&(n=e.clientY);var t=f.size,i=t[0],o=t[1],a=f.el.getBoundingClientRect(),u=a.top,l=a.left;f.mouse[0]=(r-u-i/2)/(i/2),f.mouse[1]=-(n-l-o/2)/(o/2),f.uniform("iMouse",f.mouse)},load:function(e,r){f.frame((function(){var e=f.location(r.alt),n=f.activeUnit(r.alt),t=function(e,r){var n=e.createTexture();return e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r),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}(f.gl,r);f.frame((function(){return function(e,r,n,t){e.uniform1i(r,n),e.activeTexture(e["TEXTURE"+n]),e.bindTexture(e.TEXTURE_2D,t)}(f.gl,e,n,t),!0}))}))},clear:function(e){void 0===e&&(e="COLOR_BUFFER_BIT"),f.gl.clear(f.gl[e])},viewport:function(e){var r;void 0===e&&(e=f.size),(r=f.gl).viewport.apply(r,[0,0].concat(e))},drawArrays:function(e){void 0===e&&(e="TRIANGLES"),f.gl.drawArrays(f.gl[e],0,f.count)},drawElements:function(e,r){void 0===e&&(e="TRIANGLES"),void 0===r&&(r="UNSIGNED_SHORT"),e=f.gl[e],r=f.gl[r],f.gl.drawElements(e,f.count,r,0)}});return f.frame=n.queue(),f.texture=r.durable(f._texture),f.uniform=r.durable(f._uniform),f.attribute=r.durable(f._attribute),f},l=f(),c=self;e.createGL=f,e.createTF=function(e,r){void 0===r&&(r=l);var n=f();return n({mount:function(){n(e),n.el=r.el,n.gl=r.gl,n.frame=r.frame,n.init(),r({resize:n.resize,mousemove:n.mousemove})},clean:function(){n(e),r({resize:n.resize,mousemove:n.mousemove})}}),n},e.default=c,e.gl=l,Object.defineProperty(e,"__esModule",{value:!0})}));
package/index.js DELETED
@@ -1 +0,0 @@
1
- import{event as e,nested as r,durable as n}from"reev";import{frame as t,queue as i}from"refr";function o(e,r,n){var t=e.createShader(n);if(e.shaderSource(t,r),e.compileShader(t),e.getShaderParameter(t,e.COMPILE_STATUS))return t;throw"Could not compile glsl\n\n"+e.getShaderInfoLog(t)}var a=[-1,-1,1,-1,-1,1,-1,1,1,-1,1,1],u=performance.now(),f=0,l=0,c=function(c){var m=e({vertex:"\n attribute vec4 a_position;\n void main() {\n gl_Position = a_position;\n }\n",fragment:"\n precision mediump float;\n uniform vec2 iResolution;\n void main() {\n gl_FragColor = vec4(fract(gl_FragCoord.xy / iResolution), 0, 1);\n }\n",size:[0,0],mouse:[0,0],count:6,counter:0,init:function(){m(c);var e=m.gl,n=m.vs||m.vert||m.vertex,i=m.fs||m.frag||m.fragment,u=o(e,n,e.VERTEX_SHADER),f=o(e,i,e.FRAGMENT_SHADER);6===m.count&&m.attribute({a_position:a}),t((function(){return void m.render()||1})),m.pg=m.varying?function(e,r,n,t){var i=e.createProgram();return e.attachShader(i,r),e.attachShader(i,n),e.transformFeedbackVaryings(i,t,e.SEPARATE_ATTRIBS),e.linkProgram(i),e.getProgramParameter(i,e.LINK_STATUS)?(e.useProgram(i),i):(console.warn(e.getProgramInfoLog(i)),null)}(e,u,f,m.varying):function(e,r,n){var t=e.createProgram();return e.attachShader(t,r),e.attachShader(t,n),e.linkProgram(t),e.getProgramParameter(t,e.LINK_STATUS)?(e.useProgram(t),t):(console.log(e.getProgramInfoLog(t)),null)}(e,u,f),m.lastActiveUnit=0,m.activeUnit=r((function(){return m.lastActiveUnit++})),m.location=r((function(r,n){return void 0===n&&(n=!1),n?null==e?void 0:e.getAttribLocation(m.pg,r):null==e?void 0:e.getUniformLocation(m.pg,r)}))},render:function(){m.gl.useProgram(m.pg),m.frame.flush(),f=u,u=performance.now()/1e3,l=u-f,m.uniform({iTime:u,iPrevTime:f,iDeltaTime:l})},_uniform:function(e,r,n){void 0===r&&(r=0),void 0===n&&(n=!1);var t=function(e,r){void 0===r&&(r=!1);var n="number"==typeof e?0:null==e?void 0:e.length;return n?r?"uniformMatrix"+(n=Math.sqrt(n)<<0)+"fv":"uniform"+n+"fv":"uniform1f"}(r,n);m.frame((function(){var i=m.location(e);n?m.gl[t](i,!1,r):m.gl[t](i,r)}))},_attribute:function(e,r,n){m.frame((function(){var t=m.location(e,!0),i=function(e,r){if(r){var n=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,n),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),n}}(m.gl,r),o=function(e,r){if(r){var n=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(r),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),n}}(m.gl,n),a=function(e,r,n){n&&(e=Math.max.apply(Math,n)+1);var t=r.length/e;return t!==t<<0&&console.warn("Vertex Stride Error: count "+e+" is mismatch"),t<<0}(m.count,r,n);!function(e,r,n,t,i){e.bindBuffer(e.ARRAY_BUFFER,t),e.enableVertexAttribArray(n),e.vertexAttribPointer(n,r,e.FLOAT,!1,0,0),i&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,i)}(m.gl,a,t,i,o)}))},_texture:function(e,r,n){if(void 0===n&&(n="anonymous"),"undefined"!=typeof window){var t=new Image;t.addEventListener("load",(function(e){return m.load(e,t)}),!1),Object.assign(t,{src:r,alt:e,crossOrigin:n})}},resize:function(e,r,n){void 0===r&&(r=m.width||window.innerWidth),void 0===n&&(n=m.height||window.innerHeight),m.size[0]=m.el.width=r,m.size[1]=m.el.height=n,m.uniform("iResolution",m.size)},mousemove:function(e,r,n){void 0===r&&(r=e.clientX),void 0===n&&(n=e.clientY);var t=m.size,i=t[0],o=t[1],a=m.el.getBoundingClientRect(),u=a.top,f=a.left;m.mouse[0]=(r-u-i/2)/(i/2),m.mouse[1]=-(n-f-o/2)/(o/2),m.uniform("iMouse",m.mouse)},load:function(e,r){m.frame((function(){var e=m.location(r.alt),n=m.activeUnit(r.alt),t=function(e,r){var n=e.createTexture();return e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r),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}(m.gl,r);m.frame((function(){return function(e,r,n,t){e.uniform1i(r,n),e.activeTexture(e["TEXTURE"+n]),e.bindTexture(e.TEXTURE_2D,t)}(m.gl,e,n,t),!0}))}))},clear:function(e){void 0===e&&(e="COLOR_BUFFER_BIT"),m.gl.clear(m.gl[e])},viewport:function(e){var r;void 0===e&&(e=m.size),(r=m.gl).viewport.apply(r,[0,0].concat(e))},drawArrays:function(e){void 0===e&&(e="TRIANGLES"),m.gl.drawArrays(m.gl[e],0,m.count)},drawElements:function(e,r){void 0===e&&(e="TRIANGLES"),void 0===r&&(r="UNSIGNED_SHORT"),e=m.gl[e],r=m.gl[r],m.gl.drawElements(e,m.count,r,0)}});return m.frame=i(),m.texture=n(m._texture),m.uniform=n(m._uniform),m.attribute=n(m._attribute),m},m=c(),E=function(e,r){void 0===r&&(r=m);var n=c();return n({mount:function(){n(e),n.el=r.el,n.gl=r.gl,n.frame=r.frame,n.init(),r({resize:n.resize,mousemove:n.mousemove})},clean:function(){n(e),r({resize:n.resize,mousemove:n.mousemove})}}),n},g=self;export{c as createGL,E as createTF,g as default,m as gl};