react-native-shine 0.2.0 → 0.2.1

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/README.md CHANGED
@@ -1,35 +1,159 @@
1
1
  # react-native-shine
2
2
 
3
- Fast and efficient way of adding interactive effects that are run entirely on shaders using typeGPU.
3
+ Fast and efficient way to add interactive GPU-based shader effects to your React Native apps using [TypeGPU](https://github.com/type-gpu/type-gpu) and [WebGPU](https://github.com/wojtus7/react-native-wgpu).
4
4
 
5
- ## Installation
5
+ `react-native-shine` leverages powerful GPU execution via native bindings, delivering lovely, fancy and **shiny** effects—ideal for UIs or creative interactions.
6
6
 
7
+ ---
8
+
9
+ ## ⚙️ Installation
10
+
11
+ Install the library:
7
12
 
8
13
  ```sh
14
+ yarn add react-native-shine
15
+ # or
9
16
  npm install react-native-shine
10
17
  ```
11
18
 
19
+ ---
20
+
21
+ ### 📦 Install Required Peer Dependencies
22
+
23
+ This library depends on several native modules that must be installed in your host app.
24
+
25
+ Install required peer dependencies with:
26
+
27
+ ```sh
28
+ yarn add react-native-reanimated react-native-worklets react-native-wgpu typegpu
29
+ # or
30
+ npm install react-native-reanimated react-native-worklets react-native-wgpu typegpu
31
+ ```
32
+
33
+ These are not bundled with the library and must match compatible versions used by your app.
34
+
35
+ ---
36
+
37
+ ### 🛠️ Optional: Auto-install Peer Dependencies
38
+
39
+ You can also use our helper script to install all peer deps automatically:
40
+
41
+ ```sh
42
+ yarn run install-peers
43
+ ```
44
+
45
+ Or use `install-peerdeps`:
46
+
47
+ ```sh
48
+ npx install-peerdeps react-native-shine
49
+ ```
50
+
51
+ > Note: `install-peerdeps` reads the `peerDependencies` section of the package and installs them at the root level of your project.
52
+
53
+ ---
12
54
 
13
- ## Usage
55
+ ### Update Your `babel.config.js`
14
56
 
57
+ For this library to work, you need to add the `unplugin-typegpu/babel` plugin. It comes bundled as a dependency, so you just need to add it in your Babel config.
15
58
 
16
59
  ```js
17
- import { multiply } from 'react-native-shine';
60
+ plugins: ['unplugin-typegpu/babel'];
61
+ ```
62
+
63
+ For additional instructions, please follow the [TypeGPU Unplugin docs](https://docs.swmansion.com/TypeGPU/tooling/unplugin-typegpu/).
64
+
65
+ ---
18
66
 
19
- // ...
67
+ ## 📋 Requirements
20
68
 
21
- const result = await multiply(3, 7);
69
+ - React Native 0.71
70
+ - `react-native-reanimated` ≥ 4.0.0
71
+ - `react-native-webgpu` ≥ 0.2.0
72
+ - WebGPU-compatible device/emulator
73
+
74
+ > [!NOTE]
75
+ > If you’re using Expo, you’ll need to use the bare workflow (custom dev client or prebuild) to support native modules.
76
+
77
+ ---
78
+
79
+ ## 🚀 Usage
80
+
81
+ Basic example:
82
+
83
+ ```tsx
84
+ import { View } from 'react-native';
85
+ import { Shine } from 'react-native-shine';
86
+
87
+ export default function Index() {
88
+ return (
89
+ <View
90
+ style={{
91
+ flex: 1,
92
+ justifyContent: 'center',
93
+ alignItems: 'center',
94
+ }}
95
+ >
96
+ <Shine
97
+ imageURI="https://assets.pkmn.gg/fit-in/600x836/filters:format(webp)/images/cards/dp7/dp7-101.png?signature=1354344def4514e05080d064310884cdd6a27ef93692d9656eda9ae84ae1b2e1"
98
+ width={300}
99
+ height={400}
100
+ />
101
+ </View>
102
+ );
103
+ }
22
104
  ```
23
105
 
106
+ Coming soon: docs and examples.
107
+
108
+ ---
109
+
110
+ ## 🧪 Troubleshooting
111
+
112
+ If you encounter runtime or build issues:
113
+
114
+ - Make sure all peer dependencies are installed.
115
+ - Rebuild your app after installing native modules:
24
116
 
25
- ## Contributing
117
+ ```sh
118
+ # iOS
119
+ cd ios && xcodebuild clean && cd ..
120
+ npx react-native run-ios
26
121
 
27
- See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
122
+ # Android
123
+ cd android && ./gradlew clean && cd ..
124
+ npx react-native run-android
125
+ ```
126
+
127
+ ```sh
128
+ # Expo
129
+
130
+ # iOS
131
+ npx expo prebuild
132
+ npx expo run:ios
133
+
134
+ # Android
135
+ npx expo prebuild
136
+ npx expo run:android
137
+ ```
138
+
139
+ - Clear bundler cache (helps with Metro native linking issues).
140
+
141
+ ---
142
+
143
+ ## 🧑‍💻 Contributing
144
+
145
+ Want to help improve `react-native-shine`?
146
+
147
+ Check out the [`CONTRIBUTING.md`](CONTRIBUTING.md) guide for instructions on how to build, test, and submit PRs.
148
+
149
+ We welcome shaders, GPU visual effects, demos, and bug fixes!
150
+
151
+ ---
28
152
 
29
- ## License
153
+ ## 📜 License
30
154
 
31
- MIT
155
+ MIT © [VoidFrog](https://github.com/VoidFrog)
32
156
 
33
157
  ---
34
158
 
35
- Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
159
+ Made with ❤️ and [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
@@ -45,6 +45,7 @@ export function Shine({
45
45
  const gravitySensor = useAnimatedSensor(SensorType.GRAVITY, {
46
46
  interval: 20
47
47
  });
48
+ console.log('render');
48
49
 
49
50
  // Subscribe to orientation changes and reset calibration on change
50
51
  useEffect(() => {
@@ -144,22 +145,61 @@ export function Shine({
144
145
  const maskBGP = createBindGroupPairs([textureBindGroupLayout, colorMaskBindGroupLayout], [textureBindGroup, colorMaskBindGroup]);
145
146
  let bloomPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(bloomFragment, getDefaultTarget(presentationFormat)).createPipeline();
146
147
  bloomPipeline = attachBindGroups(bloomPipeline, bloomBGP);
147
- let maskPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(colorMaskFragment, getDefaultTarget(presentationFormat)).createPipeline();
148
- maskPipeline = attachBindGroups(maskPipeline, maskBGP);
148
+ let colorMaskPipeline = root['~unstable'].withVertex(mainVertex, {}).withFragment(colorMaskFragment, getDefaultTarget(presentationFormat)).createPipeline();
149
+ colorMaskPipeline = attachBindGroups(colorMaskPipeline, maskBGP);
150
+ const rot = d.vec3f(0.0);
151
+ let view;
152
+ let bloomAttachment;
153
+ let colorMaskAttachment;
149
154
  const render = () => {
150
- const rot = rotationShared.value;
151
- rotationBuffer.write(d.vec3f(rot[0], rot[1], rot[2]));
152
- bloomPipeline.withColorAttachment({
153
- view: context.getCurrentTexture().createView(),
155
+ rot[0] = rotationShared.value[0];
156
+ rot[1] = rotationShared.value[1];
157
+ rot[2] = rotationShared.value[2];
158
+ rotationBuffer.write(rot);
159
+ view = context.getCurrentTexture().createView();
160
+ bloomAttachment = {
161
+ view: view,
154
162
  clearValue: [0, 0, 0, 0],
155
163
  loadOp: 'clear',
156
164
  storeOp: 'store'
157
- }).draw(6);
158
- maskPipeline.withColorAttachment({
159
- view: context.getCurrentTexture().createView(),
165
+ };
166
+ colorMaskAttachment = {
167
+ view: view,
160
168
  loadOp: 'load',
161
169
  storeOp: 'store'
162
- }).draw(6);
170
+ };
171
+
172
+ // root['~unstable'].beginRenderPass(
173
+ // {
174
+ // colorAttachments: [
175
+ // {
176
+ // view,
177
+ // clearValue: [0, 0, 0, 0],
178
+ // loadOp: 'clear',
179
+ // storeOp: 'store',
180
+ // },
181
+ // ],
182
+ // },
183
+ // (pass) => {
184
+ // pass.setPipeline(bloomPipeline);
185
+ // // pass = attachBindGroupsToPass(pass, bloomBGP);
186
+ // pass.setBindGroup(textureBindGroupLayout, textureBindGroup);
187
+ // pass.setBindGroup(rotationValuesBindGroupLayout, rotationBindGroup);
188
+ // pass.setBindGroup(bloomOptionsBindGroupLayout, bloomOptionsBindGroup);
189
+ // pass.setBindGroup(colorMaskBindGroupLayout, colorMaskBindGroup);
190
+ // pass.draw(6);
191
+
192
+ // // Mask draw
193
+ // pass.setPipeline(colorMaskPipeline);
194
+ // pass.setBindGroup(textureBindGroupLayout, textureBindGroup);
195
+ // pass.setBindGroup(colorMaskBindGroupLayout, colorMaskBindGroup);
196
+ // pass.draw(6);
197
+ // }
198
+ // );
199
+ // root['~unstable'].flush();
200
+
201
+ bloomPipeline.withColorAttachment(bloomAttachment).draw(6);
202
+ colorMaskPipeline.withColorAttachment(colorMaskAttachment).draw(6);
163
203
  context.present();
164
204
  frameRef.current = requestAnimationFrame(render);
165
205
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","Canvas","useDevice","useGPUContext","getOrInitRoot","mainVertex","getBitmapFromURI","createTexture","loadTexture","clamp","rotate2D","subscribeToOrientationChange","getAngleFromDimensions","bloomOptionsBindGroupLayout","colorMaskBindGroupLayout","rotationValuesBindGroupLayout","textureBindGroupLayout","SensorType","useAnimatedSensor","useDerivedValue","useSharedValue","d","Platform","bloomFragment","createBloomOptionsBindGroup","createBloomOptionsBuffer","createColorMaskBindGroup","createColorMaskBuffer","createRotationBuffer","createRotationValuesBindGroup","createBindGroupPairs","createBloomOptions","createColorMask","attachBindGroups","getDefaultTarget","colorMaskFragment","jsx","_jsx","Shine","width","height","imageURI","bloomOptions","colorMaskOptions","device","root","ref","context","presentationFormat","navigator","gpu","getPreferredCanvasFormat","frameRef","imageTexture","setImageTexture","orientationAngle","rotationShared","initialGravity","calibSum","calibCount","calibrated","gravitySensor","GRAVITY","interval","value","unsubscribe","angleDeg","v","sensor","x","y","z","gx","gy","gz","CALIBRATION_SAMPLES","alpha","scale","s","c","avg","init","dx","dy","dz","mx","my","screenX","screenY","prev","smoothX","smoothY","smoothZ","bitmap","texture","configure","format","alphaMode","sampler","createSampler","magFilter","minFilter","textureBindGroup","createBindGroup","unwrap","createView","rotationBuffer","rotationBindGroup","bloomOptionsBuffer","bloomOptionsBindGroup","colorMaskBuffer","baseColor","colorMaskBindGroup","bloomBGP","maskBGP","bloomPipeline","withVertex","withFragment","createPipeline","maskPipeline","render","rot","write","vec3f","withColorAttachment","view","getCurrentTexture","clearValue","loadOp","storeOp","draw","present","current","requestAnimationFrame","cancelAnimationFrame","style","aspectRatio","transparent","OS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","Canvas","useDevice","useGPUContext","getOrInitRoot","mainVertex","getBitmapFromURI","createTexture","loadTexture","clamp","rotate2D","subscribeToOrientationChange","getAngleFromDimensions","bloomOptionsBindGroupLayout","colorMaskBindGroupLayout","rotationValuesBindGroupLayout","textureBindGroupLayout","SensorType","useAnimatedSensor","useDerivedValue","useSharedValue","d","Platform","bloomFragment","createBloomOptionsBindGroup","createBloomOptionsBuffer","createColorMaskBindGroup","createColorMaskBuffer","createRotationBuffer","createRotationValuesBindGroup","createBindGroupPairs","createBloomOptions","createColorMask","attachBindGroups","getDefaultTarget","colorMaskFragment","jsx","_jsx","Shine","width","height","imageURI","bloomOptions","colorMaskOptions","device","root","ref","context","presentationFormat","navigator","gpu","getPreferredCanvasFormat","frameRef","imageTexture","setImageTexture","orientationAngle","rotationShared","initialGravity","calibSum","calibCount","calibrated","gravitySensor","GRAVITY","interval","console","log","value","unsubscribe","angleDeg","v","sensor","x","y","z","gx","gy","gz","CALIBRATION_SAMPLES","alpha","scale","s","c","avg","init","dx","dy","dz","mx","my","screenX","screenY","prev","smoothX","smoothY","smoothZ","bitmap","texture","configure","format","alphaMode","sampler","createSampler","magFilter","minFilter","textureBindGroup","createBindGroup","unwrap","createView","rotationBuffer","rotationBindGroup","bloomOptionsBuffer","bloomOptionsBindGroup","colorMaskBuffer","baseColor","colorMaskBindGroup","bloomBGP","maskBGP","bloomPipeline","withVertex","withFragment","createPipeline","colorMaskPipeline","rot","vec3f","view","bloomAttachment","colorMaskAttachment","render","write","getCurrentTexture","clearValue","loadOp","storeOp","withColorAttachment","draw","present","current","requestAnimationFrame","cancelAnimationFrame","style","aspectRatio","transparent","OS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACnD,SAASC,MAAM,EAAEC,SAAS,EAAEC,aAAa,QAAQ,mBAAmB;AACpE,SAASC,aAAa,QAAQ,YAAS;AACvC,OAAOC,UAAU,MAAM,uCAAoC;AAC3D,OAAOC,gBAAgB,MAAM,iCAA8B;AAC3D,SACEC,aAAa,EACbC,WAAW,EACXC,KAAK,EACLC,QAAQ,EACRC,4BAA4B,EAC5BC,sBAAsB,QACjB,oBAAiB;AAExB,SACEC,2BAA2B,EAC3BC,wBAAwB,EACxBC,6BAA6B,EAC7BC,sBAAsB,QACjB,+BAA4B;AACnC,SACEC,UAAU,EACVC,iBAAiB,EACjBC,eAAe,EACfC,cAAc,QACT,yBAAyB;AAChC,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,aAAa,MAAM,4CAAyC;AACnE,SACEC,2BAA2B,EAC3BC,wBAAwB,EACxBC,wBAAwB,EACxBC,qBAAqB,EACrBC,oBAAoB,EACpBC,6BAA6B,QACxB,6BAA0B;AACjC,SACEC,oBAAoB,EACpBC,kBAAkB,EAClBC,eAAe,QACV,sBAAmB;AAO1B,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,6BAA0B;AAC7E,OAAOC,iBAAiB,MAAM,gDAA6C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS5E,OAAO,SAASC,KAAKA,CAAC;EACpBC,KAAK;EACLC,MAAM;EACNC,QAAQ;EACRC,YAAY;EACZC;AACU,CAAC,EAAE;EACb,MAAM;IAAEC,MAAM,GAAG;EAAK,CAAC,GAAG1C,SAAS,CAAC,CAAC;EACrC,MAAM2C,IAAI,GAAGD,MAAM,GAAGxC,aAAa,CAACwC,MAAM,CAAC,GAAG,IAAI;EAClD,MAAM;IAAEE,GAAG;IAAEC;EAAQ,CAAC,GAAG5C,aAAa,CAAC,CAAC;EACxC,MAAM6C,kBAAkB,GAAGC,SAAS,CAACC,GAAG,CAACC,wBAAwB,CAAC,CAAC;EACnE,MAAMC,QAAQ,GAAGrD,MAAM,CAAgB,IAAI,CAAC;EAE5C,MAAM,CAACsD,YAAY,EAAEC,eAAe,CAAC,GAAGtD,QAAQ,CAAqB,IAAI,CAAC;EAE1E,MAAMuD,gBAAgB,GAAGnC,cAAc,CAAS,CAAC,CAAC,CAAC,CAAC;EACpD,MAAMoC,cAAc,GAAGpC,cAAc,CAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;EAE5E;EACA,MAAMqC,cAAc,GAAGrC,cAAc,CAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EAC1E,MAAMsC,QAAQ,GAAGtC,cAAc,CAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EACpE,MAAMuC,UAAU,GAAGvC,cAAc,CAAS,CAAC,CAAC;EAC5C,MAAMwC,UAAU,GAAGxC,cAAc,CAAU,KAAK,CAAC;EAEjD,MAAMyC,aAAa,GAAG3C,iBAAiB,CAACD,UAAU,CAAC6C,OAAO,EAAE;IAAEC,QAAQ,EAAE;EAAG,CAAC,CAAC;EAE7EC,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC;;EAErB;EACAnE,SAAS,CAAC,MAAM;IACdyD,gBAAgB,CAACW,KAAK,GAAGtD,sBAAsB,CAAC,CAAC;IACjD,MAAMuD,WAAW,GAAGxD,4BAA4B,CAAEyD,QAAQ,IAAK;MAC7Db,gBAAgB,CAACW,KAAK,GAAGE,QAAQ;IACnC,CAAC,CAAC;IAEF,OAAO,MAAMD,WAAW,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACZ,gBAAgB,CAAC,CAAC;;EAEtB;EACApC,eAAe,CAAC,MAAM;IACpB,SAAS;;IAET;IACA,MAAMkD,CAAM,GAAGR,aAAa,CAACS,MAAM,EAAEJ,KAAK,IACxCL,aAAa,CAACS,MAAM,CAACJ,KAAK,IAAI;MAAEK,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC;IACpD,MAAMC,EAAE,GAAGL,CAAC,CAACE,CAAC,IAAI,CAAC;IACnB,MAAMI,EAAE,GAAGN,CAAC,CAACG,CAAC,IAAI,CAAC;IACnB,MAAMI,EAAE,GAAGP,CAAC,CAACI,CAAC,IAAI,CAAC;IAEnB,MAAMI,mBAAmB,GAAG,EAAE;IAC9B,MAAMC,KAAK,GAAG,IAAI,CAAC,CAAC;IACpB,MAAMC,KAAK,GAAG,GAAG;IAEjB,IAAI,CAACnB,UAAU,CAACM,KAAK,EAAE;MACrB;MACA,MAAMc,CAAC,GAAGtB,QAAQ,CAACQ,KAAK;MACxB,MAAMe,CAAC,GAAGtB,UAAU,CAACO,KAAK,GAAG,CAAC;MAC9BR,QAAQ,CAACQ,KAAK,GAAG,CAACc,CAAC,CAAC,CAAC,CAAC,GAAGN,EAAE,EAAEM,CAAC,CAAC,CAAC,CAAC,GAAGL,EAAE,EAAEK,CAAC,CAAC,CAAC,CAAC,GAAGJ,EAAE,CAAC;MAClDjB,UAAU,CAACO,KAAK,GAAGe,CAAC;MAEpB,IAAIA,CAAC,IAAIJ,mBAAmB,EAAE;QAC5B,MAAMK,GAAG,GAAGxB,QAAQ,CAACQ,KAAK;QAC1BT,cAAc,CAACS,KAAK,GAAG,CAACgB,GAAG,CAAC,CAAC,CAAC,GAAGD,CAAC,EAAEC,GAAG,CAAC,CAAC,CAAC,GAAGD,CAAC,EAAEC,GAAG,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC;QAC3DrB,UAAU,CAACM,KAAK,GAAG,IAAI;MACzB;MAEAV,cAAc,CAACU,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAChC;IACF;IAEA,MAAMiB,IAAI,GAAG1B,cAAc,CAACS,KAAK;IACjC,MAAMkB,EAAE,GAAGV,EAAE,GAAGS,IAAI,CAAC,CAAC,CAAC;IACvB,MAAME,EAAE,GAAGV,EAAE,GAAGQ,IAAI,CAAC,CAAC,CAAC;IACvB,MAAMG,EAAE,GAAGV,EAAE,GAAGO,IAAI,CAAC,CAAC,CAAC;;IAEvB;IACA,MAAM,CAACI,EAAE,EAAEC,EAAE,CAAC,GAAG9E,QAAQ,CAAC,CAAC0E,EAAE,EAAEC,EAAE,CAAC,EAAE,CAAC9B,gBAAgB,CAACW,KAAK,CAAC;IAC5D,MAAMuB,OAAO,GAAGF,EAAE;IAClB,MAAMG,OAAO,GAAG,CAACF,EAAE;IAEnB,MAAMG,IAAI,GAAGnC,cAAc,CAACU,KAAK;IACjC,MAAM0B,OAAO,GAAGD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAGb,KAAK,CAAC,GAAGW,OAAO,GAAGX,KAAK;IACvD,MAAMe,OAAO,GAAGF,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAGb,KAAK,CAAC,GAAGY,OAAO,GAAGZ,KAAK;IACvD,MAAMgB,OAAO,GAAGH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAGb,KAAK,CAAC,GAAGQ,EAAE,GAAGR,KAAK;IAElD,IAAIvB,gBAAgB,CAACW,KAAK,KAAK,EAAE,EAAE;MACjCV,cAAc,CAACU,KAAK,GAAG,CACrBzD,KAAK,CAACoF,OAAO,GAAGd,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7BtE,KAAK,CAAC,CAACmF,OAAO,GAAGb,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9BtE,KAAK,CAACqF,OAAO,GAAGf,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAC9B;IACH,CAAC,MAAM;MACLvB,cAAc,CAACU,KAAK,GAAG,CACrBzD,KAAK,CAACmF,OAAO,GAAGb,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7BtE,KAAK,CAACoF,OAAO,GAAGd,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7BtE,KAAK,CAACqF,OAAO,GAAGf,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAC9B;IACH;EACF,CAAC,CAAC;;EAEF;EACAjF,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+C,IAAI,IAAI,CAACD,MAAM,IAAI,CAACG,OAAO,EAAE;IAClC,CAAC,YAAY;MACX,MAAMgD,MAAM,GAAG,MAAMzF,gBAAgB,CAACmC,QAAQ,CAAC;MAC/C,MAAMuD,OAAO,GAAG,MAAMzF,aAAa,CAACsC,IAAI,EAAEkD,MAAM,CAAC;MACjDzC,eAAe,CAAC0C,OAAO,CAAC;MACxB,MAAMxF,WAAW,CAACqC,IAAI,EAAEkD,MAAM,EAAEC,OAAO,CAAC;IAC1C,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACnD,IAAI,EAAED,MAAM,EAAEG,OAAO,EAAEN,QAAQ,CAAC,CAAC;;EAErC;EACA3C,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+C,IAAI,IAAI,CAACD,MAAM,IAAI,CAACG,OAAO,IAAI,CAACM,YAAY,EAAE;IAEnDN,OAAO,CAACkD,SAAS,CAAC;MAChBrD,MAAM;MACNsD,MAAM,EAAElD,kBAAkB;MAC1BmD,SAAS,EAAE;IACb,CAAC,CAAC;IAEF,MAAMC,OAAO,GAAGxD,MAAM,CAACyD,aAAa,CAAC;MACnCC,SAAS,EAAE,QAAQ;MACnBC,SAAS,EAAE;IACb,CAAC,CAAC;IACF,MAAMC,gBAAgB,GAAG3D,IAAI,CAAC4D,eAAe,CAACzF,sBAAsB,EAAE;MACpEgF,OAAO,EAAEnD,IAAI,CAAC6D,MAAM,CAACrD,YAAY,CAAC,CAACsD,UAAU,CAAC,CAAC;MAC/CP;IACF,CAAC,CAAC;IAEF,MAAMQ,cAAc,GAAGhF,oBAAoB,CAACiB,IAAI,CAAC;IACjD,MAAMgE,iBAAiB,GAAGhF,6BAA6B,CACrDgB,IAAI,EACJ+D,cACF,CAAC;IAED,MAAME,kBAAkB,GAAGrF,wBAAwB,CACjDoB,IAAI,EACJd,kBAAkB,CAACW,YAAY,IAAI,CAAC,CAAC,CACvC,CAAC;IACD,MAAMqE,qBAAqB,GAAGvF,2BAA2B,CACvDqB,IAAI,EACJiE,kBACF,CAAC;IAED,MAAME,eAAe,GAAGrF,qBAAqB,CAC3CkB,IAAI,EACJb,eAAe,CAACW,gBAAgB,IAAI;MAAEsE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IAAE,CAAC,CACpE,CAAC;IACD,MAAMC,kBAAkB,GAAGxF,wBAAwB,CAACmB,IAAI,EAAEmE,eAAe,CAAC;IAE1E,MAAMG,QAAyB,GAAGrF,oBAAoB,CACpD,CACEd,sBAAsB,EACtBD,6BAA6B,EAC7BF,2BAA2B,EAC3BC,wBAAwB,CACzB,EACD,CACE0F,gBAAgB,EAChBK,iBAAiB,EACjBE,qBAAqB,EACrBG,kBAAkB,CAEtB,CAAC;IAED,MAAME,OAAwB,GAAGtF,oBAAoB,CACnD,CAACd,sBAAsB,EAAEF,wBAAwB,CAAC,EAClD,CAAC0F,gBAAgB,EAAEU,kBAAkB,CACvC,CAAC;IAED,IAAIG,aAAa,GAAGxE,IAAI,CAAC,WAAW,CAAC,CAClCyE,UAAU,CAACjH,UAAU,EAAE,CAAC,CAAC,CAAC,CAC1BkH,YAAY,CAAChG,aAAa,EAAEW,gBAAgB,CAACc,kBAAkB,CAAC,CAAC,CACjEwE,cAAc,CAAC,CAAC;IACnBH,aAAa,GAAGpF,gBAAgB,CAACoF,aAAa,EAAEF,QAAQ,CAAC;IAEzD,IAAIM,iBAAiB,GAAG5E,IAAI,CAAC,WAAW,CAAC,CACtCyE,UAAU,CAACjH,UAAU,EAAE,CAAC,CAAC,CAAC,CAC1BkH,YAAY,CAACpF,iBAAiB,EAAED,gBAAgB,CAACc,kBAAkB,CAAC,CAAC,CACrEwE,cAAc,CAAC,CAAC;IACnBC,iBAAiB,GAAGxF,gBAAgB,CAACwF,iBAAiB,EAAEL,OAAO,CAAC;IAEhE,MAAMM,GAAG,GAAGrG,CAAC,CAACsG,KAAK,CAAC,GAAG,CAAC;IACxB,IAAIC,IAAoB;IACxB,IAAIC,eAAe;IACnB,IAAIC,mBAAmB;IACvB,MAAMC,MAAM,GAAGA,CAAA,KAAM;MACnBL,GAAG,CAAC,CAAC,CAAC,GAAGlE,cAAc,CAACU,KAAK,CAAC,CAAC,CAAC;MAChCwD,GAAG,CAAC,CAAC,CAAC,GAAGlE,cAAc,CAACU,KAAK,CAAC,CAAC,CAAC;MAChCwD,GAAG,CAAC,CAAC,CAAC,GAAGlE,cAAc,CAACU,KAAK,CAAC,CAAC,CAAC;MAChC0C,cAAc,CAACoB,KAAK,CAACN,GAAG,CAAC;MAEzBE,IAAI,GAAG7E,OAAO,CAACkF,iBAAiB,CAAC,CAAC,CAACtB,UAAU,CAAC,CAAC;MAC/CkB,eAAe,GAAG;QAChBD,IAAI,EAAEA,IAAI;QACVM,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxBC,MAAM,EAAE,OAAoB;QAC5BC,OAAO,EAAE;MACX,CAAC;MAEDN,mBAAmB,GAAG;QACpBF,IAAI,EAAEA,IAAI;QACVO,MAAM,EAAE,MAAmB;QAC3BC,OAAO,EAAE;MACX,CAAC;;MAED;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MAEAf,aAAa,CAACgB,mBAAmB,CAACR,eAAe,CAAC,CAACS,IAAI,CAAC,CAAC,CAAC;MAC1Db,iBAAiB,CAACY,mBAAmB,CAACP,mBAAmB,CAAC,CAACQ,IAAI,CAAC,CAAC,CAAC;MAElEvF,OAAO,CAACwF,OAAO,CAAC,CAAC;MACjBnF,QAAQ,CAACoF,OAAO,GAAGC,qBAAqB,CAACV,MAAM,CAAC;IAClD,CAAC;IACD3E,QAAQ,CAACoF,OAAO,GAAGC,qBAAqB,CAACV,MAAM,CAAC;IAEhD,OAAO,MAAM;MACX,IAAI3E,QAAQ,CAACoF,OAAO,EAAEE,oBAAoB,CAACtF,QAAQ,CAACoF,OAAO,CAAC;IAC9D,CAAC;EACH,CAAC,EAAE,CACD5F,MAAM,EACNG,OAAO,EACPF,IAAI,EACJG,kBAAkB,EAClBK,YAAY,EACZG,cAAc,EACdd,YAAY,EACZC,gBAAgB,CACjB,CAAC;EAEF,oBACEN,IAAA,CAACpC,MAAM;IACL6C,GAAG,EAAEA,GAAI;IACT6F,KAAK,EAAE;MAAEpG,KAAK;MAAEC,MAAM;MAAEoG,WAAW,EAAErG,KAAK,GAAGC;IAAO,CAAE;IACtDqG,WAAW,EAAEvH,QAAQ,CAACwH,EAAE,KAAK;EAAM,CACpC,CAAC;AAEN;AAEA,SAASnI,4BAA4B,EAAEC,sBAAsB","ignoreList":[]}
@@ -23,4 +23,10 @@ export const getDefaultTarget = presentationFormat => {
23
23
  }
24
24
  };
25
25
  };
26
+ export const attachBindGroupsToPass = (pass, bindGroupPairs) => {
27
+ for (const pair of bindGroupPairs) {
28
+ pass.setBindGroup(pair.layout, pair.group);
29
+ }
30
+ return pass;
31
+ };
26
32
  //# sourceMappingURL=pipelineSetups.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["attachBindGroups","pipeline","bindGroupPairs","pair","with","layout","group","getDefaultTarget","presentationFormat","format","blend","color","srcFactor","dstFactor","operation","alpha"],"sourceRoot":"../../../src","sources":["shaders/pipelineSetups.ts"],"mappings":";;AAGA,OAAO,MAAMA,gBAAgB,GAAGA,CAC9BC,QAA4B,EAC5BC,cAA+B,KAC5B;EACH,KAAK,MAAMC,IAAI,IAAID,cAAc,EAAE;IACjCD,QAAQ,GAAGA,QAAQ,CAACG,IAAI,CAACD,IAAI,CAACE,MAAM,EAAEF,IAAI,CAACG,KAAK,CAAC;EACnD;EAEA,OAAOL,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMM,gBAAgB,GAC3BC,kBAAoC,IACZ;EACxB,OAAO;IACLC,MAAM,EAAED,kBAAkB;IAC1BE,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,SAAS,EAAE,WAAW;QACtBC,SAAS,EAAE,qBAAqB;QAChCC,SAAS,EAAE;MACb,CAAC;MACDC,KAAK,EAAE;QACLH,SAAS,EAAE,KAAK;QAChBC,SAAS,EAAE,qBAAqB;QAChCC,SAAS,EAAE;MACb;IACF;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["attachBindGroups","pipeline","bindGroupPairs","pair","with","layout","group","getDefaultTarget","presentationFormat","format","blend","color","srcFactor","dstFactor","operation","alpha","attachBindGroupsToPass","pass","setBindGroup"],"sourceRoot":"../../../src","sources":["shaders/pipelineSetups.ts"],"mappings":";;AAGA,OAAO,MAAMA,gBAAgB,GAAGA,CAC9BC,QAA4B,EAC5BC,cAA+B,KAC5B;EACH,KAAK,MAAMC,IAAI,IAAID,cAAc,EAAE;IACjCD,QAAQ,GAAGA,QAAQ,CAACG,IAAI,CAACD,IAAI,CAACE,MAAM,EAAEF,IAAI,CAACG,KAAK,CAAC;EACnD;EAEA,OAAOL,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMM,gBAAgB,GAC3BC,kBAAoC,IACZ;EACxB,OAAO;IACLC,MAAM,EAAED,kBAAkB;IAC1BE,KAAK,EAAE;MACLC,KAAK,EAAE;QACLC,SAAS,EAAE,WAAW;QACtBC,SAAS,EAAE,qBAAqB;QAChCC,SAAS,EAAE;MACb,CAAC;MACDC,KAAK,EAAE;QACLH,SAAS,EAAE,KAAK;QAChBC,SAAS,EAAE,qBAAqB;QAChCC,SAAS,EAAE;MACb;IACF;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAME,sBAAsB,GAAGA,CACpCC,IAAS,EACTf,cAA+B,KAC5B;EACH,KAAK,MAAMC,IAAI,IAAID,cAAc,EAAE;IACjCe,IAAI,CAACC,YAAY,CAACf,IAAI,CAACE,MAAM,EAAEF,IAAI,CAACG,KAAK,CAAC;EAC5C;EAEA,OAAOW,IAAI;AACb,CAAC","ignoreList":[]}
@@ -57,7 +57,7 @@ export const colorMaskToTyped = colorMask => {
57
57
  };
58
58
  return result;
59
59
  };
60
- const numberArrToTyped = vec => {
60
+ export const numberArrToTyped = vec => {
61
61
  let convFn = null;
62
62
  switch (vec.length) {
63
63
  case 2:
@@ -1 +1 @@
1
- {"version":3,"names":["f32","vec2f","vec3f","vec4f","div","createBloomOptions","options","glowPower","hueShiftAngleMax","hueShiftAngleMin","hueBlendPower","lightIntensity","bloomIntensity","bloomOp","mapToF32","obj","result","key","createColorMask","colorMask","baseColor","rgbToleranceRange","baseTolerance","upper","lower","tolerance","mask","colorMaskToTyped","numberArrToTyped","vec","convFn","length","Error","typed","createBindGroupPair","bindGroupLayout","bindGroup","layout","group","createBindGroupPairs","bindGroupLayouts","bindGroups","pairs","i","push"],"sourceRoot":"../../../src","sources":["types/typeUtils.ts"],"mappings":";;AAAA,SAASA,GAAG,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,QAAQ,cAAc;AAQvD,SAASC,GAAG,QAAQ,aAAa;AAGjC,OAAO,MAAMC,kBAAkB,GAC7BC,OAA8B,IACb;EACjB,MAAM;IACJC,SAAS;IACTC,gBAAgB;IAChBC,gBAAgB;IAChBC,aAAa;IACbC,cAAc;IACdC;EACF,CAAC,GAAGN,OAAO;EAEX,MAAMO,OAAO,GAAG;IACdN,SAAS,EAAEA,SAAS,IAAI,GAAG;IAC3BC,gBAAgB,EAAEA,gBAAgB,IAAI,GAAG;IACzCC,gBAAgB,EAAEA,gBAAgB,IAAI,GAAG;IACzCC,aAAa,EAAEA,aAAa,IAAI,GAAG;IACnCC,cAAc,EAAEA,cAAc,IAAI,GAAG;IACrCC,cAAc,EAAEA,cAAc,IAAI;EACpC,CAAC;EAED,OAAOC,OAAO;AAChB,CAAC;AAED,OAAO,MAAMC,QAAQ,GACnBC,GAAM,IAGH;EACH,MAAMC,MAAM,GAAG,CAAC,CAAQ;EACxB,KAAK,MAAMC,GAAG,IAAIF,GAAG,EAAE;IACrBC,MAAM,CAACC,GAAG,CAAC,GAAGjB,GAAG,CAACe,GAAG,CAACE,GAAG,CAAC,CAAC;EAC7B;EAEA,OAAOD,MAAM;AACf,CAAC;AAED,OAAO,MAAME,eAAe,GAC1BC,SAAwD,IAC1C;EACd,MAAM;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAAGF,SAAS;EAClD,MAAMG,aAAa,GAAG;IACpBC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAS;IAC3BC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;EACpB,CAAC;EACD,MAAMC,SAAS,GAAG;IAAE,GAAGH,aAAa;IAAE,GAAGD;EAAkB,CAAC;EAE5D,MAAMK,IAAe,GAAG;IACtBN,SAAS,EAAEA,SAAS;IACpBC,iBAAiB,EAAEI;EACrB,CAAC;EAED,OAAOC,IAAI;AACb,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIR,SAAoB,IAAK;EACxD,MAAMH,MAAM,GAAG;IACbI,SAAS,EAAEhB,GAAG,CAACwB,gBAAgB,CAACT,SAAS,CAACC,SAAS,CAAC,EAAE,GAAG,CAAC;IAC1DC,iBAAiB,EAAE;MACjBE,KAAK,EAAEnB,GAAG,CAACwB,gBAAgB,CAACT,SAAS,CAACE,iBAAiB,CAACE,KAAK,CAAC,EAAE,GAAG,CAAC;MACpEC,KAAK,EAAEpB,GAAG,CAACwB,gBAAgB,CAACT,SAAS,CAACE,iBAAiB,CAACG,KAAK,CAAC,EAAE,GAAG;IACrE;EACF,CAAC;EACD,OAAOR,MAAM;AACf,CAAC;AAED,MAAMY,gBAAgB,GAAIC,GAAa,IAAK;EAC1C,IAAIC,MAA2C,GAAG,IAAI;EACtD,QAAQD,GAAG,CAACE,MAAM;IAChB,KAAK,CAAC;MACJD,MAAM,GAAG7B,KAAK;MACd;IACF,KAAK,CAAC;MACJ6B,MAAM,GAAG5B,KAAK;MACd;IACF,KAAK,CAAC;MACJ4B,MAAM,GAAG3B,KAAK;MACd;IACF;MACE,MAAM,IAAI6B,KAAK,CAAC,kDAAkD,CAAC;EACvE;EAEA,MAAMC,KAAK,GAAGH,MAAM,CAAC,GAAGD,GAAG,CAAC;EAC5B,OAAOI,KAAK;AACd,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,eAAoC,EACpCC,SAAwB,KACN;EAClB,OAAO;IAAEC,MAAM,EAAEF,eAAe;IAAEG,KAAK,EAAEF;EAAU,CAAC;AACtD,CAAC;AAED,OAAO,MAAMG,oBAAoB,GAAGA,CAClCC,gBAAuC,EACvCC,UAA2B,KACP;EACpB,IACED,gBAAgB,CAACT,MAAM,GAAG,CAAC,IAC3BS,gBAAgB,CAACT,MAAM,KAAKU,UAAU,CAACV,MAAM,EAE7C,MAAM,IAAIC,KAAK,CACb,oFACF,CAAC;EACH,MAAMU,KAAsB,GAAG,EAAE;EACjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,gBAAgB,CAACT,MAAM,EAAEY,CAAC,EAAE,EAAE;IAChDD,KAAK,CAACE,IAAI,CAACV,mBAAmB,CAACM,gBAAgB,CAACG,CAAC,CAAC,EAAGF,UAAU,CAACE,CAAC,CAAE,CAAC,CAAC;EACvE;EAEA,OAAOD,KAAK;AACd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["f32","vec2f","vec3f","vec4f","div","createBloomOptions","options","glowPower","hueShiftAngleMax","hueShiftAngleMin","hueBlendPower","lightIntensity","bloomIntensity","bloomOp","mapToF32","obj","result","key","createColorMask","colorMask","baseColor","rgbToleranceRange","baseTolerance","upper","lower","tolerance","mask","colorMaskToTyped","numberArrToTyped","vec","convFn","length","Error","typed","createBindGroupPair","bindGroupLayout","bindGroup","layout","group","createBindGroupPairs","bindGroupLayouts","bindGroups","pairs","i","push"],"sourceRoot":"../../../src","sources":["types/typeUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAKL,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AA8BzB,OAAO,KAAK,EAEV,YAAY,EACZ,SAAS,EACT,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAGvB,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;CAClE;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACjB,EAAE,UAAU,2CA8NZ;AAED,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAKL,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AA8BzB,OAAO,KAAK,EAEV,YAAY,EACZ,SAAS,EACT,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAGvB,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;CAClE;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,gBAAgB,GACjB,EAAE,UAAU,2CAmQZ;AAED,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,CAAC"}
@@ -4,4 +4,5 @@ export declare const attachBindGroups: (pipeline: TgpuRenderPipeline, bindGroupP
4
4
  [x: string]: (import("typegpu/data").U32 | import("typegpu/data").Bool | import("typegpu/data").F32 | import("typegpu/data").F16 | import("typegpu/data").I32 | import("typegpu/data").Vec2f | import("typegpu/data").Vec3f | import("typegpu/data").Vec4f | import("typegpu/data").Vec2h | import("typegpu/data").Vec3h | import("typegpu/data").Vec4h | import("typegpu/data").Vec2i | import("typegpu/data").Vec3i | import("typegpu/data").Vec4i | import("typegpu/data").Vec2u | import("typegpu/data").Vec3u | import("typegpu/data").Vec4u) | import("typegpu/data").BuiltinClipDistances | import("typegpu/data").Decorated<import("typegpu/data").U32 | import("typegpu/data").Bool | import("typegpu/data").F32 | import("typegpu/data").F16 | import("typegpu/data").I32 | import("typegpu/data").Vec2f | import("typegpu/data").Vec3f | import("typegpu/data").Vec4f | import("typegpu/data").Vec2h | import("typegpu/data").Vec3h | import("typegpu/data").Vec4h | import("typegpu/data").Vec2i | import("typegpu/data").Vec3i | import("typegpu/data").Vec4i | import("typegpu/data").Vec2u | import("typegpu/data").Vec3u | import("typegpu/data").Vec4u, import("typegpu/data").AnyAttribute<import("typegpu/data").Builtin<"vertex_index" | "position" | "clip_distances" | "instance_index" | "front_facing" | "frag_depth" | "sample_index" | "sample_mask" | "local_invocation_id" | "local_invocation_index" | "global_invocation_id" | "workgroup_id" | "num_workgroups" | "subgroup_invocation_id" | "subgroup_size" | "fragment">>[]>;
5
5
  }>;
6
6
  export declare const getDefaultTarget: (presentationFormat: GPUTextureFormat) => GPUColorTargetState;
7
+ export declare const attachBindGroupsToPass: (pass: any, bindGroupPairs: BindGroupPair[]) => any;
7
8
  //# sourceMappingURL=pipelineSetups.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipelineSetups.d.ts","sourceRoot":"","sources":["../../../../src/shaders/pipelineSetups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,gBAAgB,GAC3B,UAAU,kBAAkB,EAC5B,gBAAgB,aAAa,EAAE;;EAOhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,oBAAoB,gBAAgB,KACnC,mBAgBF,CAAC"}
1
+ {"version":3,"file":"pipelineSetups.d.ts","sourceRoot":"","sources":["../../../../src/shaders/pipelineSetups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,eAAO,MAAM,gBAAgB,GAC3B,UAAU,kBAAkB,EAC5B,gBAAgB,aAAa,EAAE;;EAOhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,oBAAoB,gBAAgB,KACnC,mBAgBF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,MAAM,GAAG,EACT,gBAAgB,aAAa,EAAE,QAOhC,CAAC"}
@@ -11,6 +11,7 @@ export declare const colorMaskToTyped: (colorMask: ColorMask) => {
11
11
  lower: any;
12
12
  };
13
13
  };
14
+ export declare const numberArrToTyped: (vec: number[]) => any;
14
15
  export declare const createBindGroupPair: (bindGroupLayout: TgpuBindGroupLayout, bindGroup: TgpuBindGroup) => BindGroupPair;
15
16
  export declare const createBindGroupPairs: (bindGroupLayouts: TgpuBindGroupLayout[], bindGroups: TgpuBindGroup[]) => BindGroupPair[];
16
17
  //# sourceMappingURL=typeUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../../../../src/types/typeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAuB,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAElE,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,CAAC,YAAY,CAAC,KAC7B,YAoBF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvD,KAAK,CAAC,KACL,GACA,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,GAQvC,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,WAAW,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,KACvD,SAcF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS;;;;;;CASpD,CAAC;AAsBF,eAAO,MAAM,mBAAmB,GAC9B,iBAAiB,mBAAmB,EACpC,WAAW,aAAa,KACvB,aAEF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,kBAAkB,mBAAmB,EAAE,EACvC,YAAY,aAAa,EAAE,KAC1B,aAAa,EAcf,CAAC"}
1
+ {"version":3,"file":"typeUtils.d.ts","sourceRoot":"","sources":["../../../../src/types/typeUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAuB,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAElE,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,CAAC,YAAY,CAAC,KAC7B,YAoBF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvD,KAAK,CAAC,KACL,GACA,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,GAQvC,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,WAAW,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,KACvD,SAcF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,SAAS;;;;;;CASpD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,QAkB7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,iBAAiB,mBAAmB,EACpC,WAAW,aAAa,KACvB,aAEF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,kBAAkB,mBAAmB,EAAE,EACvC,YAAY,aAAa,EAAE,KAC1B,aAAa,EAcf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-shine",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Fast and efficient way of adding interactive effects that are run entirely on shaders using typeGPU.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -38,7 +38,9 @@
38
38
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
39
39
  "clean": "del-cli lib",
40
40
  "prepare": "bob build",
41
- "release": "release-it --only-version"
41
+ "release": "release-it --only-version",
42
+ "postinstall": "node ./scripts/postinstall.js",
43
+ "install-peers": "node ./scripts/install-peers.js"
42
44
  },
43
45
  "keywords": [
44
46
  "react-native",
@@ -91,7 +93,10 @@
91
93
  "peerDependencies": {
92
94
  "react": "*",
93
95
  "react-native": "*",
94
- "react-native-web": "^0.21.0"
96
+ "react-native-reanimated": "^4.0.1",
97
+ "react-native-wgpu": "^0.2.0",
98
+ "react-native-worklets": "^0.4.1",
99
+ "typegpu": "^0.7.0"
95
100
  },
96
101
  "workspaces": [
97
102
  "example"
@@ -161,9 +166,6 @@
161
166
  "dependencies": {
162
167
  "expo-asset": "^11.1.7",
163
168
  "react-native-orientation-locker": "^1.7.0",
164
- "react-native-reanimated": "^4.0.1",
165
- "react-native-wgpu": "^0.2.0",
166
- "react-native-worklets": "^0.4.1",
167
- "typegpu": "^0.7.0"
169
+ "unplugin-typegpu": "^0.2.2"
168
170
  }
169
171
  }
package/src/index.tsx CHANGED
@@ -82,6 +82,8 @@ export function Shine({
82
82
 
83
83
  const gravitySensor = useAnimatedSensor(SensorType.GRAVITY, { interval: 20 });
84
84
 
85
+ console.log('render');
86
+
85
87
  // Subscribe to orientation changes and reset calibration on change
86
88
  useEffect(() => {
87
89
  orientationAngle.value = getAngleFromDimensions();
@@ -231,32 +233,67 @@ export function Shine({
231
233
  .createPipeline();
232
234
  bloomPipeline = attachBindGroups(bloomPipeline, bloomBGP);
233
235
 
234
- let maskPipeline = root['~unstable']
236
+ let colorMaskPipeline = root['~unstable']
235
237
  .withVertex(mainVertex, {})
236
238
  .withFragment(colorMaskFragment, getDefaultTarget(presentationFormat))
237
239
  .createPipeline();
238
- maskPipeline = attachBindGroups(maskPipeline, maskBGP);
240
+ colorMaskPipeline = attachBindGroups(colorMaskPipeline, maskBGP);
239
241
 
242
+ const rot = d.vec3f(0.0);
243
+ let view: GPUTextureView;
244
+ let bloomAttachment;
245
+ let colorMaskAttachment;
240
246
  const render = () => {
241
- const rot = rotationShared.value;
242
- rotationBuffer.write(d.vec3f(rot[0]!, rot[1]!, rot[2]!));
243
-
244
- bloomPipeline
245
- .withColorAttachment({
246
- view: context.getCurrentTexture().createView(),
247
- clearValue: [0, 0, 0, 0],
248
- loadOp: 'clear',
249
- storeOp: 'store',
250
- })
251
- .draw(6);
252
-
253
- maskPipeline
254
- .withColorAttachment({
255
- view: context.getCurrentTexture().createView(),
256
- loadOp: 'load',
257
- storeOp: 'store',
258
- })
259
- .draw(6);
247
+ rot[0] = rotationShared.value[0];
248
+ rot[1] = rotationShared.value[1];
249
+ rot[2] = rotationShared.value[2];
250
+ rotationBuffer.write(rot);
251
+
252
+ view = context.getCurrentTexture().createView();
253
+ bloomAttachment = {
254
+ view: view,
255
+ clearValue: [0, 0, 0, 0],
256
+ loadOp: 'clear' as GPULoadOp,
257
+ storeOp: 'store' as GPUStoreOp,
258
+ };
259
+
260
+ colorMaskAttachment = {
261
+ view: view,
262
+ loadOp: 'load' as GPULoadOp,
263
+ storeOp: 'store' as GPUStoreOp,
264
+ };
265
+
266
+ // root['~unstable'].beginRenderPass(
267
+ // {
268
+ // colorAttachments: [
269
+ // {
270
+ // view,
271
+ // clearValue: [0, 0, 0, 0],
272
+ // loadOp: 'clear',
273
+ // storeOp: 'store',
274
+ // },
275
+ // ],
276
+ // },
277
+ // (pass) => {
278
+ // pass.setPipeline(bloomPipeline);
279
+ // // pass = attachBindGroupsToPass(pass, bloomBGP);
280
+ // pass.setBindGroup(textureBindGroupLayout, textureBindGroup);
281
+ // pass.setBindGroup(rotationValuesBindGroupLayout, rotationBindGroup);
282
+ // pass.setBindGroup(bloomOptionsBindGroupLayout, bloomOptionsBindGroup);
283
+ // pass.setBindGroup(colorMaskBindGroupLayout, colorMaskBindGroup);
284
+ // pass.draw(6);
285
+
286
+ // // Mask draw
287
+ // pass.setPipeline(colorMaskPipeline);
288
+ // pass.setBindGroup(textureBindGroupLayout, textureBindGroup);
289
+ // pass.setBindGroup(colorMaskBindGroupLayout, colorMaskBindGroup);
290
+ // pass.draw(6);
291
+ // }
292
+ // );
293
+ // root['~unstable'].flush();
294
+
295
+ bloomPipeline.withColorAttachment(bloomAttachment).draw(6);
296
+ colorMaskPipeline.withColorAttachment(colorMaskAttachment).draw(6);
260
297
 
261
298
  context.present();
262
299
  frameRef.current = requestAnimationFrame(render);
@@ -31,3 +31,14 @@ export const getDefaultTarget = (
31
31
  },
32
32
  };
33
33
  };
34
+
35
+ export const attachBindGroupsToPass = (
36
+ pass: any,
37
+ bindGroupPairs: BindGroupPair[]
38
+ ) => {
39
+ for (const pair of bindGroupPairs) {
40
+ pass.setBindGroup(pair.layout, pair.group);
41
+ }
42
+
43
+ return pass;
44
+ };
@@ -75,7 +75,7 @@ export const colorMaskToTyped = (colorMask: ColorMask) => {
75
75
  return result;
76
76
  };
77
77
 
78
- const numberArrToTyped = (vec: number[]) => {
78
+ export const numberArrToTyped = (vec: number[]) => {
79
79
  let convFn: ((...args: number[]) => any) | null = null;
80
80
  switch (vec.length) {
81
81
  case 2: