react-native-shine 0.0.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.
Files changed (70) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +159 -0
  3. package/lib/module/index.js +222 -0
  4. package/lib/module/index.js.map +1 -0
  5. package/lib/module/package.json +1 -0
  6. package/lib/module/roots.js +16 -0
  7. package/lib/module/roots.js.map +1 -0
  8. package/lib/module/shaders/bindGroupLayouts.js +45 -0
  9. package/lib/module/shaders/bindGroupLayouts.js.map +1 -0
  10. package/lib/module/shaders/bindGroupUtils.js +45 -0
  11. package/lib/module/shaders/bindGroupUtils.js.map +1 -0
  12. package/lib/module/shaders/fragmentShaders/bloomFragment.js +66 -0
  13. package/lib/module/shaders/fragmentShaders/bloomFragment.js.map +1 -0
  14. package/lib/module/shaders/fragmentShaders/colorMaskFragment.js +28 -0
  15. package/lib/module/shaders/fragmentShaders/colorMaskFragment.js.map +1 -0
  16. package/lib/module/shaders/pipelineSetups.js +32 -0
  17. package/lib/module/shaders/pipelineSetups.js.map +1 -0
  18. package/lib/module/shaders/resourceManagement.js +19 -0
  19. package/lib/module/shaders/resourceManagement.js.map +1 -0
  20. package/lib/module/shaders/tgpuUtils.js +38 -0
  21. package/lib/module/shaders/tgpuUtils.js.map +1 -0
  22. package/lib/module/shaders/utils.js +65 -0
  23. package/lib/module/shaders/utils.js.map +1 -0
  24. package/lib/module/shaders/vertexShaders/mainVertex.js +35 -0
  25. package/lib/module/shaders/vertexShaders/mainVertex.js.map +1 -0
  26. package/lib/module/types/typeUtils.js +92 -0
  27. package/lib/module/types/typeUtils.js.map +1 -0
  28. package/lib/module/types/types.js +4 -0
  29. package/lib/module/types/types.js.map +1 -0
  30. package/lib/typescript/package.json +1 -0
  31. package/lib/typescript/src/index.d.ts +12 -0
  32. package/lib/typescript/src/index.d.ts.map +1 -0
  33. package/lib/typescript/src/roots.d.ts +4 -0
  34. package/lib/typescript/src/roots.d.ts.map +1 -0
  35. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +57 -0
  36. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -0
  37. package/lib/typescript/src/shaders/bindGroupUtils.d.ts +53 -0
  38. package/lib/typescript/src/shaders/bindGroupUtils.d.ts.map +1 -0
  39. package/lib/typescript/src/shaders/fragmentShaders/bloomFragment.d.ts +6 -0
  40. package/lib/typescript/src/shaders/fragmentShaders/bloomFragment.d.ts.map +1 -0
  41. package/lib/typescript/src/shaders/fragmentShaders/colorMaskFragment.d.ts +6 -0
  42. package/lib/typescript/src/shaders/fragmentShaders/colorMaskFragment.d.ts.map +1 -0
  43. package/lib/typescript/src/shaders/pipelineSetups.d.ts +8 -0
  44. package/lib/typescript/src/shaders/pipelineSetups.d.ts.map +1 -0
  45. package/lib/typescript/src/shaders/resourceManagement.d.ts +3 -0
  46. package/lib/typescript/src/shaders/resourceManagement.d.ts.map +1 -0
  47. package/lib/typescript/src/shaders/tgpuUtils.d.ts +6 -0
  48. package/lib/typescript/src/shaders/tgpuUtils.d.ts.map +1 -0
  49. package/lib/typescript/src/shaders/utils.d.ts +13 -0
  50. package/lib/typescript/src/shaders/utils.d.ts.map +1 -0
  51. package/lib/typescript/src/shaders/vertexShaders/mainVertex.d.ts +6 -0
  52. package/lib/typescript/src/shaders/vertexShaders/mainVertex.d.ts.map +1 -0
  53. package/lib/typescript/src/types/typeUtils.d.ts +17 -0
  54. package/lib/typescript/src/types/typeUtils.d.ts.map +1 -0
  55. package/lib/typescript/src/types/types.d.ts +33 -0
  56. package/lib/typescript/src/types/types.d.ts.map +1 -0
  57. package/package.json +160 -13
  58. package/src/index.tsx +326 -0
  59. package/src/roots.ts +16 -0
  60. package/src/shaders/bindGroupLayouts.ts +40 -0
  61. package/src/shaders/bindGroupUtils.ts +101 -0
  62. package/src/shaders/fragmentShaders/bloomFragment.ts +83 -0
  63. package/src/shaders/fragmentShaders/colorMaskFragment.ts +35 -0
  64. package/src/shaders/pipelineSetups.ts +44 -0
  65. package/src/shaders/resourceManagement.ts +22 -0
  66. package/src/shaders/tgpuUtils.ts +75 -0
  67. package/src/shaders/utils.ts +103 -0
  68. package/src/shaders/vertexShaders/mainVertex.ts +35 -0
  69. package/src/types/typeUtils.ts +122 -0
  70. package/src/types/types.ts +51 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tgpu","d","std","textureBindGroupLayout","colorMaskBindGroupLayout","colorMaskFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","mask","$","maskedColor","baseColor","rgbToleranceRange","color","textureSample","texture","sampler","maskedColorLower","sub","lower","maskedColorUpper","add","upper","upperCheck","all","le","xyz","lowerCheck","ge","discard"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/colorMaskFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,sBAAsB,EACtBC,wBAAwB,QACnB,wBAAqB;AAE5B,MAAMC,iBAAiB,GAAGL,IAAI,CAAC,WAAW,CAAC,CAACM,UAAU,CAAC;EACrDC,EAAE,EAAE;IAAEC,EAAE,EAAEP,CAAC,CAACQ;EAAM,CAAC;EACnBC,GAAG,EAAET,CAAC,CAACU;AACT,CAAC,CAAC,CAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGZ,CAAC,CAACQ,KAAK,CAACG,KAAK,CAACJ,EAAE,CAACM,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACJ,EAAE,CAACO,CAAC,CAAC;EAEtD,MAAMC,IAAI,GAAGZ,wBAAwB,CAACa,CAAC,CAACD,IAAI;EAC5C,MAAME,WAAW,GAAGF,IAAI,CAACG,SAAS;EAClC,MAAMC,iBAAiB,GAAGJ,IAAI,CAACI,iBAAiB;EAEhD,IAAIC,KAAK,GAAGnB,GAAG,CAACoB,aAAa,CAC3BnB,sBAAsB,CAACc,CAAC,CAACM,OAAO,EAChCpB,sBAAsB,CAACc,CAAC,CAACO,OAAO,EAChCX,QACF,CAAC;EAED,MAAMY,gBAAgB,GAAGvB,GAAG,CAACwB,GAAG,CAACR,WAAW,EAAEE,iBAAiB,CAACO,KAAK,CAAC;EACtE,MAAMC,gBAAgB,GAAG1B,GAAG,CAAC2B,GAAG,CAACX,WAAW,EAAEE,iBAAiB,CAACU,KAAK,CAAC;EACtE,MAAMC,UAAU,GAAG7B,GAAG,CAAC8B,GAAG,CAAC9B,GAAG,CAAC+B,EAAE,CAACZ,KAAK,CAACa,GAAG,EAAEN,gBAAgB,CAAC,CAAC;EAC/D,MAAMO,UAAU,GAAGjC,GAAG,CAAC8B,GAAG,CAAC9B,GAAG,CAACkC,EAAE,CAACf,KAAK,CAACa,GAAG,EAAET,gBAAgB,CAAC,CAAC;EAC/D,IAAIM,UAAU,IAAII,UAAU,EAAE;IAC5B,OAAOd,KAAK;EACd;EACAnB,GAAG,CAACmC,OAAO,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,eAAehC,iBAAiB","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ export const attachBindGroups = (pipeline, bindGroupPairs) => {
4
+ for (const pair of bindGroupPairs) {
5
+ pipeline = pipeline.with(pair.layout, pair.group);
6
+ }
7
+ return pipeline;
8
+ };
9
+ export const getDefaultTarget = presentationFormat => {
10
+ return {
11
+ format: presentationFormat,
12
+ blend: {
13
+ color: {
14
+ srcFactor: 'src-alpha',
15
+ dstFactor: 'one-minus-src-alpha',
16
+ operation: 'add'
17
+ },
18
+ alpha: {
19
+ srcFactor: 'one',
20
+ dstFactor: 'one-minus-src-alpha',
21
+ operation: 'add'
22
+ }
23
+ }
24
+ };
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
+ };
32
+ //# sourceMappingURL=pipelineSetups.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ import { Asset } from 'expo-asset';
4
+ const getBitmapFromURI = async uri => {
5
+ if (uriToBitmapMap.has(uri)) return uriToBitmapMap.get(uri);
6
+ console.log('bitmap not found in cache, fetching from URI');
7
+ const ast = Asset.fromURI(uri);
8
+ await ast.downloadAsync();
9
+ const fileURI = ast.localUri || ast.uri;
10
+ console.log('fetch completed, creating ImageBitmap');
11
+ const response = await fetch(fileURI);
12
+ const blob = await response.blob();
13
+ const imageBitmap = await createImageBitmap(blob);
14
+ uriToBitmapMap.set(uri, imageBitmap);
15
+ return imageBitmap;
16
+ };
17
+ const uriToBitmapMap = new Map();
18
+ export default getBitmapFromURI;
19
+ //# sourceMappingURL=resourceManagement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Asset","getBitmapFromURI","uri","uriToBitmapMap","has","get","console","log","ast","fromURI","downloadAsync","fileURI","localUri","response","fetch","blob","imageBitmap","createImageBitmap","set","Map"],"sourceRoot":"../../../src","sources":["shaders/resourceManagement.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,YAAY;AAElC,MAAMC,gBAAgB,GAAG,MAAOC,GAAW,IAA2B;EACpE,IAAIC,cAAc,CAACC,GAAG,CAACF,GAAG,CAAC,EAAE,OAAOC,cAAc,CAACE,GAAG,CAACH,GAAG,CAAC;EAC3DI,OAAO,CAACC,GAAG,CAAC,8CAA8C,CAAC;EAE3D,MAAMC,GAAG,GAAGR,KAAK,CAACS,OAAO,CAACP,GAAG,CAAC;EAC9B,MAAMM,GAAG,CAACE,aAAa,CAAC,CAAC;EACzB,MAAMC,OAAO,GAAGH,GAAG,CAACI,QAAQ,IAAIJ,GAAG,CAACN,GAAG;EAEvCI,OAAO,CAACC,GAAG,CAAC,uCAAuC,CAAC;EACpD,MAAMM,QAAQ,GAAG,MAAMC,KAAK,CAACH,OAAO,CAAC;EACrC,MAAMI,IAAI,GAAG,MAAMF,QAAQ,CAACE,IAAI,CAAC,CAAC;EAClC,MAAMC,WAAW,GAAG,MAAMC,iBAAiB,CAACF,IAAI,CAAC;EAEjDZ,cAAc,CAACe,GAAG,CAAChB,GAAG,EAAEc,WAAW,CAAC;EACpC,OAAOA,WAAW;AACpB,CAAC;AAED,MAAMb,cAAc,GAAG,IAAIgB,GAAG,CAAsB,CAAC;AAErD,eAAelB,gBAAgB","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ import tgpu from 'typegpu';
4
+ import * as std from 'typegpu/std';
5
+ import * as d from 'typegpu/data';
6
+ export const hueShift = tgpu.fn([d.vec3f, d.f32], d.vec3f)((rgb, angle) => {
7
+ const yiqY = std.add(std.mul(rgb.x, 0.299), std.add(std.mul(rgb.y, 0.587), std.mul(rgb.z, 0.114)));
8
+ const yiqI = std.add(std.mul(rgb.x, 0.596), std.sub(std.mul(rgb.y, -0.274), std.mul(rgb.z, 0.322)));
9
+ const yiqQ = std.add(std.mul(rgb.x, 0.211), std.sub(std.mul(rgb.y, -0.523), std.mul(rgb.z, 0.311)));
10
+
11
+ // Rotate hue
12
+ const cosA = std.cos(angle);
13
+ const sinA = std.sin(angle);
14
+ const i = std.sub(std.mul(yiqI, cosA), std.mul(yiqQ, sinA));
15
+ const q = std.add(std.mul(yiqI, sinA), std.mul(yiqQ, cosA));
16
+
17
+ // Convert back to RGB
18
+ const r = std.add(std.add(yiqY, std.mul(i, 0.956)), std.mul(q, 0.621));
19
+ const g = std.add(std.add(yiqY, std.mul(i, -0.272)), std.mul(q, -0.647));
20
+ const b = std.add(std.add(yiqY, std.mul(i, -1.105)), std.mul(q, 1.702));
21
+ return d.vec3f(r, g, b);
22
+ });
23
+ export const bloomColorShift = tgpu.fn([d.vec3f, d.f32], d.vec3f)((color, power) => {
24
+ const maxValue = std.max(std.max(color.x, color.y), color.z);
25
+ const scale = std.mix(d.f32(1.0), d.f32(1.0) / std.max(maxValue, d.f32(0.001)), power);
26
+ const boosted = std.mul(color, scale);
27
+ const saturated = std.mix(color, boosted, power);
28
+ return saturated;
29
+ });
30
+ export const overlayChannel = tgpu.fn([d.f32, d.f32], d.f32)((base, blend) => {
31
+ const mult = std.mul(2.0, std.mul(base, blend));
32
+ const screen = std.sub(1.0, std.mul(2.0, std.mul(std.sub(1.0, base), std.sub(1.0, blend))));
33
+ return std.select(screen, mult, base < d.f32(0.5));
34
+ });
35
+ export const overlayChannels = tgpu.fn([d.vec3f, d.vec3f], d.vec3f)((base, blend) => {
36
+ return d.vec3f(overlayChannel(base.x, blend.x), overlayChannel(base.y, blend.y), overlayChannel(base.z, blend.z));
37
+ });
38
+ //# sourceMappingURL=tgpuUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tgpu","std","d","hueShift","fn","vec3f","f32","rgb","angle","yiqY","add","mul","x","y","z","yiqI","sub","yiqQ","cosA","cos","sinA","sin","i","q","r","g","b","bloomColorShift","color","power","maxValue","max","scale","mix","boosted","saturated","overlayChannel","base","blend","mult","screen","select","overlayChannels"],"sourceRoot":"../../../src","sources":["shaders/tgpuUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ import { Dimensions } from 'react-native';
4
+ export const createTexture = async (root, size) => {
5
+ const texture = root['~unstable'].createTexture({
6
+ size: [size.width, size.height],
7
+ format: 'rgba8unorm'
8
+ }).$usage('sampled', 'render');
9
+ return texture;
10
+ };
11
+ export const loadTexture = async (root, imageBitmap, texture) => {
12
+ root.device.queue.copyExternalImageToTexture({
13
+ source: imageBitmap
14
+ }, {
15
+ texture: root.unwrap(texture)
16
+ }, [imageBitmap.width, imageBitmap.height]);
17
+ };
18
+ export const rotateVectorByQuaternion = (vec, quaternion) => {
19
+ 'worklet';
20
+
21
+ const t = [quaternion[1] * vec[2] - quaternion[2] * vec[1], quaternion[2] * vec[0] - quaternion[0] * vec[2], quaternion[0] * vec[1] - quaternion[1] * vec[0]];
22
+
23
+ // t2 = qw * forward + t
24
+ const t2 = [quaternion[3] * vec[0] + t[0], quaternion[3] * vec[1] + t[1], quaternion[3] * vec[2] + t[2]];
25
+ const crossQT2 = [quaternion[1] * t2[2] - quaternion[2] * t2[1], quaternion[2] * t2[0] - quaternion[0] * t2[2], quaternion[0] * t2[1] - quaternion[1] * t2[0]];
26
+
27
+ // rotated = vec + 2.0 * cross(q, t2)
28
+ const rotated = [vec[0] + 2.0 * crossQT2[0], vec[1] + 2.0 * crossQT2[1], vec[2] + 2.0 * crossQT2[2]];
29
+ return [rotated[0], rotated[1], rotated[2]];
30
+ };
31
+ export const clamp = (v, min = -1, max = 1) => {
32
+ 'worklet';
33
+
34
+ return Math.max(min, Math.min(max, v));
35
+ };
36
+ export const rotate2D = ([x, y], angleDeg) => {
37
+ 'worklet';
38
+
39
+ const rad = angleDeg * Math.PI / 180;
40
+ const c = Math.cos(rad);
41
+ const s = Math.sin(rad);
42
+ return [x * c - y * s, x * s + y * c];
43
+ };
44
+
45
+ // Simple helper to get angle from dimensions (0 or 90)
46
+ export function getAngleFromDimensions() {
47
+ const {
48
+ width,
49
+ height
50
+ } = Dimensions.get('window');
51
+ return width >= height ? 90 : 0;
52
+ }
53
+
54
+ // Subscribe to orientation change via Dimensions API only
55
+ export function subscribeToOrientationChange(callback) {
56
+ callback(getAngleFromDimensions());
57
+ const handler = () => {
58
+ callback(getAngleFromDimensions());
59
+ };
60
+ const dimSub = Dimensions.addEventListener('change', handler);
61
+ return () => {
62
+ dimSub.remove();
63
+ };
64
+ }
65
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dimensions","createTexture","root","size","texture","width","height","format","$usage","loadTexture","imageBitmap","device","queue","copyExternalImageToTexture","source","unwrap","rotateVectorByQuaternion","vec","quaternion","t","t2","crossQT2","rotated","clamp","v","min","max","Math","rotate2D","x","y","angleDeg","rad","PI","c","cos","s","sin","getAngleFromDimensions","get","subscribeToOrientationChange","callback","handler","dimSub","addEventListener","remove"],"sourceRoot":"../../../src","sources":["shaders/utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ import tgpu from 'typegpu';
4
+ import * as d from 'typegpu/data';
5
+ const mainVertex = tgpu['~unstable'].vertexFn({
6
+ in: {
7
+ vertexIndex: d.builtin.vertexIndex
8
+ },
9
+ out: {
10
+ position: d.builtin.position,
11
+ uv: d.vec2f
12
+ }
13
+ })(input => {
14
+ const position = [d.vec2f(-1.0, -1.0),
15
+ // bottom left
16
+ d.vec2f(1.0, 1.0),
17
+ // top right
18
+ d.vec2f(1.0, -1.0),
19
+ // bottom right
20
+ d.vec2f(-1.0, -1.0),
21
+ // bottom left
22
+ d.vec2f(-1.0, 1.0),
23
+ // top left
24
+ d.vec2f(1.0, 1.0) // top right
25
+ ];
26
+ const uv = [d.vec2f(0.0, 0.0), d.vec2f(1.0, 1.0), d.vec2f(1.0, 0.0), d.vec2f(0.0, 0.0), d.vec2f(0.0, 1.0), d.vec2f(1.0, 1.0)];
27
+ const index = input.vertexIndex;
28
+ const pos = position[index];
29
+ return {
30
+ position: d.vec4f(pos.xy, 0.0, 1.0),
31
+ uv: uv[index]
32
+ };
33
+ });
34
+ export default mainVertex;
35
+ //# sourceMappingURL=mainVertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tgpu","d","mainVertex","vertexFn","in","vertexIndex","builtin","out","position","uv","vec2f","input","index","pos","vec4f","xy"],"sourceRoot":"../../../../src","sources":["shaders/vertexShaders/mainVertex.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AAEjC,MAAMC,UAAU,GAAGF,IAAI,CAAC,WAAW,CAAC,CAACG,QAAQ,CAAC;EAC5CC,EAAE,EAAE;IAAEC,WAAW,EAAEJ,CAAC,CAACK,OAAO,CAACD;EAAY,CAAC;EAC1CE,GAAG,EAAE;IAAEC,QAAQ,EAAEP,CAAC,CAACK,OAAO,CAACE,QAAQ;IAAEC,EAAE,EAAER,CAAC,CAACS;EAAM;AACnD,CAAC,CAAC,CAAEC,KAAK,IAAK;EACZ,MAAMH,QAAiB,GAAG,CACxBP,CAAC,CAACS,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;EAAE;EACrBT,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;EAAE;EACnBT,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;EAAE;EACpBT,CAAC,CAACS,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;EAAE;EACrBT,CAAC,CAACS,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC;EAAE;EACpBT,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE;EAAA,CACpB;EAED,MAAMD,EAAW,GAAG,CAClBR,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EACjBT,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EACjBT,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EACjBT,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EACjBT,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EACjBT,CAAC,CAACS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAClB;EAED,MAAME,KAAK,GAAGD,KAAK,CAACN,WAAW;EAC/B,MAAMQ,GAAG,GAAGL,QAAQ,CAACI,KAAK,CAAU;EAEpC,OAAO;IACLJ,QAAQ,EAAEP,CAAC,CAACa,KAAK,CAACD,GAAG,CAACE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;IACnCN,EAAE,EAAEA,EAAE,CAACG,KAAK;EACd,CAAC;AACH,CAAC,CAAC;AAEF,eAAeV,UAAU","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ import { f32, vec2f, vec3f, vec4f } from 'typegpu/data';
4
+ import { div } from 'typegpu/std';
5
+ export const createBloomOptions = options => {
6
+ const {
7
+ glowPower,
8
+ hueShiftAngleMax,
9
+ hueShiftAngleMin,
10
+ hueBlendPower,
11
+ lightIntensity,
12
+ bloomIntensity
13
+ } = options;
14
+ const bloomOp = {
15
+ glowPower: glowPower ?? 1.0,
16
+ hueShiftAngleMax: hueShiftAngleMax ?? 1.0,
17
+ hueShiftAngleMin: hueShiftAngleMin ?? 0.0,
18
+ hueBlendPower: hueBlendPower ?? 1.0,
19
+ lightIntensity: lightIntensity ?? 1.0,
20
+ bloomIntensity: bloomIntensity ?? 1.0
21
+ };
22
+ return bloomOp;
23
+ };
24
+ export const mapToF32 = obj => {
25
+ const result = {};
26
+ for (const key in obj) {
27
+ result[key] = f32(obj[key]);
28
+ }
29
+ return result;
30
+ };
31
+ export const createColorMask = colorMask => {
32
+ const {
33
+ baseColor,
34
+ rgbToleranceRange
35
+ } = colorMask;
36
+ const baseTolerance = {
37
+ upper: [20, 20, 20],
38
+ lower: [20, 20, 20]
39
+ };
40
+ const tolerance = {
41
+ ...baseTolerance,
42
+ ...rgbToleranceRange
43
+ };
44
+ const mask = {
45
+ baseColor: baseColor,
46
+ rgbToleranceRange: tolerance
47
+ };
48
+ return mask;
49
+ };
50
+ export const colorMaskToTyped = colorMask => {
51
+ const result = {
52
+ baseColor: div(numberArrToTyped(colorMask.baseColor), 255),
53
+ rgbToleranceRange: {
54
+ upper: div(numberArrToTyped(colorMask.rgbToleranceRange.upper), 255),
55
+ lower: div(numberArrToTyped(colorMask.rgbToleranceRange.lower), 255)
56
+ }
57
+ };
58
+ return result;
59
+ };
60
+ export const numberArrToTyped = vec => {
61
+ let convFn = null;
62
+ switch (vec.length) {
63
+ case 2:
64
+ convFn = vec2f;
65
+ break;
66
+ case 3:
67
+ convFn = vec3f;
68
+ break;
69
+ case 4:
70
+ convFn = vec4f;
71
+ break;
72
+ default:
73
+ throw new Error('numberArrToTyped: Vector must be of length [2-4]');
74
+ }
75
+ const typed = convFn(...vec);
76
+ return typed;
77
+ };
78
+ export const createBindGroupPair = (bindGroupLayout, bindGroup) => {
79
+ return {
80
+ layout: bindGroupLayout,
81
+ group: bindGroup
82
+ };
83
+ };
84
+ export const createBindGroupPairs = (bindGroupLayouts, bindGroups) => {
85
+ if (bindGroupLayouts.length > 0 && bindGroupLayouts.length !== bindGroups.length) throw new Error('createBindGroups: bindGroupLayout and bindGroup arrrays must be of the same length');
86
+ const pairs = [];
87
+ for (let i = 0; i < bindGroupLayouts.length; i++) {
88
+ pairs.push(createBindGroupPair(bindGroupLayouts[i], bindGroups[i]));
89
+ }
90
+ return pairs;
91
+ };
92
+ //# sourceMappingURL=typeUtils.js.map
@@ -0,0 +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":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,12 @@
1
+ import { subscribeToOrientationChange, getAngleFromDimensions } from './shaders/utils';
2
+ import type { BloomOptions, ColorMask, DeepPartiallyOptional } from './types/types';
3
+ interface ShineProps {
4
+ width: number;
5
+ height: number;
6
+ imageURI: string;
7
+ bloomOptions?: Partial<BloomOptions>;
8
+ colorMaskOptions?: DeepPartiallyOptional<ColorMask, 'baseColor'>;
9
+ }
10
+ export declare function Shine({ width, height, imageURI, bloomOptions, colorMaskOptions, }: ShineProps): import("react/jsx-runtime").JSX.Element;
11
+ export { subscribeToOrientationChange, getAngleFromDimensions };
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,2CAmQZ;AAED,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type TgpuRoot } from 'typegpu';
2
+ declare function getOrInitRoot(device: GPUDevice): TgpuRoot;
3
+ export { getOrInitRoot };
4
+ //# sourceMappingURL=roots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roots.d.ts","sourceRoot":"","sources":["../../../src/roots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI9C,iBAAS,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CASlD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,57 @@
1
+ import * as d from 'typegpu/data';
2
+ export declare const textureBindGroupLayout: import("typegpu").TgpuBindGroupLayout<{
3
+ texture: {
4
+ texture: "float";
5
+ dimension: string;
6
+ sampleType: string;
7
+ };
8
+ sampler: {
9
+ sampler: "filtering";
10
+ };
11
+ }>;
12
+ export declare const rotationValuesBindGroupLayout: import("typegpu").TgpuBindGroupLayout<{
13
+ vec: {
14
+ uniform: d.Vec3f;
15
+ };
16
+ }>;
17
+ export declare const bloomOptionsSchema: d.WgslStruct<{
18
+ glowPower: d.F32;
19
+ hueShiftAngleMax: d.F32;
20
+ hueShiftAngleMin: d.F32;
21
+ hueBlendPower: d.F32;
22
+ lightIntensity: d.F32;
23
+ bloomIntensity: d.F32;
24
+ }>;
25
+ export type bloomOptionsSchema = typeof bloomOptionsSchema;
26
+ export declare const bloomOptionsBindGroupLayout: import("typegpu").TgpuBindGroupLayout<{
27
+ bloomOptions: {
28
+ uniform: d.WgslStruct<{
29
+ glowPower: d.F32;
30
+ hueShiftAngleMax: d.F32;
31
+ hueShiftAngleMin: d.F32;
32
+ hueBlendPower: d.F32;
33
+ lightIntensity: d.F32;
34
+ bloomIntensity: d.F32;
35
+ }>;
36
+ };
37
+ }>;
38
+ export declare const colorMaskSchema: d.WgslStruct<{
39
+ baseColor: d.Vec3f;
40
+ rgbToleranceRange: d.WgslStruct<{
41
+ upper: d.Vec3f;
42
+ lower: d.Vec3f;
43
+ }>;
44
+ }>;
45
+ export type colorMaskSchema = typeof colorMaskSchema;
46
+ export declare const colorMaskBindGroupLayout: import("typegpu").TgpuBindGroupLayout<{
47
+ mask: {
48
+ uniform: d.WgslStruct<{
49
+ baseColor: d.Vec3f;
50
+ rgbToleranceRange: d.WgslStruct<{
51
+ upper: d.Vec3f;
52
+ lower: d.Vec3f;
53
+ }>;
54
+ }>;
55
+ };
56
+ }>;
57
+ //# sourceMappingURL=bindGroupLayouts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindGroupLayouts.d.ts","sourceRoot":"","sources":["../../../../src/shaders/bindGroupLayouts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;EAExC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;EAO7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAE3D,eAAO,MAAM,2BAA2B;;;;;;;;;;;EAEtC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC;AAErD,eAAO,MAAM,wBAAwB;;;;;;;;;;EAEnC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { type TgpuBuffer, type TgpuRoot, type UniformFlag } from 'typegpu';
2
+ import * as d from 'typegpu/data';
3
+ import { bloomOptionsSchema, colorMaskSchema } from './bindGroupLayouts';
4
+ import type { BloomOptions, ColorMask, PartiallyOptional } from '../types/types';
5
+ export declare const createRotationBuffer: (root: TgpuRoot, initValues?: {
6
+ x: number;
7
+ y: number;
8
+ z: number;
9
+ }) => TgpuBuffer<d.Vec3f> & UniformFlag;
10
+ export declare const createRotationValuesBindGroup: (root: TgpuRoot, buffer: TgpuBuffer<d.Vec3f> & UniformFlag) => import("typegpu").TgpuBindGroup<{
11
+ vec: {
12
+ uniform: d.Vec3f;
13
+ };
14
+ }>;
15
+ export declare const createBloomOptionsBuffer: (root: TgpuRoot, initValues?: Partial<BloomOptions>) => TgpuBuffer<d.WgslStruct<{
16
+ glowPower: d.F32;
17
+ hueShiftAngleMax: d.F32;
18
+ hueShiftAngleMin: d.F32;
19
+ hueBlendPower: d.F32;
20
+ lightIntensity: d.F32;
21
+ bloomIntensity: d.F32;
22
+ }>> & UniformFlag;
23
+ export declare const createBloomOptionsBindGroup: (root: TgpuRoot, buffer: TgpuBuffer<bloomOptionsSchema> & UniformFlag) => import("typegpu").TgpuBindGroup<{
24
+ bloomOptions: {
25
+ uniform: d.WgslStruct<{
26
+ glowPower: d.F32;
27
+ hueShiftAngleMax: d.F32;
28
+ hueShiftAngleMin: d.F32;
29
+ hueBlendPower: d.F32;
30
+ lightIntensity: d.F32;
31
+ bloomIntensity: d.F32;
32
+ }>;
33
+ };
34
+ }>;
35
+ export declare const createColorMaskBuffer: (root: TgpuRoot, initValues: PartiallyOptional<ColorMask, "baseColor">) => TgpuBuffer<d.WgslStruct<{
36
+ baseColor: d.Vec3f;
37
+ rgbToleranceRange: d.WgslStruct<{
38
+ upper: d.Vec3f;
39
+ lower: d.Vec3f;
40
+ }>;
41
+ }>> & UniformFlag;
42
+ export declare const createColorMaskBindGroup: (root: TgpuRoot, buffer: TgpuBuffer<colorMaskSchema> & UniformFlag) => import("typegpu").TgpuBindGroup<{
43
+ mask: {
44
+ uniform: d.WgslStruct<{
45
+ baseColor: d.Vec3f;
46
+ rgbToleranceRange: d.WgslStruct<{
47
+ upper: d.Vec3f;
48
+ lower: d.Vec3f;
49
+ }>;
50
+ }>;
51
+ };
52
+ }>;
53
+ //# sourceMappingURL=bindGroupUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindGroupUtils.d.ts","sourceRoot":"","sources":["../../../../src/shaders/bindGroupUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAEL,kBAAkB,EAElB,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAQxB,eAAO,MAAM,oBAAoB,GAC/B,MAAM,QAAQ,EACd,aAAa;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,sCAUjD,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,MAAM,QAAQ,EACd,QAAQ,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,WAAW;;;;EAU1C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,MAAM,QAAQ,EACd,aAAa,OAAO,CAAC,YAAY,CAAC;;;;;;;iBAUnC,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,MAAM,QAAQ,EACd,QAAQ,UAAU,CAAC,kBAAkB,CAAC,GAAG,WAAW;;;;;;;;;;;EAUrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,QAAQ,EACd,YAAY,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC;;;;;;iBAUtD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,MAAM,QAAQ,EACd,QAAQ,UAAU,CAAC,eAAe,CAAC,GAAG,WAAW;;;;;;;;;;EAOlD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as d from 'typegpu/data';
2
+ declare const bloomFragment: import("typegpu").TgpuFragmentFn<{
3
+ uv: d.Vec2f;
4
+ }, d.Vec4f>;
5
+ export default bloomFragment;
6
+ //# sourceMappingURL=bloomFragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bloomFragment.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/fragmentShaders/bloomFragment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAUlC,QAAA,MAAM,aAAa;;WAqEjB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as d from 'typegpu/data';
2
+ declare const colorMaskFragment: import("typegpu").TgpuFragmentFn<{
3
+ uv: d.Vec2f;
4
+ }, d.Vec4f>;
5
+ export default colorMaskFragment;
6
+ //# sourceMappingURL=colorMaskFragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorMaskFragment.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/fragmentShaders/colorMaskFragment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAOlC,QAAA,MAAM,iBAAiB;;WAwBrB,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { TgpuRenderPipeline } from 'typegpu';
2
+ import type { BindGroupPair } from '../types/types';
3
+ export declare const attachBindGroups: (pipeline: TgpuRenderPipeline, bindGroupPairs: BindGroupPair[]) => TgpuRenderPipeline<import("typegpu/data").Void | ((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">>[]>) | {
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
+ }>;
6
+ export declare const getDefaultTarget: (presentationFormat: GPUTextureFormat) => GPUColorTargetState;
7
+ export declare const attachBindGroupsToPass: (pass: any, bindGroupPairs: BindGroupPair[]) => any;
8
+ //# sourceMappingURL=pipelineSetups.d.ts.map
@@ -0,0 +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;AAEF,eAAO,MAAM,sBAAsB,GACjC,MAAM,GAAG,EACT,gBAAgB,aAAa,EAAE,QAOhC,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const getBitmapFromURI: (uri: string) => Promise<ImageBitmap>;
2
+ export default getBitmapFromURI;
3
+ //# sourceMappingURL=resourceManagement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceManagement.d.ts","sourceRoot":"","sources":["../../../../src/shaders/resourceManagement.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,gBAAgB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,WAAW,CAehE,CAAC;AAIF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as d from 'typegpu/data';
2
+ export declare const hueShift: import("typegpu").TgpuFn<(rgb: d.Vec3f, angle: d.F32) => d.Vec3f>;
3
+ export declare const bloomColorShift: import("typegpu").TgpuFn<(color: d.Vec3f, power: d.F32) => d.Vec3f>;
4
+ export declare const overlayChannel: import("typegpu").TgpuFn<(base: d.F32, blend: d.F32) => d.F32>;
5
+ export declare const overlayChannels: import("typegpu").TgpuFn<(base: d.Vec3f, blend: d.Vec3f) => d.Vec3f>;
6
+ //# sourceMappingURL=tgpuUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tgpuUtils.d.ts","sourceRoot":"","sources":["../../../../src/shaders/tgpuUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,eAAO,MAAM,QAAQ,mEA6BnB,CAAC;AAEH,eAAO,MAAM,eAAe,qEAc1B,CAAC;AAEH,eAAO,MAAM,cAAc,gEAYzB,CAAC;AAEH,eAAO,MAAM,eAAe,sEAS1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type TgpuRoot, type TgpuTexture } from 'typegpu';
2
+ import type { quaternion, vec3 } from '../types/types';
3
+ export declare const createTexture: (root: TgpuRoot, size: {
4
+ width: number;
5
+ height: number;
6
+ }) => Promise<TgpuTexture>;
7
+ export declare const loadTexture: (root: TgpuRoot, imageBitmap: ImageBitmap, texture: TgpuTexture) => Promise<void>;
8
+ export declare const rotateVectorByQuaternion: (vec: vec3, quaternion: quaternion) => vec3;
9
+ export declare const clamp: (v: number, min?: number, max?: number) => number;
10
+ export declare const rotate2D: ([x, y]: [number, number], angleDeg: number) => [number, number];
11
+ export declare function getAngleFromDimensions(): 0 | 90;
12
+ export declare function subscribeToOrientationChange(callback: (angleDeg: number) => void): () => void;
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/shaders/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGvD,eAAO,MAAM,aAAa,GACxB,MAAM,QAAQ,EACd,MAAM;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,KACA,OAAO,CAAC,WAAW,CASrB,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,MAAM,QAAQ,EACd,aAAa,WAAW,EACxB,SAAS,WAAW,kBAOrB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,KAAK,IAAI,EACT,YAAY,UAAU,KACrB,IA6BF,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,EAAE,YAAQ,EAAE,YAAO,WAGjD,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,UAAU,MAAM,KACf,CAAC,MAAM,EAAE,MAAM,CAMjB,CAAC;AAGF,wBAAgB,sBAAsB,WAGrC;AAGD,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,cAWrC"}
@@ -0,0 +1,6 @@
1
+ import * as d from 'typegpu/data';
2
+ declare const mainVertex: import("typegpu").TgpuVertexFn<{}, {
3
+ uv: d.Vec2f;
4
+ }>;
5
+ export default mainVertex;
6
+ //# sourceMappingURL=mainVertex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainVertex.d.ts","sourceRoot":"","sources":["../../../../../src/shaders/vertexShaders/mainVertex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,QAAA,MAAM,UAAU;;EA6Bd,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { f32 } from 'typegpu/data';
2
+ import type { BindGroupPair, BloomOptions, ColorMask, DeepPartiallyOptional } from './types';
3
+ import type { TgpuBindGroup, TgpuBindGroupLayout } from 'typegpu';
4
+ export declare const createBloomOptions: (options: Partial<BloomOptions>) => BloomOptions;
5
+ export declare const mapToF32: <T extends Record<string, number>>(obj: T) => { [K in keyof T]: ReturnType<typeof f32>; };
6
+ export declare const createColorMask: (colorMask: DeepPartiallyOptional<ColorMask, "baseColor">) => ColorMask;
7
+ export declare const colorMaskToTyped: (colorMask: ColorMask) => {
8
+ baseColor: any;
9
+ rgbToleranceRange: {
10
+ upper: any;
11
+ lower: any;
12
+ };
13
+ };
14
+ export declare const numberArrToTyped: (vec: number[]) => any;
15
+ export declare const createBindGroupPair: (bindGroupLayout: TgpuBindGroupLayout, bindGroup: TgpuBindGroup) => BindGroupPair;
16
+ export declare const createBindGroupPairs: (bindGroupLayouts: TgpuBindGroupLayout[], bindGroups: TgpuBindGroup[]) => BindGroupPair[];
17
+ //# sourceMappingURL=typeUtils.d.ts.map
@@ -0,0 +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;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"}