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/dist/index.d.ts +10 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +15 -0
- package/dist/index.mjs.map +1 -0
- package/dist/native.d.ts +66 -0
- package/dist/native.js +15 -0
- package/dist/native.js.map +1 -0
- package/dist/native.mjs +15 -0
- package/dist/native.mjs.map +1 -0
- package/dist/react.d.ts +66 -0
- package/dist/react.js +15 -0
- package/dist/react.js.map +1 -0
- package/dist/react.mjs +15 -0
- package/dist/react.mjs.map +1 -0
- package/dist/solid.d.ts +65 -0
- package/dist/solid.js +15 -0
- package/dist/solid.js.map +1 -0
- package/dist/solid.mjs +15 -0
- package/dist/solid.mjs.map +1 -0
- package/dist/types-20446758.d.ts +78 -0
- package/index.ts +142 -111
- package/native.ts +4 -4
- package/package.json +120 -22
- package/qwik.ts +6 -6
- package/react.ts +8 -15
- package/solid.ts +7 -6
- package/test/index.test.ts +5 -0
- package/test/utils.test.ts +43 -0
- package/tsup.config.ts +16 -0
- package/types.ts +0 -3
- package/utils.ts +16 -16
- package/index.cjs.js +0 -1
- package/index.develop.js +0 -1
- package/index.js +0 -1
package/utils.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* utils
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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};
|