micugl 0.0.9 → 0.0.12
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/core/index.d.ts +7 -0
- package/dist/core/lib/createShaderConfig.d.ts +16 -0
- package/dist/core/lib/vectorUtils.d.ts +8 -0
- package/dist/core/managers/FBOManager.d.ts +21 -0
- package/dist/core/managers/FBOManager.js +1 -0
- package/dist/core/managers/FBOManager.mjs +127 -0
- package/dist/core/managers/WebGLManager.d.ts +35 -0
- package/dist/core/managers/WebGLManager.js +1 -0
- package/dist/core/managers/WebGLManager.mjs +281 -0
- package/dist/core/systems/Passes.d.ts +11 -0
- package/dist/core/systems/Passes.js +1 -0
- package/dist/core/systems/Passes.mjs +84 -0
- package/dist/core/systems/Postprocessing.d.ts +31 -0
- package/dist/core/systems/Postprocessing.js +1 -0
- package/dist/core/systems/Postprocessing.mjs +135 -0
- package/dist/core.js +1 -0
- package/dist/core.mjs +20 -0
- package/dist/index.d.ts +3 -49
- package/dist/index.js +1 -1
- package/dist/index.mjs +14 -14
- package/dist/react/components/base/BasePingPongShaderComponent.d.ts +21 -0
- package/dist/react/components/base/BaseShaderComponent.d.ts +15 -0
- package/dist/react/components/engine/PingPongShaderEngine.d.ts +12 -0
- package/dist/react/components/engine/ShaderEngine.d.ts +18 -0
- package/dist/react/components/engine/ShaderEngine.js +1 -0
- package/dist/react/components/engine/ShaderEngine.mjs +82 -0
- package/dist/react/components/index.d.ts +0 -0
- package/dist/react/hooks/index.d.ts +3 -0
- package/dist/react/hooks/useDarkMode.d.ts +1 -0
- package/dist/react/hooks/usePingPongPasses.d.ts +21 -0
- package/dist/react/hooks/useUniformUpdaters.d.ts +4 -0
- package/dist/react/index.d.ts +8 -0
- package/dist/react/lib/createUniformUpdater.d.ts +8 -0
- package/dist/react.js +1 -0
- package/dist/react.mjs +20 -0
- package/dist/types.d.ts +164 -204
- package/package.json +7 -46
- package/dist/MarbleScene.d.ts +0 -27
- package/dist/RippleScene.d.ts +0 -20
- package/dist/examples/Marble/MarbleScene.d.ts +0 -20
- package/dist/examples/Marble/MarbleScene.js +0 -1
- package/dist/examples/Marble/MarbleScene.mjs +0 -71
- package/dist/examples/Marble/marbleShaders.d.ts +0 -2
- package/dist/examples/Marble/marbleShaders.js +0 -129
- package/dist/examples/Marble/marbleShaders.mjs +0 -139
- package/dist/examples/Ripple/RippleScene.d.ts +0 -13
- package/dist/examples/Ripple/RippleScene.js +0 -1
- package/dist/examples/Ripple/RippleScene.mjs +0 -109
- package/dist/examples/Ripple/rippleShaders.d.ts +0 -3
- package/dist/examples/Ripple/rippleShaders.js +0 -80
- package/dist/examples/Ripple/rippleShaders.mjs +0 -94
- package/dist/examples/index.d.ts +0 -4
- package/dist/examples/index.js +0 -1
- package/dist/examples/index.mjs +0 -13
- package/dist/marbleShaders.d.ts +0 -5
- package/dist/rippleShaders.d.ts +0 -7
- package/dist/src/core/managers/FBOManager.js +0 -1
- package/dist/src/core/managers/FBOManager.mjs +0 -120
- package/dist/src/core/managers/WebGLManager.js +0 -1
- package/dist/src/core/managers/WebGLManager.mjs +0 -273
- package/dist/src/core/systems/Passes.js +0 -1
- package/dist/src/core/systems/Passes.mjs +0 -78
- package/dist/src/core/systems/Postprocessing.js +0 -1
- package/dist/src/core/systems/Postprocessing.mjs +0 -128
- package/dist/src/react/components/engine/ShaderEngine.js +0 -1
- package/dist/src/react/components/engine/ShaderEngine.mjs +0 -106
- package/dist/types.js +0 -1
- package/dist/types.mjs +0 -1
- /package/dist/{src/core → core}/lib/createShaderConfig.js +0 -0
- /package/dist/{src/core → core}/lib/createShaderConfig.mjs +0 -0
- /package/dist/{src/core → core}/lib/vectorUtils.js +0 -0
- /package/dist/{src/core → core}/lib/vectorUtils.mjs +0 -0
- /package/dist/{src/react → react}/components/base/BasePingPongShaderComponent.js +0 -0
- /package/dist/{src/react → react}/components/base/BasePingPongShaderComponent.mjs +0 -0
- /package/dist/{src/react → react}/components/base/BaseShaderComponent.js +0 -0
- /package/dist/{src/react → react}/components/base/BaseShaderComponent.mjs +0 -0
- /package/dist/{src/react → react}/components/engine/PingPongShaderEngine.js +0 -0
- /package/dist/{src/react → react}/components/engine/PingPongShaderEngine.mjs +0 -0
- /package/dist/{src/react → react}/hooks/useDarkMode.js +0 -0
- /package/dist/{src/react → react}/hooks/useDarkMode.mjs +0 -0
- /package/dist/{src/react → react}/hooks/usePingPongPasses.js +0 -0
- /package/dist/{src/react → react}/hooks/usePingPongPasses.mjs +0 -0
- /package/dist/{src/react → react}/hooks/useUniformUpdaters.js +0 -0
- /package/dist/{src/react → react}/hooks/useUniformUpdaters.mjs +0 -0
- /package/dist/{src/react → react}/lib/createUniformUpdater.js +0 -0
- /package/dist/{src/react → react}/lib/createUniformUpdater.mjs +0 -0
package/dist/types.d.ts
CHANGED
|
@@ -1,204 +1,164 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
number
|
|
52
|
-
number
|
|
53
|
-
number
|
|
54
|
-
number
|
|
55
|
-
number
|
|
56
|
-
number
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
number
|
|
64
|
-
number
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
number
|
|
68
|
-
number
|
|
69
|
-
number
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
number
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
number,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
export
|
|
106
|
-
|
|
107
|
-
export
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
export
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
export
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
export
|
|
165
|
-
|
|
166
|
-
export declare interface UniformTypeMap {
|
|
167
|
-
'float': number;
|
|
168
|
-
'int': number;
|
|
169
|
-
'sampler2D': number;
|
|
170
|
-
'vec2': Float32Array2;
|
|
171
|
-
'vec3': Float32Array3;
|
|
172
|
-
'vec4': Float32Array4;
|
|
173
|
-
'mat2': Float32Array4;
|
|
174
|
-
'mat3': Float32Array9;
|
|
175
|
-
'mat4': Float32Array16;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
export declare type UniformUpdateFn<T extends UniformType> = (time?: number, width?: number, height?: number) => UniformTypeMap[T];
|
|
179
|
-
|
|
180
|
-
export declare interface UniformUpdaterDef<T extends UniformType> {
|
|
181
|
-
name: string;
|
|
182
|
-
type: T;
|
|
183
|
-
updateFn: UniformUpdateFn<T>;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
export declare type UniformValue<T extends UniformType> = UniformTypeMap[T] | UniformUpdateFn<T>;
|
|
187
|
-
|
|
188
|
-
export declare type Vec2 = [number, number];
|
|
189
|
-
|
|
190
|
-
export declare type Vec3 = [number, number, number];
|
|
191
|
-
|
|
192
|
-
export declare type Vec4 = [number, number, number, number];
|
|
193
|
-
|
|
194
|
-
export declare type WebGLExtensionName = Extract<keyof WebGLExtensionTypes, string>;
|
|
195
|
-
|
|
196
|
-
export declare interface WebGLExtensionTypes {
|
|
197
|
-
'OES_texture_float': OES_texture_float;
|
|
198
|
-
'OES_texture_float_linear': OES_texture_float_linear;
|
|
199
|
-
'OES_vertex_array_object': OES_vertex_array_object;
|
|
200
|
-
'ANGLE_instanced_arrays': ANGLE_instanced_arrays;
|
|
201
|
-
[key: string]: unknown;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
export { }
|
|
1
|
+
export interface BufferData {
|
|
2
|
+
buffer: WebGLBuffer;
|
|
3
|
+
data: Float32Array | Uint8Array | Uint16Array | Int8Array | Int16Array;
|
|
4
|
+
}
|
|
5
|
+
export type UniformType = 'float' | 'vec2' | 'vec3' | 'vec4' | 'mat2' | 'mat3' | 'mat4' | 'int' | 'sampler2D';
|
|
6
|
+
export type AttributeType = 'FLOAT' | 'BYTE' | 'SHORT' | 'UNSIGNED_BYTE' | 'UNSIGNED_SHORT';
|
|
7
|
+
export interface RenderOptions {
|
|
8
|
+
clear?: boolean;
|
|
9
|
+
clearColor?: Vec4;
|
|
10
|
+
}
|
|
11
|
+
export type ShaderUniformLocations = Record<string, WebGLUniformLocation | null>;
|
|
12
|
+
export type ShaderAttributeLocations = Record<string, number>;
|
|
13
|
+
export interface UniformConfig {
|
|
14
|
+
name: string;
|
|
15
|
+
type: UniformType;
|
|
16
|
+
}
|
|
17
|
+
export interface AttributeConfig {
|
|
18
|
+
name: string;
|
|
19
|
+
size: number;
|
|
20
|
+
type: AttributeType;
|
|
21
|
+
normalized: boolean;
|
|
22
|
+
stride: number;
|
|
23
|
+
offset: number;
|
|
24
|
+
instanced?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface ShaderResources {
|
|
27
|
+
program: WebGLProgram;
|
|
28
|
+
uniforms: ShaderUniformLocations;
|
|
29
|
+
attributes: ShaderAttributeLocations;
|
|
30
|
+
buffers: Record<string, BufferData>;
|
|
31
|
+
}
|
|
32
|
+
export interface ShaderProgramConfig {
|
|
33
|
+
vertexShader: string;
|
|
34
|
+
fragmentShader: string;
|
|
35
|
+
uniforms: UniformConfig[];
|
|
36
|
+
attributes?: AttributeConfig[];
|
|
37
|
+
}
|
|
38
|
+
export type ShaderRenderCallback = (time: number, resources: ShaderResources, gl: WebGLRenderingContext) => void;
|
|
39
|
+
export interface WebGLExtensionTypes {
|
|
40
|
+
'OES_texture_float': OES_texture_float;
|
|
41
|
+
'OES_texture_float_linear': OES_texture_float_linear;
|
|
42
|
+
'OES_vertex_array_object': OES_vertex_array_object;
|
|
43
|
+
'ANGLE_instanced_arrays': ANGLE_instanced_arrays;
|
|
44
|
+
[key: string]: unknown;
|
|
45
|
+
}
|
|
46
|
+
export type WebGLExtensionName = Extract<keyof WebGLExtensionTypes, string>;
|
|
47
|
+
export interface TextureOptions {
|
|
48
|
+
width: number;
|
|
49
|
+
height: number;
|
|
50
|
+
internalFormat?: number;
|
|
51
|
+
format?: number;
|
|
52
|
+
type?: number;
|
|
53
|
+
minFilter?: number;
|
|
54
|
+
magFilter?: number;
|
|
55
|
+
wrapS?: number;
|
|
56
|
+
wrapT?: number;
|
|
57
|
+
generateMipmap?: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface FramebufferResources {
|
|
60
|
+
framebuffer: WebGLFramebuffer;
|
|
61
|
+
textures: WebGLTexture[];
|
|
62
|
+
currentTextureIndex: number;
|
|
63
|
+
width: number;
|
|
64
|
+
height: number;
|
|
65
|
+
}
|
|
66
|
+
export interface FramebufferOptions {
|
|
67
|
+
width: number;
|
|
68
|
+
height: number;
|
|
69
|
+
textureCount?: number;
|
|
70
|
+
textureOptions?: Partial<TextureOptions>;
|
|
71
|
+
}
|
|
72
|
+
export interface TextureBinding {
|
|
73
|
+
id: string;
|
|
74
|
+
textureUnit: number;
|
|
75
|
+
bindingType: 'read' | 'write' | 'readwrite';
|
|
76
|
+
}
|
|
77
|
+
export type RenderPassUniformUpdateFn = (time: number, width: number, height: number) => UniformTypeMap[UniformType];
|
|
78
|
+
export type RenderPassUniformValue = UniformTypeMap[UniformType] | RenderPassUniformUpdateFn;
|
|
79
|
+
export interface RenderPass {
|
|
80
|
+
programId: string;
|
|
81
|
+
inputTextures: TextureBinding[];
|
|
82
|
+
outputFramebuffer?: string | null;
|
|
83
|
+
uniforms?: Record<string, {
|
|
84
|
+
type: UniformType;
|
|
85
|
+
value: RenderPassUniformValue;
|
|
86
|
+
}>;
|
|
87
|
+
renderOptions?: RenderOptions;
|
|
88
|
+
}
|
|
89
|
+
export interface PingPongState {
|
|
90
|
+
readIndex: number;
|
|
91
|
+
writeIndex: number;
|
|
92
|
+
swap: () => void;
|
|
93
|
+
}
|
|
94
|
+
export interface UniformTypeMap {
|
|
95
|
+
'float': number;
|
|
96
|
+
'int': number;
|
|
97
|
+
'sampler2D': number;
|
|
98
|
+
'vec2': Float32Array2;
|
|
99
|
+
'vec3': Float32Array3;
|
|
100
|
+
'vec4': Float32Array4;
|
|
101
|
+
'mat2': Float32Array4;
|
|
102
|
+
'mat3': Float32Array9;
|
|
103
|
+
'mat4': Float32Array16;
|
|
104
|
+
}
|
|
105
|
+
export type UniformUpdateFn<T extends UniformType> = (time?: number, width?: number, height?: number) => UniformTypeMap[T];
|
|
106
|
+
export type UniformValue<T extends UniformType> = UniformTypeMap[T] | UniformUpdateFn<T>;
|
|
107
|
+
export interface UniformUpdaterDef<T extends UniformType = UniformType> {
|
|
108
|
+
name: string;
|
|
109
|
+
type: T;
|
|
110
|
+
updateFn: UniformUpdateFn<T>;
|
|
111
|
+
}
|
|
112
|
+
export interface UniformParam<T extends UniformType = UniformType> {
|
|
113
|
+
value: UniformValue<T>;
|
|
114
|
+
type: T;
|
|
115
|
+
}
|
|
116
|
+
export type UniformParamMap = {
|
|
117
|
+
[K in UniformType]: UniformParam<K>;
|
|
118
|
+
};
|
|
119
|
+
export type Vec2 = [number, number];
|
|
120
|
+
export type Vec3 = [number, number, number];
|
|
121
|
+
export type Vec4 = [number, number, number, number];
|
|
122
|
+
export type Mat2 = [
|
|
123
|
+
number,
|
|
124
|
+
number,
|
|
125
|
+
number,
|
|
126
|
+
number
|
|
127
|
+
];
|
|
128
|
+
export type Mat3 = [
|
|
129
|
+
number,
|
|
130
|
+
number,
|
|
131
|
+
number,
|
|
132
|
+
number,
|
|
133
|
+
number,
|
|
134
|
+
number,
|
|
135
|
+
number,
|
|
136
|
+
number,
|
|
137
|
+
number
|
|
138
|
+
];
|
|
139
|
+
export type Mat4 = [
|
|
140
|
+
number,
|
|
141
|
+
number,
|
|
142
|
+
number,
|
|
143
|
+
number,
|
|
144
|
+
number,
|
|
145
|
+
number,
|
|
146
|
+
number,
|
|
147
|
+
number,
|
|
148
|
+
number,
|
|
149
|
+
number,
|
|
150
|
+
number,
|
|
151
|
+
number,
|
|
152
|
+
number,
|
|
153
|
+
number,
|
|
154
|
+
number,
|
|
155
|
+
number
|
|
156
|
+
];
|
|
157
|
+
export type TypedFloat32Array<N extends number> = Float32Array & {
|
|
158
|
+
length: N;
|
|
159
|
+
};
|
|
160
|
+
export type Float32Array2 = TypedFloat32Array<2>;
|
|
161
|
+
export type Float32Array3 = TypedFloat32Array<3>;
|
|
162
|
+
export type Float32Array4 = TypedFloat32Array<4>;
|
|
163
|
+
export type Float32Array9 = TypedFloat32Array<9>;
|
|
164
|
+
export type Float32Array16 = TypedFloat32Array<16>;
|
package/package.json
CHANGED
|
@@ -1,66 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "micugl",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"description": "Micu gl - Small React shader library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.mjs",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
-
"typesVersions": {
|
|
10
|
-
"*": {
|
|
11
|
-
"*": [
|
|
12
|
-
"dist/*"
|
|
13
|
-
],
|
|
14
|
-
"types": [
|
|
15
|
-
"dist/types.d.ts"
|
|
16
|
-
]
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
9
|
"exports": {
|
|
20
10
|
".": {
|
|
21
11
|
"types": "./dist/index.d.ts",
|
|
22
12
|
"import": "./dist/index.mjs",
|
|
23
13
|
"require": "./dist/index.js"
|
|
24
14
|
},
|
|
25
|
-
"./types": {
|
|
26
|
-
"types": "./dist/types.d.ts",
|
|
27
|
-
"import": "./dist/types.mjs",
|
|
28
|
-
"require": "./dist/types.js"
|
|
29
|
-
},
|
|
30
15
|
"./core": {
|
|
31
16
|
"types": "./dist/core/index.d.ts",
|
|
32
|
-
"import": "./dist/core
|
|
33
|
-
"require": "./dist/core
|
|
17
|
+
"import": "./dist/core.mjs",
|
|
18
|
+
"require": "./dist/core.js"
|
|
34
19
|
},
|
|
35
20
|
"./react": {
|
|
36
21
|
"types": "./dist/react/index.d.ts",
|
|
37
|
-
"import": "./dist/react
|
|
38
|
-
"require": "./dist/react
|
|
39
|
-
},
|
|
40
|
-
"./examples": {
|
|
41
|
-
"types": "./dist/examples/index.d.ts",
|
|
42
|
-
"import": "./dist/examples/index.mjs",
|
|
43
|
-
"require": "./dist/examples/index.js"
|
|
44
|
-
},
|
|
45
|
-
"./examples/Marble/MarbleScene": {
|
|
46
|
-
"types": "./dist/examples/Marble/MarbleScene.d.ts",
|
|
47
|
-
"import": "./dist/examples/Marble/MarbleScene.mjs",
|
|
48
|
-
"require": "./dist/examples/Marble/MarbleScene.js"
|
|
49
|
-
},
|
|
50
|
-
"./examples/Marble/marbleShaders": {
|
|
51
|
-
"types": "./dist/examples/Marble/marbleShaders.d.ts",
|
|
52
|
-
"import": "./dist/examples/Marble/marbleShaders.mjs",
|
|
53
|
-
"require": "./dist/examples/Marble/marbleShaders.js"
|
|
54
|
-
},
|
|
55
|
-
"./examples/SimpleRipple/SimpleRippleScene": {
|
|
56
|
-
"types": "./dist/examples/SimpleRipple/SimpleRippleScene.d.ts",
|
|
57
|
-
"import": "./dist/examples/SimpleRipple/SimpleRippleScene.mjs",
|
|
58
|
-
"require": "./dist/examples/SimpleRipple/SimpleRippleScene.js"
|
|
59
|
-
},
|
|
60
|
-
"./examples/SimpleRipple/rippleShaders": {
|
|
61
|
-
"types": "./dist/examples/SimpleRipple/rippleShaders.d.ts",
|
|
62
|
-
"import": "./dist/examples/SimpleRipple/rippleShaders.mjs",
|
|
63
|
-
"require": "./dist/examples/SimpleRipple/rippleShaders.js"
|
|
22
|
+
"import": "./dist/react.mjs",
|
|
23
|
+
"require": "./dist/react.js"
|
|
64
24
|
}
|
|
65
25
|
},
|
|
66
26
|
"files": [
|
|
@@ -73,7 +33,7 @@
|
|
|
73
33
|
"typecheck": "tsc --noEmit"
|
|
74
34
|
},
|
|
75
35
|
"peerDependencies": {
|
|
76
|
-
"react": "^18.0.0 || ^19.0.0",
|
|
36
|
+
"react": "^18.0.0 || ^19.0.0 || ^19.1.0",
|
|
77
37
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
78
38
|
},
|
|
79
39
|
"devDependencies": {
|
|
@@ -81,6 +41,7 @@
|
|
|
81
41
|
"@types/node": "^22.14.0",
|
|
82
42
|
"@types/react": "^18.0.0 || ^19.0.0",
|
|
83
43
|
"@types/react-dom": "^18.0.0 || ^19.0.0",
|
|
44
|
+
"ajv": "^8",
|
|
84
45
|
"eslint": "^9.25.0",
|
|
85
46
|
"eslint-plugin-react-dom": "^1.48.4",
|
|
86
47
|
"eslint-plugin-react-hooks": "^5.2.0",
|
package/dist/MarbleScene.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { CSSProperties } from 'react';
|
|
2
|
-
import { JSX } from 'react/jsx-runtime';
|
|
3
|
-
|
|
4
|
-
declare const Marble: ({ marbleScale, tileScale, turbulence, swirl, veinFrequency, veinWidth, colorStart, colorEnd, veinColor, colorStartDark, colorEndDark, veinColorDark, className, style }: MarbleProps) => JSX.Element;
|
|
5
|
-
export { Marble }
|
|
6
|
-
export default Marble;
|
|
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
|
-
declare type Vec3 = [number, number, number];
|
|
26
|
-
|
|
27
|
-
export { }
|
package/dist/RippleScene.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { CSSProperties } from 'react';
|
|
2
|
-
import { JSX } from 'react/jsx-runtime';
|
|
3
|
-
|
|
4
|
-
declare const Ripple: ({ damping, mouseForce, color1, color2, iterations, className, style }: RippleProps) => JSX.Element;
|
|
5
|
-
export { Ripple }
|
|
6
|
-
export default Ripple;
|
|
7
|
-
|
|
8
|
-
export declare interface RippleProps {
|
|
9
|
-
damping?: number;
|
|
10
|
-
mouseForce?: number;
|
|
11
|
-
color1?: Vec3;
|
|
12
|
-
color2?: Vec3;
|
|
13
|
-
iterations?: number;
|
|
14
|
-
className?: string;
|
|
15
|
-
style?: CSSProperties;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
declare type Vec3 = [number, number, number];
|
|
19
|
-
|
|
20
|
-
export { }
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { CSSProperties } from 'react';
|
|
2
|
-
type Vec3 = [number, number, number];
|
|
3
|
-
export interface MarbleProps {
|
|
4
|
-
marbleScale?: number;
|
|
5
|
-
tileScale?: number;
|
|
6
|
-
turbulence?: number;
|
|
7
|
-
swirl?: number;
|
|
8
|
-
colorStart?: Vec3;
|
|
9
|
-
colorEnd?: Vec3;
|
|
10
|
-
veinColor?: Vec3;
|
|
11
|
-
colorStartDark?: Vec3;
|
|
12
|
-
colorEndDark?: Vec3;
|
|
13
|
-
veinColorDark?: Vec3;
|
|
14
|
-
veinFrequency?: number;
|
|
15
|
-
veinWidth?: number;
|
|
16
|
-
className?: string;
|
|
17
|
-
style?: CSSProperties;
|
|
18
|
-
}
|
|
19
|
-
export declare const Marble: ({ marbleScale, tileScale, turbulence, swirl, veinFrequency, veinWidth, colorStart, colorEnd, veinColor, colorStartDark, colorEndDark, veinColorDark, className, style }: MarbleProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
export default Marble;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("react/jsx-runtime"),C=require("../../src/core/lib/createShaderConfig.js"),r=require("../../src/core/lib/vectorUtils.js"),O=require("../../src/react/components/base/BaseShaderComponent.js"),y=require("../../src/react/hooks/useDarkMode.js"),t=require("./marbleShaders.js"),R=[.8,.8,.9],g=[.3,.3,.6],q=[.1,.1,.3],D=[.2,.2,.3],M=[.1,.1,.2],E=[.05,.05,.1],a=({marbleScale:o=3,tileScale:l=1,turbulence:u=.5,swirl:n=6,veinFrequency:c=6,veinWidth:s=2,colorStart:i=R,colorEnd:v=g,veinColor:d=q,colorStartDark:_=D,colorEndDark:f=M,veinColorDark:S=E,className:m="",style:p})=>{const e=y.useDarkMode(),b=C.createShaderConfig({vertexShader:t.marbleVertexShader,fragmentShader:t.marbleFragmentShader,uniformNames:{u_marbleScale:"float",u_tileScale:"float",u_turbulence:"float",u_swirl:"float",u_colorStart:"vec3",u_colorEnd:"vec3",u_veinColor:"vec3",u_veinFrequency:"float",u_veinWidth:"float"}});return h.jsx(O.BaseShaderComponent,{programId:"marble-shader",shaderConfig:b,className:m,style:p,uniforms:{marbleScale:{value:o,type:"float"},tileScale:{value:l,type:"float"},turbulence:{value:u,type:"float"},swirl:{value:n,type:"float"},veinFrequency:{value:c,type:"float"},veinWidth:{value:s,type:"float"},colorStart:{type:"vec3",value:r.vec3(e?_:i)},colorEnd:{type:"vec3",value:r.vec3(e?f:v)},veinColor:{type:"vec3",value:r.vec3(e?S:d)}}})};exports.Marble=a;exports.default=a;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { jsx as S } from "react/jsx-runtime";
|
|
2
|
-
import { createShaderConfig as O } from "../../src/core/lib/createShaderConfig.mjs";
|
|
3
|
-
import { vec3 as o } from "../../src/core/lib/vectorUtils.mjs";
|
|
4
|
-
import { BaseShaderComponent as y } from "../../src/react/components/base/BaseShaderComponent.mjs";
|
|
5
|
-
import { useDarkMode as C } from "../../src/react/hooks/useDarkMode.mjs";
|
|
6
|
-
import { marbleVertexShader as R, marbleFragmentShader as h } from "./marbleShaders.mjs";
|
|
7
|
-
const b = [0.8, 0.8, 0.9], D = [0.3, 0.3, 0.6], E = [0.1, 0.1, 0.3], L = [0.2, 0.2, 0.3], g = [0.1, 0.1, 0.2], A = [0.05, 0.05, 0.1], M = ({
|
|
8
|
-
marbleScale: t = 3,
|
|
9
|
-
tileScale: r = 1,
|
|
10
|
-
turbulence: a = 0.5,
|
|
11
|
-
swirl: l = 6,
|
|
12
|
-
veinFrequency: n = 6,
|
|
13
|
-
veinWidth: c = 2,
|
|
14
|
-
colorStart: u = b,
|
|
15
|
-
colorEnd: f = D,
|
|
16
|
-
veinColor: m = E,
|
|
17
|
-
colorStartDark: i = L,
|
|
18
|
-
colorEndDark: v = g,
|
|
19
|
-
veinColorDark: s = A,
|
|
20
|
-
className: p = "",
|
|
21
|
-
style: _
|
|
22
|
-
}) => {
|
|
23
|
-
const e = C(), d = O({
|
|
24
|
-
vertexShader: R,
|
|
25
|
-
fragmentShader: h,
|
|
26
|
-
uniformNames: {
|
|
27
|
-
u_marbleScale: "float",
|
|
28
|
-
u_tileScale: "float",
|
|
29
|
-
u_turbulence: "float",
|
|
30
|
-
u_swirl: "float",
|
|
31
|
-
u_colorStart: "vec3",
|
|
32
|
-
u_colorEnd: "vec3",
|
|
33
|
-
u_veinColor: "vec3",
|
|
34
|
-
u_veinFrequency: "float",
|
|
35
|
-
u_veinWidth: "float"
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
return /* @__PURE__ */ S(
|
|
39
|
-
y,
|
|
40
|
-
{
|
|
41
|
-
programId: "marble-shader",
|
|
42
|
-
shaderConfig: d,
|
|
43
|
-
className: p,
|
|
44
|
-
style: _,
|
|
45
|
-
uniforms: {
|
|
46
|
-
marbleScale: { value: t, type: "float" },
|
|
47
|
-
tileScale: { value: r, type: "float" },
|
|
48
|
-
turbulence: { value: a, type: "float" },
|
|
49
|
-
swirl: { value: l, type: "float" },
|
|
50
|
-
veinFrequency: { value: n, type: "float" },
|
|
51
|
-
veinWidth: { value: c, type: "float" },
|
|
52
|
-
colorStart: {
|
|
53
|
-
type: "vec3",
|
|
54
|
-
value: o(e ? i : u)
|
|
55
|
-
},
|
|
56
|
-
colorEnd: {
|
|
57
|
-
type: "vec3",
|
|
58
|
-
value: o(e ? v : f)
|
|
59
|
-
},
|
|
60
|
-
veinColor: {
|
|
61
|
-
type: "vec3",
|
|
62
|
-
value: o(e ? s : m)
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
export {
|
|
69
|
-
M as Marble,
|
|
70
|
-
M as default
|
|
71
|
-
};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
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";
|
|
2
|
-
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";
|