react-native-effects 0.0.1 → 0.1.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/LICENSE +20 -0
- package/README.md +251 -0
- package/lib/module/components/Aurora.js +184 -0
- package/lib/module/components/Aurora.js.map +1 -0
- package/lib/module/components/CalicoSwirl.js +155 -0
- package/lib/module/components/CalicoSwirl.js.map +1 -0
- package/lib/module/components/Campfire.js +225 -0
- package/lib/module/components/Campfire.js.map +1 -0
- package/lib/module/components/CircularGradient.js +52 -0
- package/lib/module/components/CircularGradient.js.map +1 -0
- package/lib/module/components/Iridescence.js +57 -0
- package/lib/module/components/Iridescence.js.map +1 -0
- package/lib/module/components/LinearGradient.js +48 -0
- package/lib/module/components/LinearGradient.js.map +1 -0
- package/lib/module/components/LiquidChrome.js +75 -0
- package/lib/module/components/LiquidChrome.js.map +1 -0
- package/lib/module/components/ShaderView/index.js +224 -0
- package/lib/module/components/ShaderView/index.js.map +1 -0
- package/lib/module/components/ShaderView/types.js +4 -0
- package/lib/module/components/ShaderView/types.js.map +1 -0
- package/lib/module/components/Silk.js +83 -0
- package/lib/module/components/Silk.js.map +1 -0
- package/lib/module/consts.js +154 -0
- package/lib/module/consts.js.map +1 -0
- package/lib/module/hooks/useClock.js +15 -0
- package/lib/module/hooks/useClock.js.map +1 -0
- package/lib/module/hooks/useWGPUSetup.js +54 -0
- package/lib/module/hooks/useWGPUSetup.js.map +1 -0
- package/lib/module/index.js +13 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/shaders/TRIANGLE_VERTEX_SHADER.js +20 -0
- package/lib/module/shaders/TRIANGLE_VERTEX_SHADER.js.map +1 -0
- package/lib/module/shaders/uniforms.js +20 -0
- package/lib/module/shaders/uniforms.js.map +1 -0
- package/lib/module/utils/backgroundRuntime.js +12 -0
- package/lib/module/utils/backgroundRuntime.js.map +1 -0
- package/lib/module/utils/colors.js +94 -0
- package/lib/module/utils/colors.js.map +1 -0
- package/lib/module/utils/initWebGPU.js +40 -0
- package/lib/module/utils/initWebGPU.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/components/Aurora.d.ts +17 -0
- package/lib/typescript/src/components/Aurora.d.ts.map +1 -0
- package/lib/typescript/src/components/CalicoSwirl.d.ts +13 -0
- package/lib/typescript/src/components/CalicoSwirl.d.ts.map +1 -0
- package/lib/typescript/src/components/Campfire.d.ts +17 -0
- package/lib/typescript/src/components/Campfire.d.ts.map +1 -0
- package/lib/typescript/src/components/CircularGradient.d.ts +19 -0
- package/lib/typescript/src/components/CircularGradient.d.ts.map +1 -0
- package/lib/typescript/src/components/Iridescence.d.ts +11 -0
- package/lib/typescript/src/components/Iridescence.d.ts.map +1 -0
- package/lib/typescript/src/components/LinearGradient.d.ts +15 -0
- package/lib/typescript/src/components/LinearGradient.d.ts.map +1 -0
- package/lib/typescript/src/components/LiquidChrome.d.ts +17 -0
- package/lib/typescript/src/components/LiquidChrome.d.ts.map +1 -0
- package/lib/typescript/src/components/ShaderView/index.d.ts +3 -0
- package/lib/typescript/src/components/ShaderView/index.d.ts.map +1 -0
- package/lib/typescript/src/components/ShaderView/types.d.ts +15 -0
- package/lib/typescript/src/components/ShaderView/types.d.ts.map +1 -0
- package/lib/typescript/src/components/Silk.d.ts +17 -0
- package/lib/typescript/src/components/Silk.d.ts.map +1 -0
- package/lib/typescript/src/consts.d.ts +2 -0
- package/lib/typescript/src/consts.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useClock.d.ts +3 -0
- package/lib/typescript/src/hooks/useClock.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useWGPUSetup.d.ts +15 -0
- package/lib/typescript/src/hooks/useWGPUSetup.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +12 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/shaders/TRIANGLE_VERTEX_SHADER.d.ts +2 -0
- package/lib/typescript/src/shaders/TRIANGLE_VERTEX_SHADER.d.ts.map +1 -0
- package/lib/typescript/src/shaders/uniforms.d.ts +6 -0
- package/lib/typescript/src/shaders/uniforms.d.ts.map +1 -0
- package/lib/typescript/src/utils/backgroundRuntime.d.ts +3 -0
- package/lib/typescript/src/utils/backgroundRuntime.d.ts.map +1 -0
- package/lib/typescript/src/utils/colors.d.ts +22 -0
- package/lib/typescript/src/utils/colors.d.ts.map +1 -0
- package/lib/typescript/src/utils/initWebGPU.d.ts +23 -0
- package/lib/typescript/src/utils/initWebGPU.d.ts.map +1 -0
- package/package.json +174 -7
- package/src/components/Aurora.tsx +203 -0
- package/src/components/CalicoSwirl.tsx +167 -0
- package/src/components/Campfire.tsx +244 -0
- package/src/components/CircularGradient.tsx +76 -0
- package/src/components/Iridescence.tsx +67 -0
- package/src/components/LinearGradient.tsx +62 -0
- package/src/components/LiquidChrome.tsx +94 -0
- package/src/components/ShaderView/index.tsx +225 -0
- package/src/components/ShaderView/types.ts +15 -0
- package/src/components/Silk.tsx +102 -0
- package/src/consts.ts +152 -0
- package/src/hooks/useClock.ts +20 -0
- package/src/hooks/useWGPUSetup.tsx +73 -0
- package/src/index.tsx +23 -0
- package/src/shaders/TRIANGLE_VERTEX_SHADER.ts +17 -0
- package/src/shaders/uniforms.ts +17 -0
- package/src/utils/backgroundRuntime.ts +10 -0
- package/src/utils/colors.ts +117 -0
- package/src/utils/initWebGPU.ts +47 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { PixelRatio, StyleSheet } from 'react-native';
|
|
4
|
+
import { Canvas } from 'react-native-wgpu';
|
|
5
|
+
import { useEffect, useRef } from 'react';
|
|
6
|
+
import { createSynchronizable, scheduleOnRuntime } from 'react-native-worklets';
|
|
7
|
+
import { colorToVec4 } from "../../utils/colors.js";
|
|
8
|
+
import { useWGPUSetup } from "../../hooks/useWGPUSetup.js";
|
|
9
|
+
import { TRIANGLE_VERTEX_SHADER } from "../../shaders/TRIANGLE_VERTEX_SHADER.js";
|
|
10
|
+
import { UNIFORM_BUFFER_SIZE, UNIFORM_FLOAT_COUNT } from "../../shaders/uniforms.js";
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
// Synchronizable layout: [c0r,c0g,c0b,c0a, c1r,c1g,c1b,c1a, speed, p0..p7, alive]
|
|
13
|
+
// Total: 4 + 4 + 1 + 8 + 1 = 18 floats
|
|
14
|
+
const SYNC_SIZE = 18;
|
|
15
|
+
const IDX_SPEED = 8;
|
|
16
|
+
const IDX_PARAMS = 9; // 9..16
|
|
17
|
+
const IDX_ALIVE = 17;
|
|
18
|
+
export default function ShaderView({
|
|
19
|
+
fragmentShader,
|
|
20
|
+
colors = [],
|
|
21
|
+
speed = 1.0,
|
|
22
|
+
params = [],
|
|
23
|
+
isStatic = false,
|
|
24
|
+
style,
|
|
25
|
+
...viewProps
|
|
26
|
+
}) {
|
|
27
|
+
const {
|
|
28
|
+
canvasRef,
|
|
29
|
+
runtime,
|
|
30
|
+
resources
|
|
31
|
+
} = useWGPUSetup();
|
|
32
|
+
const propsSync = useRef(createSynchronizable(new Float64Array(SYNC_SIZE))).current;
|
|
33
|
+
|
|
34
|
+
// Convert props to flat floats and push to synchronizable
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
const data = new Float64Array(SYNC_SIZE);
|
|
37
|
+
|
|
38
|
+
// color0 (indices 0-3)
|
|
39
|
+
if (colors[0] !== undefined) {
|
|
40
|
+
const c0 = colorToVec4(colors[0]);
|
|
41
|
+
data[0] = c0.r;
|
|
42
|
+
data[1] = c0.g;
|
|
43
|
+
data[2] = c0.b;
|
|
44
|
+
data[3] = c0.a;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// color1 (indices 4-7)
|
|
48
|
+
if (colors[1] !== undefined) {
|
|
49
|
+
const c1 = colorToVec4(colors[1]);
|
|
50
|
+
data[4] = c1.r;
|
|
51
|
+
data[5] = c1.g;
|
|
52
|
+
data[6] = c1.b;
|
|
53
|
+
data[7] = c1.a;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// speed
|
|
57
|
+
data[IDX_SPEED] = speed;
|
|
58
|
+
|
|
59
|
+
// params (indices 9-16)
|
|
60
|
+
for (let i = 0; i < 8; i++) {
|
|
61
|
+
data[IDX_PARAMS + i] = params[i] ?? 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// alive
|
|
65
|
+
data[IDX_ALIVE] = 1;
|
|
66
|
+
propsSync.setBlocking(() => data);
|
|
67
|
+
}, [colors, speed, params, propsSync]);
|
|
68
|
+
|
|
69
|
+
// Signal cleanup on unmount
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
return () => {
|
|
72
|
+
propsSync.setBlocking(prev => {
|
|
73
|
+
prev[IDX_ALIVE] = 0;
|
|
74
|
+
return prev;
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
}, [propsSync]);
|
|
78
|
+
|
|
79
|
+
// Start render loop when GPU resources are ready
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (!resources) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const {
|
|
85
|
+
device,
|
|
86
|
+
context,
|
|
87
|
+
presentationFormat
|
|
88
|
+
} = resources;
|
|
89
|
+
const dpr = PixelRatio.get();
|
|
90
|
+
scheduleOnRuntime(runtime, () => {
|
|
91
|
+
'worklet';
|
|
92
|
+
|
|
93
|
+
// Create pipeline once
|
|
94
|
+
const pipeline = device.createRenderPipeline({
|
|
95
|
+
layout: 'auto',
|
|
96
|
+
vertex: {
|
|
97
|
+
module: device.createShaderModule({
|
|
98
|
+
code: TRIANGLE_VERTEX_SHADER
|
|
99
|
+
}),
|
|
100
|
+
entryPoint: 'main'
|
|
101
|
+
},
|
|
102
|
+
fragment: {
|
|
103
|
+
module: device.createShaderModule({
|
|
104
|
+
code: fragmentShader
|
|
105
|
+
}),
|
|
106
|
+
entryPoint: 'main',
|
|
107
|
+
targets: [{
|
|
108
|
+
format: presentationFormat
|
|
109
|
+
}]
|
|
110
|
+
},
|
|
111
|
+
primitive: {
|
|
112
|
+
topology: 'triangle-list'
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
// Create uniform buffer + bind group once, reuse via writeBuffer
|
|
117
|
+
const uniformBuffer = device.createBuffer({
|
|
118
|
+
size: UNIFORM_BUFFER_SIZE,
|
|
119
|
+
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST
|
|
120
|
+
});
|
|
121
|
+
const bindGroup = device.createBindGroup({
|
|
122
|
+
layout: pipeline.getBindGroupLayout(0),
|
|
123
|
+
entries: [{
|
|
124
|
+
binding: 0,
|
|
125
|
+
resource: {
|
|
126
|
+
buffer: uniformBuffer
|
|
127
|
+
}
|
|
128
|
+
}]
|
|
129
|
+
});
|
|
130
|
+
const uniformData = new Float32Array(UNIFORM_FLOAT_COUNT);
|
|
131
|
+
let accumulatedTime = 0;
|
|
132
|
+
let lastTimestamp = 0;
|
|
133
|
+
function render(timestamp) {
|
|
134
|
+
const props = propsSync.getDirty();
|
|
135
|
+
if (props[IDX_ALIVE] === 0) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Compute dt
|
|
140
|
+
const dt = lastTimestamp === 0 ? 0 : (timestamp - lastTimestamp) / 1000;
|
|
141
|
+
lastTimestamp = timestamp;
|
|
142
|
+
|
|
143
|
+
// Accumulate time with speed
|
|
144
|
+
const currentSpeed = props[IDX_SPEED];
|
|
145
|
+
accumulatedTime += dt * currentSpeed;
|
|
146
|
+
|
|
147
|
+
// Resolution
|
|
148
|
+
const canvas = context.canvas;
|
|
149
|
+
const width = canvas.width || 1;
|
|
150
|
+
const height = canvas.height || 1;
|
|
151
|
+
const aspect = width / height;
|
|
152
|
+
|
|
153
|
+
// Fill uniform data (6 × vec4 = 24 floats)
|
|
154
|
+
// resolution: vec4<f32>
|
|
155
|
+
uniformData[0] = width;
|
|
156
|
+
uniformData[1] = height;
|
|
157
|
+
uniformData[2] = aspect;
|
|
158
|
+
uniformData[3] = dpr;
|
|
159
|
+
|
|
160
|
+
// time: vec4<f32>
|
|
161
|
+
uniformData[4] = accumulatedTime;
|
|
162
|
+
uniformData[5] = dt;
|
|
163
|
+
uniformData[6] = 0;
|
|
164
|
+
uniformData[7] = 0;
|
|
165
|
+
|
|
166
|
+
// color0: vec4<f32>
|
|
167
|
+
uniformData[8] = props[0];
|
|
168
|
+
uniformData[9] = props[1];
|
|
169
|
+
uniformData[10] = props[2];
|
|
170
|
+
uniformData[11] = props[3];
|
|
171
|
+
|
|
172
|
+
// color1: vec4<f32>
|
|
173
|
+
uniformData[12] = props[4];
|
|
174
|
+
uniformData[13] = props[5];
|
|
175
|
+
uniformData[14] = props[6];
|
|
176
|
+
uniformData[15] = props[7];
|
|
177
|
+
|
|
178
|
+
// params0: vec4<f32>
|
|
179
|
+
uniformData[16] = props[IDX_PARAMS];
|
|
180
|
+
uniformData[17] = props[IDX_PARAMS + 1];
|
|
181
|
+
uniformData[18] = props[IDX_PARAMS + 2];
|
|
182
|
+
uniformData[19] = props[IDX_PARAMS + 3];
|
|
183
|
+
|
|
184
|
+
// params1: vec4<f32>
|
|
185
|
+
uniformData[20] = props[IDX_PARAMS + 4];
|
|
186
|
+
uniformData[21] = props[IDX_PARAMS + 5];
|
|
187
|
+
uniformData[22] = props[IDX_PARAMS + 6];
|
|
188
|
+
uniformData[23] = props[IDX_PARAMS + 7];
|
|
189
|
+
device.queue.writeBuffer(uniformBuffer, 0, uniformData);
|
|
190
|
+
const commandEncoder = device.createCommandEncoder();
|
|
191
|
+
const textureView = context.getCurrentTexture().createView();
|
|
192
|
+
const passEncoder = commandEncoder.beginRenderPass({
|
|
193
|
+
colorAttachments: [{
|
|
194
|
+
view: textureView,
|
|
195
|
+
clearValue: [0, 0, 0, 1],
|
|
196
|
+
loadOp: 'clear',
|
|
197
|
+
storeOp: 'store'
|
|
198
|
+
}]
|
|
199
|
+
});
|
|
200
|
+
passEncoder.setPipeline(pipeline);
|
|
201
|
+
passEncoder.setBindGroup(0, bindGroup);
|
|
202
|
+
passEncoder.draw(3);
|
|
203
|
+
passEncoder.end();
|
|
204
|
+
device.queue.submit([commandEncoder.finish()]);
|
|
205
|
+
context.present();
|
|
206
|
+
if (!isStatic) {
|
|
207
|
+
requestAnimationFrame(render);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
requestAnimationFrame(render);
|
|
211
|
+
});
|
|
212
|
+
}, [resources, runtime, propsSync, fragmentShader, isStatic]);
|
|
213
|
+
return /*#__PURE__*/_jsx(Canvas, {
|
|
214
|
+
ref: canvasRef,
|
|
215
|
+
style: [styles.canvas, style],
|
|
216
|
+
...viewProps
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
const styles = StyleSheet.create({
|
|
220
|
+
canvas: {
|
|
221
|
+
flex: 1
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PixelRatio","StyleSheet","Canvas","useEffect","useRef","createSynchronizable","scheduleOnRuntime","colorToVec4","useWGPUSetup","TRIANGLE_VERTEX_SHADER","UNIFORM_BUFFER_SIZE","UNIFORM_FLOAT_COUNT","jsx","_jsx","SYNC_SIZE","IDX_SPEED","IDX_PARAMS","IDX_ALIVE","ShaderView","fragmentShader","colors","speed","params","isStatic","style","viewProps","canvasRef","runtime","resources","propsSync","Float64Array","current","data","undefined","c0","r","g","b","a","c1","i","setBlocking","prev","device","context","presentationFormat","dpr","get","pipeline","createRenderPipeline","layout","vertex","module","createShaderModule","code","entryPoint","fragment","targets","format","primitive","topology","uniformBuffer","createBuffer","size","usage","GPUBufferUsage","UNIFORM","COPY_DST","bindGroup","createBindGroup","getBindGroupLayout","entries","binding","resource","buffer","uniformData","Float32Array","accumulatedTime","lastTimestamp","render","timestamp","props","getDirty","dt","currentSpeed","canvas","width","height","aspect","queue","writeBuffer","commandEncoder","createCommandEncoder","textureView","getCurrentTexture","createView","passEncoder","beginRenderPass","colorAttachments","view","clearValue","loadOp","storeOp","setPipeline","setBindGroup","draw","end","submit","finish","present","requestAnimationFrame","ref","styles","create","flex"],"sourceRoot":"../../../../src","sources":["components/ShaderView/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/ShaderView/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import ShaderView from "./ShaderView/index.js";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export default function Silk({
|
|
7
|
+
color = '#7B7481',
|
|
8
|
+
speed = 1.0,
|
|
9
|
+
scale = 1.0,
|
|
10
|
+
rotation = 0.0,
|
|
11
|
+
noiseIntensity = 1.5,
|
|
12
|
+
...viewProps
|
|
13
|
+
}) {
|
|
14
|
+
const colors = useMemo(() => [color], [color]);
|
|
15
|
+
const params = useMemo(() => [scale, rotation, noiseIntensity], [scale, rotation, noiseIntensity]);
|
|
16
|
+
return /*#__PURE__*/_jsx(ShaderView, {
|
|
17
|
+
fragmentShader: SILK_SHADER,
|
|
18
|
+
colors: colors,
|
|
19
|
+
params: params,
|
|
20
|
+
speed: speed,
|
|
21
|
+
isStatic: false,
|
|
22
|
+
...viewProps
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const SILK_SHADER = /* wgsl */`
|
|
26
|
+
struct Uniforms {
|
|
27
|
+
resolution: vec4<f32>,
|
|
28
|
+
time: vec4<f32>,
|
|
29
|
+
color0: vec4<f32>,
|
|
30
|
+
color1: vec4<f32>,
|
|
31
|
+
params0: vec4<f32>,
|
|
32
|
+
params1: vec4<f32>,
|
|
33
|
+
};
|
|
34
|
+
@group(0) @binding(0) var<uniform> u: Uniforms;
|
|
35
|
+
|
|
36
|
+
const e = 2.71828182845904523536;
|
|
37
|
+
|
|
38
|
+
fn noise(texCoord: vec2<f32>) -> f32 {
|
|
39
|
+
let G = e;
|
|
40
|
+
let r = (G * sin(G * texCoord));
|
|
41
|
+
return fract(r.x * r.y * (1.0 + texCoord.x));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
fn rotateUvs(uv: vec2<f32>, angle: f32) -> vec2<f32> {
|
|
45
|
+
let c = cos(angle);
|
|
46
|
+
let s = sin(angle);
|
|
47
|
+
let rot = mat2x2<f32>(c, -s, s, c);
|
|
48
|
+
return rot * uv;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@fragment
|
|
52
|
+
fn main(@location(0) ndc: vec2<f32>) -> @location(0) vec4<f32> {
|
|
53
|
+
let time = u.time.x;
|
|
54
|
+
let scale = u.params0.x;
|
|
55
|
+
let rotation = u.params0.y;
|
|
56
|
+
let noiseIntensity = u.params0.z;
|
|
57
|
+
|
|
58
|
+
let resolution2D = u.resolution.xy;
|
|
59
|
+
let vUv = ndc * 0.5 + vec2<f32>(0.5, 0.5);
|
|
60
|
+
let fragCoord = vUv * resolution2D;
|
|
61
|
+
|
|
62
|
+
let rnd = noise(fragCoord);
|
|
63
|
+
let uv = rotateUvs(vUv * scale, rotation);
|
|
64
|
+
var tex = uv * scale;
|
|
65
|
+
let tOffset = time;
|
|
66
|
+
|
|
67
|
+
tex.y = tex.y + 0.03 * sin(8.0 * tex.x - tOffset);
|
|
68
|
+
|
|
69
|
+
let pattern = 0.6 +
|
|
70
|
+
0.4 * sin(5.0 * (tex.x + tex.y +
|
|
71
|
+
cos(3.0 * tex.x + 5.0 * tex.y) +
|
|
72
|
+
0.02 * tOffset) +
|
|
73
|
+
sin(20.0 * (tex.x + tex.y - 0.1 * tOffset)));
|
|
74
|
+
|
|
75
|
+
var col = u.color0 * vec4<f32>(pattern, pattern, pattern, 1.0) -
|
|
76
|
+
vec4<f32>(rnd / 15.0 * noiseIntensity, rnd / 15.0 * noiseIntensity,
|
|
77
|
+
rnd / 15.0 * noiseIntensity, 0.0);
|
|
78
|
+
col.a = u.color0.a;
|
|
79
|
+
|
|
80
|
+
return clamp(col, vec4<f32>(0.0), vec4<f32>(1.0));
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
//# sourceMappingURL=Silk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","ShaderView","jsx","_jsx","Silk","color","speed","scale","rotation","noiseIntensity","viewProps","colors","params","fragmentShader","SILK_SHADER","isStatic"],"sourceRoot":"../../../src","sources":["components/Silk.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAG/B,OAAOC,UAAU,MAAM,uBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAetC,eAAe,SAASC,IAAIA,CAAC;EAC3BC,KAAK,GAAG,SAAS;EACjBC,KAAK,GAAG,GAAG;EACXC,KAAK,GAAG,GAAG;EACXC,QAAQ,GAAG,GAAG;EACdC,cAAc,GAAG,GAAG;EACpB,GAAGC;AACE,CAAC,EAAE;EACR,MAAMC,MAAM,GAAGX,OAAO,CAAC,MAAM,CAACK,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAC9C,MAAMO,MAAM,GAAGZ,OAAO,CACpB,MAAM,CAACO,KAAK,EAAEC,QAAQ,EAAEC,cAAc,CAAC,EACvC,CAACF,KAAK,EAAEC,QAAQ,EAAEC,cAAc,CAClC,CAAC;EAED,oBACEN,IAAA,CAACF,UAAU;IACTY,cAAc,EAAEC,WAAY;IAC5BH,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEA,MAAO;IACfN,KAAK,EAAEA,KAAM;IACbS,QAAQ,EAAE,KAAM;IAAA,GACZL;EAAS,CACd,CAAC;AAEN;AAEA,MAAMI,WAAW,GAAG,UAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const NAMED_COLORS = {
|
|
4
|
+
// Basic colors
|
|
5
|
+
black: 0x000000,
|
|
6
|
+
white: 0xffffff,
|
|
7
|
+
red: 0xff0000,
|
|
8
|
+
green: 0x008000,
|
|
9
|
+
blue: 0x0000ff,
|
|
10
|
+
yellow: 0xffff00,
|
|
11
|
+
cyan: 0x00ffff,
|
|
12
|
+
magenta: 0xff00ff,
|
|
13
|
+
silver: 0xc0c0c0,
|
|
14
|
+
gray: 0x808080,
|
|
15
|
+
grey: 0x808080,
|
|
16
|
+
maroon: 0x800000,
|
|
17
|
+
olive: 0x808000,
|
|
18
|
+
lime: 0x00ff00,
|
|
19
|
+
aqua: 0x00ffff,
|
|
20
|
+
teal: 0x008080,
|
|
21
|
+
navy: 0x000080,
|
|
22
|
+
fuchsia: 0xff00ff,
|
|
23
|
+
purple: 0x800080,
|
|
24
|
+
// Extended colors
|
|
25
|
+
aliceblue: 0xf0f8ff,
|
|
26
|
+
antiquewhite: 0xfaebd7,
|
|
27
|
+
aquamarine: 0x7fffd4,
|
|
28
|
+
azure: 0xf0ffff,
|
|
29
|
+
beige: 0xf5f5dc,
|
|
30
|
+
bisque: 0xffe4c4,
|
|
31
|
+
blanchedalmond: 0xffebcd,
|
|
32
|
+
blueviolet: 0x8a2be2,
|
|
33
|
+
brown: 0xa52a2a,
|
|
34
|
+
burlywood: 0xdeb887,
|
|
35
|
+
cadetblue: 0x5f9ea0,
|
|
36
|
+
chartreuse: 0x7fff00,
|
|
37
|
+
chocolate: 0xd2691e,
|
|
38
|
+
coral: 0xff7f50,
|
|
39
|
+
cornflowerblue: 0x6495ed,
|
|
40
|
+
cornsilk: 0xfff8dc,
|
|
41
|
+
crimson: 0xdc143c,
|
|
42
|
+
darkblue: 0x00008b,
|
|
43
|
+
darkcyan: 0x008b8b,
|
|
44
|
+
darkgoldenrod: 0xb8860b,
|
|
45
|
+
darkgray: 0xa9a9a9,
|
|
46
|
+
darkgrey: 0xa9a9a9,
|
|
47
|
+
darkgreen: 0x006400,
|
|
48
|
+
darkkhaki: 0xbdb76b,
|
|
49
|
+
darkmagenta: 0x8b008b,
|
|
50
|
+
darkolivegreen: 0x556b2f,
|
|
51
|
+
darkorange: 0xff8c00,
|
|
52
|
+
darkorchid: 0x9932cc,
|
|
53
|
+
darkred: 0x8b0000,
|
|
54
|
+
darksalmon: 0xe9967a,
|
|
55
|
+
darkseagreen: 0x8fbc8f,
|
|
56
|
+
darkslateblue: 0x483d8b,
|
|
57
|
+
darkslategray: 0x2f4f4f,
|
|
58
|
+
darkslategrey: 0x2f4f4f,
|
|
59
|
+
darkturquoise: 0x00ced1,
|
|
60
|
+
darkviolet: 0x9400d3,
|
|
61
|
+
deeppink: 0xff1493,
|
|
62
|
+
deepskyblue: 0x00bfff,
|
|
63
|
+
dimgray: 0x696969,
|
|
64
|
+
dimgrey: 0x696969,
|
|
65
|
+
dodgerblue: 0x1e90ff,
|
|
66
|
+
firebrick: 0xb22222,
|
|
67
|
+
floralwhite: 0xfffaf0,
|
|
68
|
+
forestgreen: 0x228b22,
|
|
69
|
+
gainsboro: 0xdcdcdc,
|
|
70
|
+
ghostwhite: 0xf8f8ff,
|
|
71
|
+
gold: 0xffd700,
|
|
72
|
+
goldenrod: 0xdaa520,
|
|
73
|
+
greenyellow: 0xadff2f,
|
|
74
|
+
honeydew: 0xf0fff0,
|
|
75
|
+
hotpink: 0xff69b4,
|
|
76
|
+
indianred: 0xcd5c5c,
|
|
77
|
+
indigo: 0x4b0082,
|
|
78
|
+
ivory: 0xfffff0,
|
|
79
|
+
khaki: 0xf0e68c,
|
|
80
|
+
lavender: 0xe6e6fa,
|
|
81
|
+
lavenderblush: 0xfff0f5,
|
|
82
|
+
lawngreen: 0x7cfc00,
|
|
83
|
+
lemonchiffon: 0xfffacd,
|
|
84
|
+
lightblue: 0xadd8e6,
|
|
85
|
+
lightcoral: 0xf08080,
|
|
86
|
+
lightcyan: 0xe0ffff,
|
|
87
|
+
lightgoldenrodyellow: 0xfafad2,
|
|
88
|
+
lightgray: 0xd3d3d3,
|
|
89
|
+
lightgrey: 0xd3d3d3,
|
|
90
|
+
lightgreen: 0x90ee90,
|
|
91
|
+
lightpink: 0xffb6c1,
|
|
92
|
+
lightsalmon: 0xffa07a,
|
|
93
|
+
lightseagreen: 0x20b2aa,
|
|
94
|
+
lightskyblue: 0x87cefa,
|
|
95
|
+
lightslategray: 0x778899,
|
|
96
|
+
lightslategrey: 0x778899,
|
|
97
|
+
lightsteelblue: 0xb0c4de,
|
|
98
|
+
lightyellow: 0xffffe0,
|
|
99
|
+
limegreen: 0x32cd32,
|
|
100
|
+
linen: 0xfaf0e6,
|
|
101
|
+
mediumaquamarine: 0x66cdaa,
|
|
102
|
+
mediumblue: 0x0000cd,
|
|
103
|
+
mediumorchid: 0xba55d3,
|
|
104
|
+
mediumpurple: 0x9370db,
|
|
105
|
+
mediumseagreen: 0x3cb371,
|
|
106
|
+
mediumslateblue: 0x7b68ee,
|
|
107
|
+
mediumspringgreen: 0x00fa9a,
|
|
108
|
+
mediumturquoise: 0x48d1cc,
|
|
109
|
+
mediumvioletred: 0xc71585,
|
|
110
|
+
midnightblue: 0x191970,
|
|
111
|
+
mintcream: 0xf5fffa,
|
|
112
|
+
mistyrose: 0xffe4e1,
|
|
113
|
+
moccasin: 0xffe4b5,
|
|
114
|
+
navajowhite: 0xffdead,
|
|
115
|
+
oldlace: 0xfdf5e6,
|
|
116
|
+
olivedrab: 0x6b8e23,
|
|
117
|
+
orange: 0xffa500,
|
|
118
|
+
orangered: 0xff4500,
|
|
119
|
+
orchid: 0xda70d6,
|
|
120
|
+
palegoldenrod: 0xeee8aa,
|
|
121
|
+
palegreen: 0x98fb98,
|
|
122
|
+
paleturquoise: 0xafeeee,
|
|
123
|
+
palevioletred: 0xdb7093,
|
|
124
|
+
papayawhip: 0xffefd5,
|
|
125
|
+
peachpuff: 0xffdab9,
|
|
126
|
+
peru: 0xcd853f,
|
|
127
|
+
pink: 0xffc0cb,
|
|
128
|
+
plum: 0xdda0dd,
|
|
129
|
+
powderblue: 0xb0e0e6,
|
|
130
|
+
rosybrown: 0xbc8f8f,
|
|
131
|
+
royalblue: 0x4169e1,
|
|
132
|
+
saddlebrown: 0x8b4513,
|
|
133
|
+
salmon: 0xfa8072,
|
|
134
|
+
sandybrown: 0xf4a460,
|
|
135
|
+
seagreen: 0x2e8b57,
|
|
136
|
+
seashell: 0xfff5ee,
|
|
137
|
+
sienna: 0xa0522d,
|
|
138
|
+
skyblue: 0x87ceeb,
|
|
139
|
+
slateblue: 0x6a5acd,
|
|
140
|
+
slategray: 0x708090,
|
|
141
|
+
slategrey: 0x708090,
|
|
142
|
+
snow: 0xfffafa,
|
|
143
|
+
springgreen: 0x00ff7f,
|
|
144
|
+
steelblue: 0x4682b4,
|
|
145
|
+
tan: 0xd2b48c,
|
|
146
|
+
thistle: 0xd8bfd8,
|
|
147
|
+
tomato: 0xff6347,
|
|
148
|
+
turquoise: 0x40e0d0,
|
|
149
|
+
violet: 0xee82ee,
|
|
150
|
+
wheat: 0xf5deb3,
|
|
151
|
+
whitesmoke: 0xf5f5f5,
|
|
152
|
+
yellowgreen: 0x9acd32
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NAMED_COLORS","black","white","red","green","blue","yellow","cyan","magenta","silver","gray","grey","maroon","olive","lime","aqua","teal","navy","fuchsia","purple","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen"],"sourceRoot":"../../src","sources":["consts.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { useFrameCallback, useSharedValue } from 'react-native-reanimated';
|
|
5
|
+
export function useClock() {
|
|
6
|
+
const clock = useSharedValue(0);
|
|
7
|
+
const callback = useCallback(info => {
|
|
8
|
+
'worklet';
|
|
9
|
+
|
|
10
|
+
clock.value = info.timeSinceFirstFrame;
|
|
11
|
+
}, [clock]);
|
|
12
|
+
useFrameCallback(callback);
|
|
13
|
+
return clock;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=useClock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useFrameCallback","useSharedValue","useClock","clock","callback","info","value","timeSinceFirstFrame"],"sourceRoot":"../../../src","sources":["hooks/useClock.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SACEC,gBAAgB,EAChBC,cAAc,QAGT,yBAAyB;AAEhC,OAAO,SAASC,QAAQA,CAAA,EAAwB;EAC9C,MAAMC,KAAK,GAAGF,cAAc,CAAC,CAAC,CAAC;EAC/B,MAAMG,QAAQ,GAAGL,WAAW,CACzBM,IAAe,IAAK;IACnB,SAAS;;IACTF,KAAK,CAACG,KAAK,GAAGD,IAAI,CAACE,mBAAmB;EACxC,CAAC,EACD,CAACJ,KAAK,CACR,CAAC;EACDH,gBAAgB,CAACI,QAAQ,CAAC;EAC1B,OAAOD,KAAK;AACd","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { PixelRatio } from 'react-native';
|
|
4
|
+
import { useCanvasRef } from 'react-native-wgpu';
|
|
5
|
+
import { useEffect, useState } from 'react';
|
|
6
|
+
import { initWebGPU } from "../utils/initWebGPU.js";
|
|
7
|
+
import { BackgroundRuntime } from "../utils/backgroundRuntime.js";
|
|
8
|
+
export function useWGPUSetup() {
|
|
9
|
+
const canvasRef = useCanvasRef();
|
|
10
|
+
const [resources, setResources] = useState(null);
|
|
11
|
+
const runtime = BackgroundRuntime;
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
let cancelled = false;
|
|
14
|
+
(async () => {
|
|
15
|
+
const adapter = await navigator.gpu.requestAdapter();
|
|
16
|
+
if (!adapter || cancelled) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const device = await adapter.requestDevice();
|
|
20
|
+
if (cancelled) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const context = canvasRef.current.getContext('webgpu');
|
|
24
|
+
const canvas = context.canvas;
|
|
25
|
+
const dpr = PixelRatio.get();
|
|
26
|
+
canvas.width = canvas.width * dpr;
|
|
27
|
+
canvas.height = canvas.height * dpr;
|
|
28
|
+
const presentationFormat = navigator.gpu.getPreferredCanvasFormat();
|
|
29
|
+
context.configure({
|
|
30
|
+
device,
|
|
31
|
+
format: presentationFormat,
|
|
32
|
+
alphaMode: 'premultiplied'
|
|
33
|
+
});
|
|
34
|
+
initWebGPU(runtime);
|
|
35
|
+
if (!cancelled) {
|
|
36
|
+
setResources({
|
|
37
|
+
device,
|
|
38
|
+
context,
|
|
39
|
+
presentationFormat
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
})();
|
|
43
|
+
return () => {
|
|
44
|
+
cancelled = true;
|
|
45
|
+
};
|
|
46
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47
|
+
}, []);
|
|
48
|
+
return {
|
|
49
|
+
canvasRef,
|
|
50
|
+
runtime,
|
|
51
|
+
resources
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=useWGPUSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PixelRatio","useCanvasRef","useEffect","useState","initWebGPU","BackgroundRuntime","useWGPUSetup","canvasRef","resources","setResources","runtime","cancelled","adapter","navigator","gpu","requestAdapter","device","requestDevice","context","current","getContext","canvas","dpr","get","width","height","presentationFormat","getPreferredCanvasFormat","configure","format","alphaMode"],"sourceRoot":"../../../src","sources":["hooks/useWGPUSetup.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SACEC,YAAY,QAGP,mBAAmB;AAC1B,SAASC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAE3C,SAASC,UAAU,QAAQ,wBAAqB;AAChD,SAASC,iBAAiB,QAAQ,+BAA4B;AAc9D,OAAO,SAASC,YAAYA,CAAA,EAAoB;EAC9C,MAAMC,SAAS,GAAGN,YAAY,CAAC,CAAC;EAChC,MAAM,CAACO,SAAS,EAAEC,YAAY,CAAC,GAAGN,QAAQ,CAAsB,IAAI,CAAC;EACrE,MAAMO,OAAO,GAAGL,iBAAiB;EAEjCH,SAAS,CAAC,MAAM;IACd,IAAIS,SAAS,GAAG,KAAK;IAErB,CAAC,YAAY;MACX,MAAMC,OAAO,GAAG,MAAMC,SAAS,CAACC,GAAG,CAACC,cAAc,CAAC,CAAC;MACpD,IAAI,CAACH,OAAO,IAAID,SAAS,EAAE;QACzB;MACF;MAEA,MAAMK,MAAM,GAAG,MAAMJ,OAAO,CAACK,aAAa,CAAC,CAAC;MAC5C,IAAIN,SAAS,EAAE;QACb;MACF;MAEA,MAAMO,OAAO,GAAGX,SAAS,CAACY,OAAO,CAAEC,UAAU,CAAC,QAAQ,CAAE;MACxD,MAAMC,MAAM,GAAGH,OAAO,CAACG,MAGtB;MACD,MAAMC,GAAG,GAAGtB,UAAU,CAACuB,GAAG,CAAC,CAAC;MAC5BF,MAAM,CAACG,KAAK,GAAGH,MAAM,CAACG,KAAK,GAAGF,GAAG;MACjCD,MAAM,CAACI,MAAM,GAAGJ,MAAM,CAACI,MAAM,GAAGH,GAAG;MAEnC,MAAMI,kBAAkB,GAAGb,SAAS,CAACC,GAAG,CAACa,wBAAwB,CAAC,CAAC;MACnET,OAAO,CAACU,SAAS,CAAC;QAChBZ,MAAM;QACNa,MAAM,EAAEH,kBAAkB;QAC1BI,SAAS,EAAE;MACb,CAAC,CAAC;MAEF1B,UAAU,CAACM,OAAO,CAAC;MAEnB,IAAI,CAACC,SAAS,EAAE;QACdF,YAAY,CAAC;UAAEO,MAAM;UAAEE,OAAO;UAAEQ;QAAmB,CAAC,CAAC;MACvD;IACF,CAAC,EAAE,CAAC;IAEJ,OAAO,MAAM;MACXf,SAAS,GAAG,IAAI;IAClB,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEJ,SAAS;IAAEG,OAAO;IAAEF;EAAU,CAAC;AAC1C","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import CircularGradient from "./components/CircularGradient.js";
|
|
4
|
+
import LinearGradient from "./components/LinearGradient.js";
|
|
5
|
+
import ShaderView from "./components/ShaderView/index.js";
|
|
6
|
+
import Iridescence from "./components/Iridescence.js";
|
|
7
|
+
import LiquidChrome from "./components/LiquidChrome.js";
|
|
8
|
+
import Silk from "./components/Silk.js";
|
|
9
|
+
import Campfire from "./components/Campfire.js";
|
|
10
|
+
import CalicoSwirl from "./components/CalicoSwirl.js";
|
|
11
|
+
import Aurora from "./components/Aurora.js";
|
|
12
|
+
export { CircularGradient, LinearGradient, ShaderView, Iridescence, LiquidChrome, Silk, Campfire, CalicoSwirl, Aurora };
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CircularGradient","LinearGradient","ShaderView","Iridescence","LiquidChrome","Silk","Campfire","CalicoSwirl","Aurora"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,gBAAgB,MAAM,kCAA+B;AAC5D,OAAOC,cAAc,MAAM,gCAA6B;AACxD,OAAOC,UAAU,MAAM,kCAAyB;AAChD,OAAOC,WAAW,MAAM,6BAA0B;AAClD,OAAOC,YAAY,MAAM,8BAA2B;AACpD,OAAOC,IAAI,MAAM,sBAAmB;AACpC,OAAOC,QAAQ,MAAM,0BAAuB;AAC5C,OAAOC,WAAW,MAAM,6BAA0B;AAClD,OAAOC,MAAM,MAAM,wBAAqB;AAIxC,SACER,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,WAAW,EACXC,YAAY,EACZC,IAAI,EACJC,QAAQ,EACRC,WAAW,EACXC,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const TRIANGLE_VERTEX_SHADER = /* wgsl */`
|
|
4
|
+
struct VSOut {
|
|
5
|
+
@builtin(position) pos: vec4<f32>,
|
|
6
|
+
@location(0) ndc: vec2<f32>,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
@vertex
|
|
10
|
+
fn main(@builtin(vertex_index) vid: u32) -> VSOut {
|
|
11
|
+
var p = array<vec2<f32>,3>(
|
|
12
|
+
vec2<f32>(-1.0,-3.0), vec2<f32>(-1.0,1.0), vec2<f32>(3.0,1.0)
|
|
13
|
+
);
|
|
14
|
+
var o: VSOut;
|
|
15
|
+
o.pos = vec4<f32>(p[vid], 0, 1.0);
|
|
16
|
+
o.ndc = p[vid];
|
|
17
|
+
return o;
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
//# sourceMappingURL=TRIANGLE_VERTEX_SHADER.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TRIANGLE_VERTEX_SHADER"],"sourceRoot":"../../../src","sources":["shaders/TRIANGLE_VERTEX_SHADER.ts"],"mappings":";;AAAA,OAAO,MAAMA,sBAAsB,GAAG,UAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/** 96 bytes = 6 × vec4<f32> */
|
|
4
|
+
export const UNIFORM_BUFFER_SIZE = 96;
|
|
5
|
+
|
|
6
|
+
/** Number of float32 values in the uniform buffer */
|
|
7
|
+
export const UNIFORM_FLOAT_COUNT = UNIFORM_BUFFER_SIZE / 4; // 24
|
|
8
|
+
|
|
9
|
+
export const UNIFORMS_WGSL = /* wgsl */`
|
|
10
|
+
struct Uniforms {
|
|
11
|
+
resolution: vec4<f32>, // (width, height, aspect, pixelRatio)
|
|
12
|
+
time: vec4<f32>, // (seconds, dt, 0, 0)
|
|
13
|
+
color0: vec4<f32>, // colors[0] RGBA
|
|
14
|
+
color1: vec4<f32>, // colors[1] RGBA
|
|
15
|
+
params0: vec4<f32>, // params[0..3]
|
|
16
|
+
params1: vec4<f32>, // params[4..7]
|
|
17
|
+
};
|
|
18
|
+
@group(0) @binding(0) var<uniform> u: Uniforms;
|
|
19
|
+
`;
|
|
20
|
+
//# sourceMappingURL=uniforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UNIFORM_BUFFER_SIZE","UNIFORM_FLOAT_COUNT","UNIFORMS_WGSL"],"sourceRoot":"../../../src","sources":["shaders/uniforms.ts"],"mappings":";;AAAA;AACA,OAAO,MAAMA,mBAAmB,GAAG,EAAE;;AAErC;AACA,OAAO,MAAMC,mBAAmB,GAAGD,mBAAmB,GAAG,CAAC,CAAC,CAAC;;AAE5D,OAAO,MAAME,aAAa,GAAG,UAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createWorkletRuntime, scheduleOnRuntime } from 'react-native-worklets';
|
|
4
|
+
export const BackgroundRuntime = createWorkletRuntime({
|
|
5
|
+
name: 'react-native-effects'
|
|
6
|
+
});
|
|
7
|
+
export function runOnBackground(callback) {
|
|
8
|
+
'worklet';
|
|
9
|
+
|
|
10
|
+
return scheduleOnRuntime(BackgroundRuntime, callback);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=backgroundRuntime.js.map
|