micugl 0.0.9 → 0.0.10

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.
Files changed (84) hide show
  1. package/dist/core/index.d.ts +7 -0
  2. package/dist/core/lib/createShaderConfig.d.ts +16 -0
  3. package/dist/core/lib/vectorUtils.d.ts +8 -0
  4. package/dist/core/managers/FBOManager.d.ts +21 -0
  5. package/dist/core/managers/FBOManager.js +1 -0
  6. package/dist/core/managers/FBOManager.mjs +127 -0
  7. package/dist/core/managers/WebGLManager.d.ts +35 -0
  8. package/dist/core/managers/WebGLManager.js +1 -0
  9. package/dist/core/managers/WebGLManager.mjs +281 -0
  10. package/dist/core/systems/Passes.d.ts +11 -0
  11. package/dist/core/systems/Passes.js +1 -0
  12. package/dist/core/systems/Passes.mjs +84 -0
  13. package/dist/core/systems/Postprocessing.d.ts +31 -0
  14. package/dist/core/systems/Postprocessing.js +1 -0
  15. package/dist/core/systems/Postprocessing.mjs +135 -0
  16. package/dist/core.js +1 -0
  17. package/dist/core.mjs +20 -0
  18. package/dist/index.d.ts +3 -49
  19. package/dist/index.js +1 -1
  20. package/dist/index.mjs +14 -14
  21. package/dist/react/components/base/BasePingPongShaderComponent.d.ts +21 -0
  22. package/dist/react/components/base/BaseShaderComponent.d.ts +15 -0
  23. package/dist/react/components/engine/PingPongShaderEngine.d.ts +12 -0
  24. package/dist/react/components/engine/ShaderEngine.d.ts +18 -0
  25. package/dist/react/components/index.d.ts +0 -0
  26. package/dist/react/hooks/index.d.ts +3 -0
  27. package/dist/react/hooks/useDarkMode.d.ts +1 -0
  28. package/dist/react/hooks/usePingPongPasses.d.ts +21 -0
  29. package/dist/react/hooks/useUniformUpdaters.d.ts +4 -0
  30. package/dist/react/index.d.ts +8 -0
  31. package/dist/react/lib/createUniformUpdater.d.ts +8 -0
  32. package/dist/react.js +1 -0
  33. package/dist/react.mjs +20 -0
  34. package/dist/types.d.ts +164 -204
  35. package/package.json +6 -46
  36. package/dist/MarbleScene.d.ts +0 -27
  37. package/dist/RippleScene.d.ts +0 -20
  38. package/dist/examples/Marble/MarbleScene.d.ts +0 -20
  39. package/dist/examples/Marble/MarbleScene.js +0 -1
  40. package/dist/examples/Marble/MarbleScene.mjs +0 -71
  41. package/dist/examples/Marble/marbleShaders.d.ts +0 -2
  42. package/dist/examples/Marble/marbleShaders.js +0 -129
  43. package/dist/examples/Marble/marbleShaders.mjs +0 -139
  44. package/dist/examples/Ripple/RippleScene.d.ts +0 -13
  45. package/dist/examples/Ripple/RippleScene.js +0 -1
  46. package/dist/examples/Ripple/RippleScene.mjs +0 -109
  47. package/dist/examples/Ripple/rippleShaders.d.ts +0 -3
  48. package/dist/examples/Ripple/rippleShaders.js +0 -80
  49. package/dist/examples/Ripple/rippleShaders.mjs +0 -94
  50. package/dist/examples/index.d.ts +0 -4
  51. package/dist/examples/index.js +0 -1
  52. package/dist/examples/index.mjs +0 -13
  53. package/dist/marbleShaders.d.ts +0 -5
  54. package/dist/rippleShaders.d.ts +0 -7
  55. package/dist/src/core/managers/FBOManager.js +0 -1
  56. package/dist/src/core/managers/FBOManager.mjs +0 -120
  57. package/dist/src/core/managers/WebGLManager.js +0 -1
  58. package/dist/src/core/managers/WebGLManager.mjs +0 -273
  59. package/dist/src/core/systems/Passes.js +0 -1
  60. package/dist/src/core/systems/Passes.mjs +0 -78
  61. package/dist/src/core/systems/Postprocessing.js +0 -1
  62. package/dist/src/core/systems/Postprocessing.mjs +0 -128
  63. package/dist/types.js +0 -1
  64. package/dist/types.mjs +0 -1
  65. /package/dist/{src/core → core}/lib/createShaderConfig.js +0 -0
  66. /package/dist/{src/core → core}/lib/createShaderConfig.mjs +0 -0
  67. /package/dist/{src/core → core}/lib/vectorUtils.js +0 -0
  68. /package/dist/{src/core → core}/lib/vectorUtils.mjs +0 -0
  69. /package/dist/{src/react → react}/components/base/BasePingPongShaderComponent.js +0 -0
  70. /package/dist/{src/react → react}/components/base/BasePingPongShaderComponent.mjs +0 -0
  71. /package/dist/{src/react → react}/components/base/BaseShaderComponent.js +0 -0
  72. /package/dist/{src/react → react}/components/base/BaseShaderComponent.mjs +0 -0
  73. /package/dist/{src/react → react}/components/engine/PingPongShaderEngine.js +0 -0
  74. /package/dist/{src/react → react}/components/engine/PingPongShaderEngine.mjs +0 -0
  75. /package/dist/{src/react → react}/components/engine/ShaderEngine.js +0 -0
  76. /package/dist/{src/react → react}/components/engine/ShaderEngine.mjs +0 -0
  77. /package/dist/{src/react → react}/hooks/useDarkMode.js +0 -0
  78. /package/dist/{src/react → react}/hooks/useDarkMode.mjs +0 -0
  79. /package/dist/{src/react → react}/hooks/usePingPongPasses.js +0 -0
  80. /package/dist/{src/react → react}/hooks/usePingPongPasses.mjs +0 -0
  81. /package/dist/{src/react → react}/hooks/useUniformUpdaters.js +0 -0
  82. /package/dist/{src/react → react}/hooks/useUniformUpdaters.mjs +0 -0
  83. /package/dist/{src/react → react}/lib/createUniformUpdater.js +0 -0
  84. /package/dist/{src/react → react}/lib/createUniformUpdater.mjs +0 -0
@@ -0,0 +1,135 @@
1
+ var m = Object.defineProperty;
2
+ var w = (u, e, t) => e in u ? m(u, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : u[e] = t;
3
+ var h = (u, e, t) => w(u, typeof e != "symbol" ? e + "" : e, t);
4
+ class M {
5
+ constructor(e) {
6
+ h(this, "webglManager");
7
+ h(this, "effects", /* @__PURE__ */ new Map());
8
+ h(this, "chains", /* @__PURE__ */ new Map());
9
+ h(this, "defaultFramebufferOptions", {
10
+ width: 0,
11
+ height: 0,
12
+ textureCount: 2,
13
+ textureOptions: {
14
+ minFilter: WebGLRenderingContext.LINEAR,
15
+ magFilter: WebGLRenderingContext.LINEAR
16
+ }
17
+ });
18
+ this.webglManager = e;
19
+ }
20
+ registerEffect(e) {
21
+ this.effects.has(e.id) && console.warn(`Effect with id ${e.id} already exists, overwriting`), this.webglManager.resources.has(e.programId) || this.webglManager.createProgram(e.programId, e.shaderConfig), this.effects.set(e.id, e);
22
+ }
23
+ removeEffect(e) {
24
+ if (!this.effects.has(e)) {
25
+ console.warn(`Effect with id ${e} not found`);
26
+ return;
27
+ }
28
+ this.effects.delete(e);
29
+ }
30
+ createChain(e, t, r, s = null, i = this.defaultFramebufferOptions) {
31
+ this.chains.has(e) && console.warn(`Chain with id ${e} already exists, overwriting`);
32
+ const a = [];
33
+ for (const o of t) {
34
+ const f = this.effects.get(o);
35
+ if (!f)
36
+ throw new Error(`Effect with id ${o} not found`);
37
+ a.push(f);
38
+ }
39
+ const n = [];
40
+ for (let o = 0; o < a.length - 1; o++) {
41
+ const f = `${e}-intermediate-${o}`;
42
+ this.webglManager.fbo.createFramebuffer(f, i), n.push(f);
43
+ }
44
+ this.chains.set(e, {
45
+ id: e,
46
+ effects: a,
47
+ inputFramebufferId: r,
48
+ outputFramebufferId: s,
49
+ intermediateFramebufferIds: n
50
+ });
51
+ }
52
+ removeChain(e) {
53
+ const t = this.chains.get(e);
54
+ if (!t) {
55
+ console.warn(`Chain with id ${e} not found`);
56
+ return;
57
+ }
58
+ t.intermediateFramebufferIds.forEach((r) => {
59
+ this.webglManager.fbo.destroy(r);
60
+ }), this.chains.delete(e);
61
+ }
62
+ generatePasses(e, t) {
63
+ const r = this.chains.get(e);
64
+ if (!r)
65
+ throw new Error(`Chain with id ${e} not found`);
66
+ const s = [], i = r.effects.filter((a) => a.enabled);
67
+ return i.length === 0 ? [{
68
+ programId: "copy-shader",
69
+ inputTextures: [{
70
+ id: r.inputFramebufferId,
71
+ textureUnit: 0,
72
+ bindingType: "read"
73
+ }],
74
+ outputFramebuffer: r.outputFramebufferId,
75
+ renderOptions: { clear: !0 }
76
+ }] : (i.forEach((a, n) => {
77
+ const o = n === 0, f = n === i.length - 1, b = o ? r.inputFramebufferId : r.intermediateFramebufferIds[n - 1], l = f ? r.outputFramebufferId : r.intermediateFramebufferIds[n], d = {};
78
+ Object.entries(a.uniforms).forEach(([c, g]) => {
79
+ const p = c.startsWith("u_") ? c : `u_${c}`;
80
+ d[p] = {
81
+ type: g.type,
82
+ value: g.value
83
+ };
84
+ }), s.push({
85
+ programId: a.programId,
86
+ inputTextures: [{
87
+ id: b,
88
+ textureUnit: 0,
89
+ bindingType: "read"
90
+ }],
91
+ outputFramebuffer: l,
92
+ uniforms: d,
93
+ renderOptions: { clear: !0 }
94
+ });
95
+ }), s);
96
+ }
97
+ process(e, t) {
98
+ const r = this.generatePasses(e, t);
99
+ for (const s of r)
100
+ s.outputFramebuffer ? this.webglManager.fbo.bindFramebuffer(s.outputFramebuffer) : this.webglManager.fbo.bindFramebuffer(null), this.webglManager.prepareRender(s.programId, s.renderOptions), s.inputTextures.forEach((i) => {
101
+ this.webglManager.fbo.bindTexture(i.id, i.textureUnit), this.webglManager.setUniform(
102
+ s.programId,
103
+ `u_texture${i.textureUnit}`,
104
+ i.textureUnit,
105
+ "sampler2D"
106
+ );
107
+ }), s.uniforms && Object.entries(s.uniforms).forEach(([i, a]) => {
108
+ const n = typeof a.value == "function" ? a.value(t, this.webglManager.context.canvas.width, this.webglManager.context.canvas.height) : a.value;
109
+ this.webglManager.setUniform(
110
+ s.programId,
111
+ i,
112
+ n,
113
+ a.type
114
+ );
115
+ }), this.webglManager.context.drawArrays(
116
+ this.webglManager.context.TRIANGLE_STRIP,
117
+ 0,
118
+ 4
119
+ );
120
+ }
121
+ resizeFramebuffers(e, t) {
122
+ for (const r of this.chains.values())
123
+ for (const s of r.intermediateFramebufferIds)
124
+ this.webglManager.fbo.resizeFramebuffer(s, e, t);
125
+ }
126
+ destroyAll() {
127
+ for (const e of this.chains.values())
128
+ for (const t of e.intermediateFramebufferIds)
129
+ this.webglManager.fbo.destroy(t);
130
+ this.chains.clear(), this.effects.clear();
131
+ }
132
+ }
133
+ export {
134
+ M as Postprocessing
135
+ };
package/dist/core.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./core/lib/vectorUtils.js"),r=require("./core/lib/createShaderConfig.js"),a=require("./core/managers/FBOManager.js"),t=require("./core/managers/WebGLManager.js"),s=require("./core/systems/Passes.js"),c=require("./core/systems/Postprocessing.js");exports.createTypedFloat32Array=e.createTypedFloat32Array;exports.mat2=e.mat2;exports.mat3=e.mat3;exports.mat4=e.mat4;exports.vec2=e.vec2;exports.vec3=e.vec3;exports.vec4=e.vec4;exports.createShaderConfig=r.createShaderConfig;exports.FBOManager=a.FBOManager;exports.WebGLManager=t.WebGLManager;exports.Passes=s.Passes;exports.Postprocessing=c.Postprocessing;
package/dist/core.mjs ADDED
@@ -0,0 +1,20 @@
1
+ import { createTypedFloat32Array as o, mat2 as a, mat3 as t, mat4 as m, vec2 as p, vec3 as f, vec4 as c } from "./core/lib/vectorUtils.mjs";
2
+ import { createShaderConfig as x } from "./core/lib/createShaderConfig.mjs";
3
+ import { FBOManager as n } from "./core/managers/FBOManager.mjs";
4
+ import { WebGLManager as d } from "./core/managers/WebGLManager.mjs";
5
+ import { Passes as y } from "./core/systems/Passes.mjs";
6
+ import { Postprocessing as M } from "./core/systems/Postprocessing.mjs";
7
+ export {
8
+ n as FBOManager,
9
+ y as Passes,
10
+ M as Postprocessing,
11
+ d as WebGLManager,
12
+ x as createShaderConfig,
13
+ o as createTypedFloat32Array,
14
+ a as mat2,
15
+ t as mat3,
16
+ m as mat4,
17
+ p as vec2,
18
+ f as vec3,
19
+ c as vec4
20
+ };
package/dist/index.d.ts CHANGED
@@ -1,49 +1,3 @@
1
- import { CSSProperties } from 'react';
2
- import { JSX } from 'react/jsx-runtime';
3
-
4
- export declare const Marble: ({ marbleScale, tileScale, turbulence, swirl, veinFrequency, veinWidth, colorStart, colorEnd, veinColor, colorStartDark, colorEndDark, veinColorDark, className, style }: MarbleProps) => JSX.Element;
5
-
6
- export declare const marbleFragmentShader = "\nprecision highp float;\n \nuniform vec2 u_resolution;\nuniform float u_time;\nuniform float u_marbleScale;\nuniform float u_turbulence;\nuniform float u_swirl;\nuniform vec3 u_colorStart;\nuniform vec3 u_colorEnd;\nuniform vec3 u_veinColor;\nuniform float u_veinFrequency;\nuniform float u_veinWidth;\nuniform float u_tileScale;\n \nvarying vec2 v_texCoord;\n \nfloat hash(float n) {\n return fract(sin(n) * 43758.5453123);\n}\n \nfloat hash(vec2 p) {\n return fract(sin(dot(p, vec2(12.9898, 78.233))) * 43758.5453123);\n}\n \nfloat noise(vec2 x) {\n vec2 i = floor(x);\n vec2 f = fract(x);\n \n float a = hash(i);\n float b = hash(i + vec2(1.0, 0.0));\n float c = hash(i + vec2(0.0, 1.0));\n float d = hash(i + vec2(1.0, 1.0));\n \n vec2 u = f * f * (3.0 - 2.0 * f);\n \n return clamp(mix(mix(a, b, u.x), mix(c, d, u.x), u.y), 0.0, 1.0);\n}\n \nfloat fbm(vec2 p, int octaves) {\n float value = 0.0;\n float amplitude = 0.5;\n float frequency = 1.0;\n float maxValue = 0.0;\n \n for (int i = 0; i < 10; i++) {\n if (i >= octaves) break;\n value += amplitude * noise(p * frequency);\n maxValue += amplitude;\n frequency *= 2.0;\n amplitude *= 0.5;\n }\n \n return value / maxValue;\n}\n \nvec2 swirl(vec2 p, float strength) {\n float theta = fbm(p, 3) * strength;\n float c = cos(theta);\n float s = sin(theta);\n return vec2(\n p.x * c - p.y * s,\n p.x * s + p.y * c\n );\n}\n\nvec2 applyTilePixelation(vec2 uv, float tileScale) {\n vec2 cell = floor(uv * tileScale);\n float cellHash = (1.3 * fbm(u_time * 0.00002 * vec2(pow(pow(cell.x * cell.y, 2.0), 0.5), 2.0) + cell, 1) + 0.8 * hash(cell)) * 0.5;\n float hashValue = cellHash * 3.0;\n float pixelSize = 1.0;\n\n if (hashValue < 1.0) pixelSize = 32.0;\n else if (hashValue < 1.3) pixelSize = 16.0;\n else if (hashValue < 1.8) pixelSize = 64.0;\n else if (hashValue < 1.85) pixelSize = 16.0;\n else if (hashValue < 2.2) pixelSize = 64.0;\n else if (hashValue < 2.3) pixelSize = 16.0;\n else if (hashValue < 2.6) pixelSize = 32.0;\n else pixelSize = 128.0;\n\n return floor(uv * pixelSize) / pixelSize;\n}\n \nvoid main() {\n vec2 uv = v_texCoord * 2.0 - 1.0;\n uv = uv * u_resolution / min(u_resolution.x, u_resolution.y);\n \n vec2 pixelatedUv = applyTilePixelation(uv, u_tileScale);\n \n float time = u_time * 0.25;\n \n vec2 swirlUv = swirl(pixelatedUv + vec2(time * 0.0005, time * 0.00083), max(0.0, min(10.0, u_swirl)));\n \n float baseNoise = fbm(swirlUv * max(0.1, u_marbleScale) + vec2(time * 0.1, time * 0.13), 5);\n \n float turbulenceAmount = max(0.0, min(1.0, u_turbulence));\n float turbulence = turbulenceAmount * fbm(swirlUv * max(0.1, u_marbleScale) * 2.0 + vec2(time * -0.15), 2);\n baseNoise = clamp(baseNoise + turbulence, 0.0, 1.0);\n \n float veinFreq = max(0.1, u_veinFrequency);\n float veinW = max(0.1, min(5.0, u_veinWidth));\n float veins = abs(sin(baseNoise * veinFreq * 3.14159));\n veins = pow(veins, veinW);\n veins = clamp(veins, 0.0, 1.0);\n \n vec3 baseColor = mix(u_colorStart, u_colorEnd, baseNoise);\n \n vec3 marbleColor = mix(baseColor, u_veinColor, veins);\n \n float highlight = pow(fbm(swirlUv * max(0.1, u_marbleScale) * 4.0, 2), 3.0) * 0.2;\n \n marbleColor = floor(marbleColor * 32.0) / 32.0;\n marbleColor = mix(marbleColor, u_veinColor, veins * 0.5);\n marbleColor = marbleColor + 0.0425;\n marbleColor = clamp(marbleColor, 0.0, 1.0);\n\n marbleColor = mix(marbleColor, u_veinColor, 0.7);\n gl_FragColor = vec4(marbleColor, 1.0);\n}\n";
7
-
8
- export declare interface MarbleProps {
9
- marbleScale?: number;
10
- tileScale?: number;
11
- turbulence?: number;
12
- swirl?: number;
13
- colorStart?: Vec3;
14
- colorEnd?: Vec3;
15
- veinColor?: Vec3;
16
- colorStartDark?: Vec3;
17
- colorEndDark?: Vec3;
18
- veinColorDark?: Vec3;
19
- veinFrequency?: number;
20
- veinWidth?: number;
21
- className?: string;
22
- style?: CSSProperties;
23
- }
24
-
25
- export declare const marbleVertexShader = "\n attribute vec2 a_position;\n varying vec2 v_texCoord;\n\n void main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_position * 0.5 + 0.5;\n }\n";
26
-
27
- export declare const Ripple: ({ damping, mouseForce, color1, color2, iterations, className, style }: RippleProps) => JSX.Element;
28
-
29
- export declare interface RippleProps {
30
- damping?: number;
31
- mouseForce?: number;
32
- color1?: Vec3_2;
33
- color2?: Vec3_2;
34
- iterations?: number;
35
- className?: string;
36
- style?: CSSProperties;
37
- }
38
-
39
- export declare const rippleRenderShader = "\n precision highp float;\n \n uniform vec2 u_resolution;\n uniform float u_time;\n uniform sampler2D u_texture0;\n uniform vec3 u_color1;\n uniform vec3 u_color2;\n \n varying vec2 v_texCoord;\n \n void main() {\n vec2 uv = v_texCoord;\n \n vec4 state = texture2D(u_texture0, uv);\n float height = state.r;\n \n vec3 color = mix(u_color1, u_color2, (height + 1.0) * 0.5);\n \n float t = u_time * 0.001;\n float brightness = 1.0 + 0.1 * sin(uv.x * 10.0 + t) * sin(uv.y * 10.0 + t);\n color *= brightness;\n \n gl_FragColor = vec4(color, 1.0);\n }\n";
40
-
41
- export declare const rippleSimulationShader = "\n precision highp float;\n \n uniform vec2 u_resolution;\n uniform float u_time;\n uniform sampler2D u_texture0;\n uniform vec2 u_mouse;\n uniform float u_mouseForce;\n uniform float u_damping;\n \n varying vec2 v_texCoord;\n \n void main() {\n vec2 uv = v_texCoord;\n vec2 texelSize = 1.0 / u_resolution;\n \n vec4 state = texture2D(u_texture0, uv);\n float height = state.r;\n float velocity = state.g;\n \n float north = texture2D(u_texture0, uv + vec2(0.0, texelSize.y)).r;\n float south = texture2D(u_texture0, uv - vec2(0.0, texelSize.y)).r;\n float east = texture2D(u_texture0, uv + vec2(texelSize.x, 0.0)).r;\n float west = texture2D(u_texture0, uv - vec2(texelSize.x, 0.0)).r;\n \n float newVelocity = velocity + ((north + south + east + west) / 4.0 - height) * 2.0;\n newVelocity *= u_damping;\n \n float newHeight = height + newVelocity;\n \n vec2 mouseVec = u_mouse - uv;\n float mouseDistance = length(mouseVec);\n if (mouseDistance < 0.05 && u_mouseForce > 0.0) {\n newHeight += 0.5;\n }\n \n float startTime = mod(u_time * 0.001, 10.0);\n if (startTime < 0.2) {\n vec2 center = vec2(0.5, 0.5);\n float centerDist = length(uv - center);\n if (centerDist < 0.05) {\n newHeight += 0.5 * (1.0 - startTime * 5.0);\n }\n }\n \n gl_FragColor = vec4(newHeight, newVelocity, 0.0, 1.0);\n }\n";
42
-
43
- export declare const rippleVertexShader = "\n attribute vec2 a_position;\n varying vec2 v_texCoord;\n void main() {\n gl_Position = vec4(a_position, 0.0, 1.0);\n v_texCoord = a_position * 0.5 + 0.5;\n }\n";
44
-
45
- declare type Vec3 = [number, number, number];
46
-
47
- declare type Vec3_2 = [number, number, number];
48
-
49
- export { }
1
+ export { createShaderConfig, createTypedFloat32Array, FBOManager, mat2, mat3, mat4, Passes, Postprocessing, vec2, vec3, vec4, WebGLManager } from './core';
2
+ export { BasePingPongShaderComponent, BaseShaderComponent, createCommonUpdaters, createUniformUpdater, createUniformUpdaters, PingPongShaderEngine, ShaderEngine, useDarkMode, usePingPongPasses, useUniformUpdaters } from './react';
3
+ export type { AttributeConfig, AttributeType, BufferData, Float32Array2, Float32Array3, Float32Array4, Float32Array9, Float32Array16, FramebufferOptions, FramebufferResources, Mat2, Mat3, Mat4, PingPongState, RenderOptions, RenderPass, RenderPassUniformUpdateFn, RenderPassUniformValue, ShaderAttributeLocations, ShaderProgramConfig, ShaderRenderCallback, ShaderResources, ShaderUniformLocations, TextureBinding, TextureOptions, TypedFloat32Array, UniformConfig, UniformParam, UniformParamMap, UniformType, UniformTypeMap, UniformUpdateFn, UniformUpdaterDef, UniformValue, Vec2, Vec3, Vec4, WebGLExtensionName, WebGLExtensionTypes } from './types';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./src/core/lib/vectorUtils.js"),n=require("./src/core/lib/createShaderConfig.js"),a=require("./src/core/managers/FBOManager.js"),o=require("./src/core/managers/WebGLManager.js"),s=require("./src/core/systems/Passes.js"),t=require("./src/core/systems/Postprocessing.js"),i=require("./src/react/components/base/BasePingPongShaderComponent.js"),c=require("./src/react/components/base/BaseShaderComponent.js"),g=require("./src/react/components/engine/PingPongShaderEngine.js"),d=require("./src/react/components/engine/ShaderEngine.js"),P=require("./src/react/hooks/useDarkMode.js"),u=require("./src/react/hooks/usePingPongPasses.js"),m=require("./src/react/hooks/useUniformUpdaters.js"),r=require("./src/react/lib/createUniformUpdater.js");exports.createTypedFloat32Array=e.createTypedFloat32Array;exports.mat2=e.mat2;exports.mat3=e.mat3;exports.mat4=e.mat4;exports.vec2=e.vec2;exports.vec3=e.vec3;exports.vec4=e.vec4;exports.createShaderConfig=n.createShaderConfig;exports.FBOManager=a.FBOManager;exports.WebGLManager=o.WebGLManager;exports.Passes=s.Passes;exports.Postprocessing=t.Postprocessing;exports.BasePingPongShaderComponent=i.BasePingPongShaderComponent;exports.BaseShaderComponent=c.BaseShaderComponent;exports.PingPongShaderEngine=g.PingPongShaderEngine;exports.ShaderEngine=d.ShaderEngine;exports.useDarkMode=P.useDarkMode;exports.usePingPongPasses=u.usePingPongPasses;exports.useUniformUpdaters=m.useUniformUpdaters;exports.createCommonUpdaters=r.createCommonUpdaters;exports.createUniformUpdater=r.createUniformUpdater;exports.createUniformUpdaters=r.createUniformUpdaters;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./core/lib/vectorUtils.js"),n=require("./core/lib/createShaderConfig.js"),a=require("./core/managers/FBOManager.js"),o=require("./core/managers/WebGLManager.js"),s=require("./core/systems/Passes.js"),t=require("./core/systems/Postprocessing.js"),i=require("./react/components/base/BasePingPongShaderComponent.js"),c=require("./react/components/base/BaseShaderComponent.js"),g=require("./react/components/engine/PingPongShaderEngine.js"),d=require("./react/components/engine/ShaderEngine.js"),P=require("./react/hooks/useDarkMode.js"),u=require("./react/hooks/usePingPongPasses.js"),m=require("./react/hooks/useUniformUpdaters.js"),r=require("./react/lib/createUniformUpdater.js");exports.createTypedFloat32Array=e.createTypedFloat32Array;exports.mat2=e.mat2;exports.mat3=e.mat3;exports.mat4=e.mat4;exports.vec2=e.vec2;exports.vec3=e.vec3;exports.vec4=e.vec4;exports.createShaderConfig=n.createShaderConfig;exports.FBOManager=a.FBOManager;exports.WebGLManager=o.WebGLManager;exports.Passes=s.Passes;exports.Postprocessing=t.Postprocessing;exports.BasePingPongShaderComponent=i.BasePingPongShaderComponent;exports.BaseShaderComponent=c.BaseShaderComponent;exports.PingPongShaderEngine=g.PingPongShaderEngine;exports.ShaderEngine=d.ShaderEngine;exports.useDarkMode=P.useDarkMode;exports.usePingPongPasses=u.usePingPongPasses;exports.useUniformUpdaters=m.useUniformUpdaters;exports.createCommonUpdaters=r.createCommonUpdaters;exports.createUniformUpdater=r.createUniformUpdater;exports.createUniformUpdaters=r.createUniformUpdaters;
package/dist/index.mjs CHANGED
@@ -1,17 +1,17 @@
1
- import { createTypedFloat32Array as o, mat2 as t, mat3 as a, mat4 as m, vec2 as n, vec3 as p, vec4 as f } from "./src/core/lib/vectorUtils.mjs";
2
- import { createShaderConfig as x } from "./src/core/lib/createShaderConfig.mjs";
3
- import { FBOManager as d } from "./src/core/managers/FBOManager.mjs";
4
- import { WebGLManager as c } from "./src/core/managers/WebGLManager.mjs";
5
- import { Passes as U } from "./src/core/systems/Passes.mjs";
6
- import { Postprocessing as S } from "./src/core/systems/Postprocessing.mjs";
7
- import { BasePingPongShaderComponent as u } from "./src/react/components/base/BasePingPongShaderComponent.mjs";
8
- import { BaseShaderComponent as B } from "./src/react/components/base/BaseShaderComponent.mjs";
9
- import { PingPongShaderEngine as y } from "./src/react/components/engine/PingPongShaderEngine.mjs";
10
- import { ShaderEngine as F } from "./src/react/components/engine/ShaderEngine.mjs";
11
- import { useDarkMode as k } from "./src/react/hooks/useDarkMode.mjs";
12
- import { usePingPongPasses as A } from "./src/react/hooks/usePingPongPasses.mjs";
13
- import { useUniformUpdaters as G } from "./src/react/hooks/useUniformUpdaters.mjs";
14
- import { createCommonUpdaters as O, createUniformUpdater as T, createUniformUpdaters as W } from "./src/react/lib/createUniformUpdater.mjs";
1
+ import { createTypedFloat32Array as o, mat2 as t, mat3 as a, mat4 as m, vec2 as n, vec3 as p, vec4 as f } from "./core/lib/vectorUtils.mjs";
2
+ import { createShaderConfig as x } from "./core/lib/createShaderConfig.mjs";
3
+ import { FBOManager as d } from "./core/managers/FBOManager.mjs";
4
+ import { WebGLManager as c } from "./core/managers/WebGLManager.mjs";
5
+ import { Passes as U } from "./core/systems/Passes.mjs";
6
+ import { Postprocessing as S } from "./core/systems/Postprocessing.mjs";
7
+ import { BasePingPongShaderComponent as u } from "./react/components/base/BasePingPongShaderComponent.mjs";
8
+ import { BaseShaderComponent as B } from "./react/components/base/BaseShaderComponent.mjs";
9
+ import { PingPongShaderEngine as y } from "./react/components/engine/PingPongShaderEngine.mjs";
10
+ import { ShaderEngine as F } from "./react/components/engine/ShaderEngine.mjs";
11
+ import { useDarkMode as k } from "./react/hooks/useDarkMode.mjs";
12
+ import { usePingPongPasses as A } from "./react/hooks/usePingPongPasses.mjs";
13
+ import { useUniformUpdaters as G } from "./react/hooks/useUniformUpdaters.mjs";
14
+ import { createCommonUpdaters as O, createUniformUpdater as T, createUniformUpdaters as W } from "./react/lib/createUniformUpdater.mjs";
15
15
  export {
16
16
  u as BasePingPongShaderComponent,
17
17
  B as BaseShaderComponent,
@@ -0,0 +1,21 @@
1
+ import { CSSProperties } from 'react';
2
+ import { FramebufferOptions, RenderPass, ShaderProgramConfig } from '../../../core';
3
+ import { UniformParam } from '../../../types';
4
+ export interface BasePingPongShaderProps {
5
+ programId: string;
6
+ shaderConfig: ShaderProgramConfig;
7
+ secondaryProgramId?: string;
8
+ secondaryShaderConfig?: ShaderProgramConfig;
9
+ iterations?: number;
10
+ uniforms: Record<string, UniformParam>;
11
+ secondaryUniforms?: Record<string, UniformParam>;
12
+ framebufferOptions?: FramebufferOptions;
13
+ className?: string;
14
+ style?: CSSProperties;
15
+ customPasses?: RenderPass[];
16
+ renderOptions?: {
17
+ clear?: boolean;
18
+ clearColor?: [number, number, number, number];
19
+ };
20
+ }
21
+ export declare const BasePingPongShaderComponent: ({ programId, shaderConfig, secondaryProgramId, secondaryShaderConfig, iterations, uniforms, secondaryUniforms, framebufferOptions, className, style, customPasses, renderOptions }: BasePingPongShaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { CSSProperties } from 'react';
2
+ import { ShaderProgramConfig } from '../../../core';
3
+ import { UniformParam } from '../../../types';
4
+ export interface BaseShaderProps {
5
+ programId: string;
6
+ shaderConfig: ShaderProgramConfig;
7
+ uniforms: Record<string, UniformParam>;
8
+ className?: string;
9
+ style?: CSSProperties;
10
+ renderOptions?: {
11
+ clear?: boolean;
12
+ clearColor?: [number, number, number, number];
13
+ };
14
+ }
15
+ export declare const BaseShaderComponent: ({ programId, shaderConfig, uniforms, className, style, renderOptions }: BaseShaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { CSSProperties } from 'react';
2
+ import { FramebufferOptions, RenderPass, ShaderProgramConfig } from '../../../core';
3
+ interface PingPongShaderEngineProps {
4
+ programConfigs: Record<string, ShaderProgramConfig>;
5
+ passes: RenderPass[];
6
+ framebuffers?: Record<string, FramebufferOptions>;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ useDevicePixelRatio?: boolean;
10
+ }
11
+ export declare const PingPongShaderEngine: ({ programConfigs, passes, framebuffers, className, style, useDevicePixelRatio }: PingPongShaderEngineProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,18 @@
1
+ import { CSSProperties } from 'react';
2
+ import { RenderOptions, ShaderProgramConfig, ShaderRenderCallback, UniformType, UniformUpdateFn } from '../../../core';
3
+ interface ShaderEngineProps {
4
+ programConfigs: Record<string, ShaderProgramConfig>;
5
+ renderCallback: ShaderRenderCallback;
6
+ renderOptions?: RenderOptions;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ uniformUpdaters?: Record<string, {
10
+ name: string;
11
+ type: UniformType;
12
+ updateFn: UniformUpdateFn<UniformType>;
13
+ }[]>;
14
+ useFastPath?: boolean;
15
+ useDevicePixelRatio?: boolean;
16
+ }
17
+ export declare const ShaderEngine: ({ programConfigs, renderCallback, renderOptions, className, style, uniformUpdaters, useFastPath, useDevicePixelRatio }: ShaderEngineProps) => import("react/jsx-runtime").JSX.Element;
18
+ export {};
File without changes
@@ -0,0 +1,3 @@
1
+ export { useDarkMode } from './useDarkMode';
2
+ export { usePingPongPasses } from './usePingPongPasses';
3
+ export { useUniformUpdaters } from './useUniformUpdaters';
@@ -0,0 +1 @@
1
+ export declare const useDarkMode: () => boolean;
@@ -0,0 +1,21 @@
1
+ import { FramebufferOptions, RenderPass, UniformParam } from '../../types';
2
+ interface PingPongPassesOptions {
3
+ programId: string;
4
+ secondaryProgramId?: string;
5
+ iterations?: number;
6
+ uniforms: Record<string, UniformParam>;
7
+ secondaryUniforms?: Record<string, UniformParam>;
8
+ framebufferOptions?: FramebufferOptions;
9
+ renderOptions?: {
10
+ clear?: boolean;
11
+ clearColor?: [number, number, number, number];
12
+ };
13
+ customPasses?: RenderPass[];
14
+ }
15
+ export declare const usePingPongPasses: ({ programId, secondaryProgramId, iterations, uniforms, secondaryUniforms, framebufferOptions, renderOptions, customPasses }: PingPongPassesOptions) => {
16
+ passes: RenderPass[];
17
+ framebuffers: {
18
+ [x: string]: FramebufferOptions;
19
+ };
20
+ };
21
+ export {};
@@ -0,0 +1,4 @@
1
+ import { UniformParam, UniformType, UniformUpdaterDef } from '../../types';
2
+ export declare const useUniformUpdaters: (programId: string, uniforms: Record<string, UniformParam>) => {
3
+ [x: string]: UniformUpdaterDef<UniformType>[];
4
+ };
@@ -0,0 +1,8 @@
1
+ export { BasePingPongShaderComponent } from './components/base/BasePingPongShaderComponent';
2
+ export { BaseShaderComponent } from './components/base/BaseShaderComponent';
3
+ export { PingPongShaderEngine } from './components/engine/PingPongShaderEngine';
4
+ export { ShaderEngine } from './components/engine/ShaderEngine';
5
+ export { useDarkMode } from './hooks/useDarkMode';
6
+ export { usePingPongPasses } from './hooks/usePingPongPasses';
7
+ export { useUniformUpdaters } from './hooks/useUniformUpdaters';
8
+ export { createCommonUpdaters, createUniformUpdater, createUniformUpdaters } from './lib/createUniformUpdater';
@@ -0,0 +1,8 @@
1
+ import { UniformType, UniformUpdaterDef, UniformValue } from '../../types';
2
+ export declare function createUniformUpdater<T extends UniformType>(name: string, type: T, value: UniformValue<T>): UniformUpdaterDef<T>;
3
+ export declare function createUniformUpdaters<T extends UniformType>(configs: {
4
+ name: string;
5
+ type: T;
6
+ value: UniformValue<T>;
7
+ }[]): UniformUpdaterDef<T>[];
8
+ export declare function createCommonUpdaters(): UniformUpdaterDef<UniformType>[];
package/dist/react.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./react/components/base/BasePingPongShaderComponent.js"),r=require("./react/components/base/BaseShaderComponent.js"),o=require("./react/components/engine/PingPongShaderEngine.js"),a=require("./react/components/engine/ShaderEngine.js"),s=require("./react/hooks/useDarkMode.js"),t=require("./react/hooks/usePingPongPasses.js"),i=require("./react/hooks/useUniformUpdaters.js"),e=require("./react/lib/createUniformUpdater.js");exports.BasePingPongShaderComponent=n.BasePingPongShaderComponent;exports.BaseShaderComponent=r.BaseShaderComponent;exports.PingPongShaderEngine=o.PingPongShaderEngine;exports.ShaderEngine=a.ShaderEngine;exports.useDarkMode=s.useDarkMode;exports.usePingPongPasses=t.usePingPongPasses;exports.useUniformUpdaters=i.useUniformUpdaters;exports.createCommonUpdaters=e.createCommonUpdaters;exports.createUniformUpdater=e.createUniformUpdater;exports.createUniformUpdaters=e.createUniformUpdaters;
package/dist/react.mjs ADDED
@@ -0,0 +1,20 @@
1
+ import { BasePingPongShaderComponent as o } from "./react/components/base/BasePingPongShaderComponent.mjs";
2
+ import { BaseShaderComponent as t } from "./react/components/base/BaseShaderComponent.mjs";
3
+ import { PingPongShaderEngine as m } from "./react/components/engine/PingPongShaderEngine.mjs";
4
+ import { ShaderEngine as f } from "./react/components/engine/ShaderEngine.mjs";
5
+ import { useDarkMode as d } from "./react/hooks/useDarkMode.mjs";
6
+ import { usePingPongPasses as i } from "./react/hooks/usePingPongPasses.mjs";
7
+ import { useUniformUpdaters as P } from "./react/hooks/useUniformUpdaters.mjs";
8
+ import { createCommonUpdaters as h, createUniformUpdater as S, createUniformUpdaters as c } from "./react/lib/createUniformUpdater.mjs";
9
+ export {
10
+ o as BasePingPongShaderComponent,
11
+ t as BaseShaderComponent,
12
+ m as PingPongShaderEngine,
13
+ f as ShaderEngine,
14
+ h as createCommonUpdaters,
15
+ S as createUniformUpdater,
16
+ c as createUniformUpdaters,
17
+ d as useDarkMode,
18
+ i as usePingPongPasses,
19
+ P as useUniformUpdaters
20
+ };