react-native-shine 0.6.0 → 0.7.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 (80) hide show
  1. package/lib/module/components/Content.js +79 -41
  2. package/lib/module/components/Content.js.map +1 -1
  3. package/lib/module/components/Shine.js +10 -0
  4. package/lib/module/components/Shine.js.map +1 -1
  5. package/lib/module/components/ShineGroup.js +16 -8
  6. package/lib/module/components/ShineGroup.js.map +1 -1
  7. package/lib/module/enums/colorHighlightPresets.js +24 -0
  8. package/lib/module/enums/colorHighlightPresets.js.map +1 -0
  9. package/lib/module/enums/effectPresets.js +16 -0
  10. package/lib/module/enums/effectPresets.js.map +1 -0
  11. package/lib/module/index.js +2 -0
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/shaders/bindGroupLayouts.js +24 -15
  14. package/lib/module/shaders/bindGroupLayouts.js.map +1 -1
  15. package/lib/module/shaders/bindGroupUtils.js +16 -7
  16. package/lib/module/shaders/bindGroupUtils.js.map +1 -1
  17. package/lib/module/shaders/computeShaders/precomputeColorMask.js +34 -0
  18. package/lib/module/shaders/computeShaders/precomputeColorMask.js.map +1 -0
  19. package/lib/module/shaders/fragmentShaders/colorMaskFragment.js +53 -41
  20. package/lib/module/shaders/fragmentShaders/colorMaskFragment.js.map +1 -1
  21. package/lib/module/shaders/fragmentShaders/glareFragment.js +11 -8
  22. package/lib/module/shaders/fragmentShaders/glareFragment.js.map +1 -1
  23. package/lib/module/shaders/fragmentShaders/holoFragment.js +6 -5
  24. package/lib/module/shaders/fragmentShaders/holoFragment.js.map +1 -1
  25. package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js +12 -8
  26. package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js.map +1 -1
  27. package/lib/module/shaders/pipelineSetups.js +3 -1
  28. package/lib/module/shaders/pipelineSetups.js.map +1 -1
  29. package/lib/module/shaders/resourceManagement/bufferManager.js.map +1 -1
  30. package/lib/module/types/size.js +2 -0
  31. package/lib/module/types/typeUtils.js +120 -75
  32. package/lib/module/types/typeUtils.js.map +1 -1
  33. package/lib/module/types/vector.js +2 -0
  34. package/lib/module/utils/vector.js +6 -6
  35. package/lib/typescript/src/components/Content.d.ts +11 -8
  36. package/lib/typescript/src/components/Content.d.ts.map +1 -1
  37. package/lib/typescript/src/components/Shine.d.ts.map +1 -1
  38. package/lib/typescript/src/components/ShineGroup.d.ts +1 -1
  39. package/lib/typescript/src/components/ShineGroup.d.ts.map +1 -1
  40. package/lib/typescript/src/enums/colorHighlightPresets.d.ts +12 -0
  41. package/lib/typescript/src/enums/colorHighlightPresets.d.ts.map +1 -0
  42. package/lib/typescript/src/enums/effectPresets.d.ts +14 -0
  43. package/lib/typescript/src/enums/effectPresets.d.ts.map +1 -0
  44. package/lib/typescript/src/index.d.ts +2 -0
  45. package/lib/typescript/src/index.d.ts.map +1 -1
  46. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +98 -49
  47. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -1
  48. package/lib/typescript/src/shaders/bindGroupUtils.d.ts +41 -48
  49. package/lib/typescript/src/shaders/bindGroupUtils.d.ts.map +1 -1
  50. package/lib/typescript/src/shaders/computeShaders/precomputeColorMask.d.ts +5 -0
  51. package/lib/typescript/src/shaders/computeShaders/precomputeColorMask.d.ts.map +1 -0
  52. package/lib/typescript/src/shaders/fragmentShaders/colorMaskFragment.d.ts.map +1 -1
  53. package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts.map +1 -1
  54. package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts.map +1 -1
  55. package/lib/typescript/src/shaders/pipelineSetups.d.ts +3 -4
  56. package/lib/typescript/src/shaders/pipelineSetups.d.ts.map +1 -1
  57. package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts +5 -3
  58. package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts.map +1 -1
  59. package/lib/typescript/src/types/typeUtils.d.ts +43 -10
  60. package/lib/typescript/src/types/typeUtils.d.ts.map +1 -1
  61. package/lib/typescript/src/types/types.d.ts +31 -4
  62. package/lib/typescript/src/types/types.d.ts.map +1 -1
  63. package/package.json +2 -1
  64. package/src/components/Content.tsx +98 -39
  65. package/src/components/Shine.tsx +8 -0
  66. package/src/components/ShineGroup.tsx +16 -8
  67. package/src/enums/colorHighlightPresets.ts +33 -0
  68. package/src/enums/effectPresets.ts +11 -0
  69. package/src/index.tsx +2 -0
  70. package/src/shaders/bindGroupLayouts.ts +34 -11
  71. package/src/shaders/bindGroupUtils.ts +19 -26
  72. package/src/shaders/computeShaders/precomputeColorMask.ts +29 -0
  73. package/src/shaders/fragmentShaders/colorMaskFragment.ts +64 -45
  74. package/src/shaders/fragmentShaders/glareFragment.ts +10 -6
  75. package/src/shaders/fragmentShaders/holoFragment.ts +5 -5
  76. package/src/shaders/fragmentShaders/reverseHoloFragment.ts +12 -7
  77. package/src/shaders/pipelineSetups.ts +15 -6
  78. package/src/shaders/resourceManagement/bufferManager.ts +8 -3
  79. package/src/types/typeUtils.ts +134 -82
  80. package/src/types/types.ts +36 -4
@@ -1,24 +1,33 @@
1
1
  "use strict";
2
2
 
3
3
  import * as d from 'typegpu/data';
4
- import { glareBindGroupLayout, glareSchema, colorMaskBindGroupLayout, rotationBindGroupLayout, colorMaskSchema, reverseHoloDetectionChannelFlagsBindGroupLayout } from "./bindGroupLayouts.js";
5
- import { colorMaskToTyped, createGlareOptions, createColorMask, mapToF32 } from "../types/typeUtils.js";
4
+ import { glareBindGroupLayout, glareSchema, colorMaskBindGroupLayout, rotationBindGroupLayout, reverseHoloDetectionChannelFlagsBindGroupLayout } from "./bindGroupLayouts.js";
5
+ import { createGlareOptions, glareOptionsToTyped } from "../types/typeUtils.js";
6
6
  import { componentsFromV3d, zeroV3d } from "../utils/vector.js";
7
7
  export const createRotationBuffer = (root, initValues = zeroV3d) => root.createBuffer(d.vec3f, d.vec3f(...componentsFromV3d(initValues))).$usage('uniform');
8
8
  export const createRotationValuesBindGroup = (root, buffer) => root.createBindGroup(rotationBindGroupLayout, {
9
9
  vec: root.unwrap(buffer)
10
10
  });
11
- export const createGlareOptionsBuffer = (root, initValues) => root.createBuffer(glareSchema, mapToF32(createGlareOptions({
11
+ export const createGlareOptionsBuffer = (root, initValues) => root.createBuffer(glareSchema, glareOptionsToTyped(createGlareOptions({
12
12
  ...initValues
13
13
  }))).$usage('uniform');
14
14
  export const createGlareBindGroup = (root, buffer) => root.createBindGroup(glareBindGroupLayout, {
15
15
  glareOptions: buffer
16
16
  });
17
- export const createColorMaskBuffer = (root, initValues) => root.createBuffer(colorMaskSchema, colorMaskToTyped(createColorMask({
18
- ...initValues
19
- }))).$usage('uniform');
17
+
18
+ // export const createColorMaskBuffer = (
19
+ // root: TgpuRoot,
20
+ // initValues: PartiallyOptional<ColorMask, 'baseColor'>[]
21
+ // ) =>
22
+ // root
23
+ // .createBuffer(
24
+ // colorMaskSchema,
25
+ // colorMasksToTyped(createColorMasks(initValues))
26
+ // )
27
+ // .$usage('uniform');
28
+
20
29
  export const createColorMaskBindGroup = (root, buffer) => root.createBindGroup(colorMaskBindGroupLayout, {
21
- mask: buffer
30
+ colorMasks: buffer
22
31
  });
23
32
  export const createReverseHoloDetectionChannelFlagsBindGroup = (root, detectionChannelBuffer, glareOptionsBuffer) => root.createBindGroup(reverseHoloDetectionChannelFlagsBindGroupLayout, {
24
33
  channelFlags: detectionChannelBuffer,
@@ -1 +1 @@
1
- {"version":3,"names":["d","glareBindGroupLayout","glareSchema","colorMaskBindGroupLayout","rotationBindGroupLayout","colorMaskSchema","reverseHoloDetectionChannelFlagsBindGroupLayout","colorMaskToTyped","createGlareOptions","createColorMask","mapToF32","componentsFromV3d","zeroV3d","createRotationBuffer","root","initValues","createBuffer","vec3f","$usage","createRotationValuesBindGroup","buffer","createBindGroup","vec","unwrap","createGlareOptionsBuffer","createGlareBindGroup","glareOptions","createColorMaskBuffer","createColorMaskBindGroup","mask","createReverseHoloDetectionChannelFlagsBindGroup","detectionChannelBuffer","glareOptionsBuffer","channelFlags"],"sourceRoot":"../../../src","sources":["shaders/bindGroupUtils.ts"],"mappings":";;AACA,OAAO,KAAKA,CAAC,MAAM,cAAc;AACjC,SACEC,oBAAoB,EACpBC,WAAW,EACXC,wBAAwB,EAExBC,uBAAuB,EAEvBC,eAAe,EAEfC,+CAA+C,QAC1C,uBAAoB;AAM3B,SACEC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAe,EACfC,QAAQ,QACH,uBAAoB;AAC3B,SAASC,iBAAiB,EAAEC,OAAO,QAAQ,oBAAiB;AAE5D,OAAO,MAAMC,oBAAoB,GAAGA,CAACC,IAAc,EAAEC,UAAU,GAAGH,OAAO,KACvEE,IAAI,CACDE,YAAY,CAAChB,CAAC,CAACiB,KAAK,EAAEjB,CAAC,CAACiB,KAAK,CAAC,GAAGN,iBAAiB,CAACI,UAAU,CAAC,CAAC,CAAC,CAChEG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMC,6BAA6B,GAAGA,CAC3CL,IAAc,EACdM,MAA2B,KAE3BN,IAAI,CAACO,eAAe,CAACjB,uBAAuB,EAAE;EAC5CkB,GAAG,EAAER,IAAI,CAACS,MAAM,CAACH,MAAM;AACzB,CAAC,CAAC;AAEJ,OAAO,MAAMI,wBAAwB,GAAGA,CACtCV,IAAc,EACdC,UAAkC,KAElCD,IAAI,CACDE,YAAY,CAACd,WAAW,EAAEQ,QAAQ,CAACF,kBAAkB,CAAC;EAAE,GAAGO;AAAW,CAAC,CAAC,CAAC,CAAC,CAC1EG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMO,oBAAoB,GAAGA,CAClCX,IAAc,EACdM,MAA6C,KAE7CN,IAAI,CAACO,eAAe,CAACpB,oBAAoB,EAAE;EACzCyB,YAAY,EAAEN;AAChB,CAAC,CAAC;AAEJ,OAAO,MAAMO,qBAAqB,GAAGA,CACnCb,IAAc,EACdC,UAAqD,KAErDD,IAAI,CACDE,YAAY,CACXX,eAAe,EACfE,gBAAgB,CAACE,eAAe,CAAC;EAAE,GAAGM;AAAW,CAAC,CAAC,CACrD,CAAC,CACAG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMU,wBAAwB,GAAGA,CACtCd,IAAc,EACdM,MAAiD,KAEjDN,IAAI,CAACO,eAAe,CAAClB,wBAAwB,EAAE;EAC7C0B,IAAI,EAAET;AACR,CAAC,CAAC;AAEJ,OAAO,MAAMU,+CAA+C,GAAGA,CAC7DhB,IAAc,EACdiB,sBACa,EACbC,kBAAyD,KAEzDlB,IAAI,CAACO,eAAe,CAACf,+CAA+C,EAAE;EACpE2B,YAAY,EAAEF,sBAAsB;EACpCL,YAAY,EAAEM;AAChB,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["d","glareBindGroupLayout","glareSchema","colorMaskBindGroupLayout","rotationBindGroupLayout","reverseHoloDetectionChannelFlagsBindGroupLayout","createGlareOptions","glareOptionsToTyped","componentsFromV3d","zeroV3d","createRotationBuffer","root","initValues","createBuffer","vec3f","$usage","createRotationValuesBindGroup","buffer","createBindGroup","vec","unwrap","createGlareOptionsBuffer","createGlareBindGroup","glareOptions","createColorMaskBindGroup","colorMasks","createReverseHoloDetectionChannelFlagsBindGroup","detectionChannelBuffer","glareOptionsBuffer","channelFlags"],"sourceRoot":"../../../src","sources":["shaders/bindGroupUtils.ts"],"mappings":";;AACA,OAAO,KAAKA,CAAC,MAAM,cAAc;AACjC,SACEC,oBAAoB,EACpBC,WAAW,EACXC,wBAAwB,EACxBC,uBAAuB,EAGvBC,+CAA+C,QAE1C,uBAAoB;AAE3B,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,uBAAoB;AAC5E,SAASC,iBAAiB,EAAEC,OAAO,QAAQ,oBAAiB;AAE5D,OAAO,MAAMC,oBAAoB,GAAGA,CAACC,IAAc,EAAEC,UAAU,GAAGH,OAAO,KACvEE,IAAI,CACDE,YAAY,CAACb,CAAC,CAACc,KAAK,EAAEd,CAAC,CAACc,KAAK,CAAC,GAAGN,iBAAiB,CAACI,UAAU,CAAC,CAAC,CAAC,CAChEG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMC,6BAA6B,GAAGA,CAC3CL,IAAc,EACdM,MAA2B,KAE3BN,IAAI,CAACO,eAAe,CAACd,uBAAuB,EAAE;EAC5Ce,GAAG,EAAER,IAAI,CAACS,MAAM,CAACH,MAAM;AACzB,CAAC,CAAC;AAEJ,OAAO,MAAMI,wBAAwB,GAAGA,CACtCV,IAAc,EACdC,UAAkC,KAElCD,IAAI,CACDE,YAAY,CACXX,WAAW,EACXK,mBAAmB,CAACD,kBAAkB,CAAC;EAAE,GAAGM;AAAW,CAAC,CAAC,CAC3D,CAAC,CACAG,MAAM,CAAC,SAAS,CAAC;AAEtB,OAAO,MAAMO,oBAAoB,GAAGA,CAClCX,IAAc,EACdM,MAA6C,KAE7CN,IAAI,CAACO,eAAe,CAACjB,oBAAoB,EAAE;EACzCsB,YAAY,EAAEN;AAChB,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMO,wBAAwB,GAAGA,CACtCb,IAAc,EACdM,MAAsD,KAEtDN,IAAI,CAACO,eAAe,CAACf,wBAAwB,EAAE;EAC7CsB,UAAU,EAAER;AACd,CAAC,CAAC;AAEJ,OAAO,MAAMS,+CAA+C,GAAGA,CAC7Df,IAAc,EACdgB,sBACa,EACbC,kBAAyD,KAEzDjB,IAAI,CAACO,eAAe,CAACb,+CAA+C,EAAE;EACpEwB,YAAY,EAAEF,sBAAsB;EACpCJ,YAAY,EAAEK;AAChB,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import tgpu from 'typegpu';
4
+ import * as d from 'typegpu/data';
5
+ import * as std from 'typegpu/std';
6
+ import { precomputeColorMaskBindGroupLayout, textureBindGroupLayout } from "./../bindGroupLayouts.js";
7
+ export const precomputeColorMask = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~unstable'].computeFn({
8
+ in: {
9
+ gid: d.builtin.globalInvocationId
10
+ },
11
+ workgroupSize: [8, 8, 1]
12
+ })(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = input => {
13
+ const x = input.gid.x;
14
+ const y = input.gid.y;
15
+ const colorMaskStorageTexture = precomputeColorMaskBindGroupLayout.$.colorMaskTextureDst;
16
+ const size = std.textureDimensions(colorMaskStorageTexture);
17
+ if (x >= size.x || y >= size.y) return;
18
+ const uv = d.vec2f(d.f32(x) / d.f32(size.x), d.f32(y) / d.f32(size.y));
19
+ const colorSampled = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, uv);
20
+ std.textureStore(colorMaskStorageTexture, d.vec2u(x, y), colorSampled);
21
+ }, {
22
+ v: 1,
23
+ name: void 0,
24
+ ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"x",[7,[7,"input","gid"],"x"]],[13,"y",[7,[7,"input","gid"],"y"]],[13,"colorMaskStorageTexture",[7,[7,"precomputeColorMaskBindGroupLayout","$"],"colorMaskTextureDst"]],[13,"size",[6,[7,"std","textureDimensions"],["colorMaskStorageTexture"]]],[11,[3,[1,"x",">=",[7,"size","x"]],"||",[1,"y",">=",[7,"size","y"]]],[10]],[13,"uv",[6,[7,"d","vec2f"],[[1,[6,[7,"d","f32"],["x"]],"/",[6,[7,"d","f32"],[[7,"size","x"]]]],[1,[6,[7,"d","f32"],["y"]],"/",[6,[7,"d","f32"],[[7,"size","y"]]]]]]],[13,"colorSampled",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"uv"]]],[6,[7,"std","textureStore"],["colorMaskStorageTexture",[6,[7,"d","vec2u"],["x","y"]],"colorSampled"]]]],"externalNames":["precomputeColorMaskBindGroupLayout","std","d","textureBindGroupLayout"]},
25
+ get externals() {
26
+ return {
27
+ precomputeColorMaskBindGroupLayout,
28
+ std,
29
+ d,
30
+ textureBindGroupLayout
31
+ };
32
+ }
33
+ }) && $.f)({})), "precomputeColorMask");
34
+ //# sourceMappingURL=precomputeColorMask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tgpu","d","std","precomputeColorMaskBindGroupLayout","textureBindGroupLayout","precomputeColorMask","globalThis","__TYPEGPU_AUTONAME__","a","computeFn","in","gid","builtin","globalInvocationId","workgroupSize","$","__TYPEGPU_META__","WeakMap","set","f","input","x","y","colorMaskStorageTexture","colorMaskTextureDst","size","textureDimensions","uv","vec2f","f32","colorSampled","textureSample","texture","sampler","textureStore","vec2u","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"x\",[7,[7,\"input\",\"gid\"],\"x\"]],[13,\"y\",[7,[7,\"input\",\"gid\"],\"y\"]],[13,\"colorMaskStorageTexture\",[7,[7,\"precomputeColorMaskBindGroupLayout\",\"$\"],\"colorMaskTextureDst\"]],[13,\"size\",[6,[7,\"std\",\"textureDimensions\"],[\"colorMaskStorageTexture\"]]],[11,[3,[1,\"x\",\">=\",[7,\"size\",\"x\"]],\"||\",[1,\"y\",\">=\",[7,\"size\",\"y\"]]],[10]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[1,[6,[7,\"d\",\"f32\"],[\"x\"]],\"/\",[6,[7,\"d\",\"f32\"],[[7,\"size\",\"x\"]]]],[1,[6,[7,\"d\",\"f32\"],[\"y\"]],\"/\",[6,[7,\"d\",\"f32\"],[[7,\"size\",\"y\"]]]]]]],[13,\"colorSampled\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"uv\"]]],[6,[7,\"std\",\"textureStore\"],[\"colorMaskStorageTexture\",[6,[7,\"d\",\"vec2u\"],[\"x\",\"y\"]],\"colorSampled\"]]]],\"externalNames\":[\"precomputeColorMaskBindGroupLayout\",\"std\",\"d\",\"textureBindGroupLayout\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/computeShaders/precomputeColorMask.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,kCAAkC,EAClCC,sBAAsB,QACjB,0BAAuB;AAE9B,OAAO,MAAMC,mBAAmB,IAAAC,UAAA,CAAAC,oBAAA,KAAAC,CAAA,IAAAA,CAAA,GAAGR,IAAI,CAAC,WAAW,CAAC,CAACS,SAAS,CAAC;EAC7DC,EAAE,EAAE;IAAEC,GAAG,EAAEV,CAAC,CAACW,OAAO,CAACC;EAAmB,CAAC;EACzCC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC,CAAC,EAAAC,CAAA,KAAAT,UAAA,CAAAU,gBAAA,SAAAC,OAAA,IAAAC,GAAA,CAAAH,CAAA,CAAAI,CAAA,GAAEC,KAAK,IAAK;EACZ,MAAMC,CAAC,GAAGD,KAAK,CAACT,GAAG,CAACU,CAAC;EACrB,MAAMC,CAAC,GAAGF,KAAK,CAACT,GAAG,CAACW,CAAC;EACrB,MAAMC,uBAAuB,GAC3BpB,kCAAkC,CAACY,CAAC,CAACS,mBAAmB;EAC1D,MAAMC,IAAI,GAAGvB,GAAG,CAACwB,iBAAiB,CAACH,uBAAuB,CAAC;EAE3D,IAAIF,CAAC,IAAII,IAAI,CAACJ,CAAC,IAAIC,CAAC,IAAIG,IAAI,CAACH,CAAC,EAAE;EAChC,MAAMK,EAAE,GAAG1B,CAAC,CAAC2B,KAAK,CAAC3B,CAAC,CAAC4B,GAAG,CAACR,CAAC,CAAC,GAAGpB,CAAC,CAAC4B,GAAG,CAACJ,IAAI,CAACJ,CAAC,CAAC,EAAEpB,CAAC,CAAC4B,GAAG,CAACP,CAAC,CAAC,GAAGrB,CAAC,CAAC4B,GAAG,CAACJ,IAAI,CAACH,CAAC,CAAC,CAAC;EAEtE,MAAMQ,YAAY,GAAG5B,GAAG,CAAC6B,aAAa,CACpC3B,sBAAsB,CAACW,CAAC,CAACiB,OAAO,EAChC5B,sBAAsB,CAACW,CAAC,CAACkB,OAAO,EAChCN,EACF,CAAC;EAEDzB,GAAG,CAACgC,YAAY,CAACX,uBAAuB,EAAEtB,CAAC,CAACkC,KAAK,CAACd,CAAC,EAAEC,CAAC,CAAC,EAAEQ,YAAY,CAAC;AACxE,CAAC;EAAAM,CAAA;EAAAC,IAAA;EAAAC,GAAA,EAAAC,m3BAAA;EAAA,IAAAC,UAAA;IAAA;MAAArC,kCAAA;MAAAD,GAAA;MAAAD,CAAA;MAAAG;IAAA;EAAA;AAAA,MAAAW,CAAA,CAAAI,CAAA,8BAAC","ignoreList":[]}
@@ -12,61 +12,73 @@ const colorMaskFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['~u
12
12
  out: d.vec4f
13
13
  })(($ => (globalThis.__TYPEGPU_META__ ??= new WeakMap()).set($.f = input => {
14
14
  const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
15
- const mask = colorMaskBindGroupLayout.$.mask;
16
- const maskedColor = mask.baseColor;
17
- const rgbToleranceRange = mask.rgbToleranceRange;
18
- const useHSV = mask.useHSV;
19
- const hueToleranceRange = mask.hueToleranceRange;
20
- const hueUpper = hueToleranceRange.upper;
21
- const hueLower = hueToleranceRange.lower;
22
- const brightnessTolerance = mask.brightnessTolerance;
23
- const saturationTolerance = mask.saturationTolerance;
24
- const lowSaturationThreshold = mask.lowSaturationThreshold;
25
- const lowBrightnessThreshold = mask.lowBrightnessThreshold;
26
- const colorMaskDebug = mask.debugMode;
27
15
  let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
28
- const maskedColorLower = std.sub(maskedColor, rgbToleranceRange.lower);
29
- const maskedColorUpper = std.add(maskedColor, rgbToleranceRange.upper);
30
- const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
31
- const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
32
- const rgbCheck = upperCheck && lowerCheck;
33
- const maskedHSV = rgbToHSV(maskedColor);
16
+ const masks = colorMaskBindGroupLayout.$.colorMasks.masks;
17
+ const usedMaskCount = colorMaskBindGroupLayout.$.colorMasks.usedMaskCount;
18
+ const reverseHighlight = colorMaskBindGroupLayout.$.colorMasks.reverseHighlight;
19
+ let colorMaskDebug = d.u32(0);
20
+ let cumulativeMaskCheck = d.u32(0);
34
21
  const colorHSV = rgbToHSV(color.xyz);
35
- let hueDiff = std.sub(colorHSV.x, maskedHSV.x);
36
- hueDiff = std.select(hueDiff, std.sub(hueDiff, 1.0), hueDiff > d.f32(0.5));
37
- hueDiff = std.select(hueDiff, std.add(hueDiff, 1.0), hueDiff < d.f32(-0.5));
38
- const lowerHueCheck = hueDiff >= -hueLower;
39
- const upperHueCheck = hueDiff <= hueUpper;
40
- let hueCheck = lowerHueCheck && upperHueCheck;
41
- const saturationDiff = std.abs(std.sub(colorHSV.y, maskedHSV.y));
42
- const saturationCheck = saturationDiff <= saturationTolerance;
43
- const brightnessDiff = std.abs(std.sub(colorHSV.z, maskedHSV.z));
44
- const brightnessCheck = brightnessDiff <= brightnessTolerance;
45
- const pixelIsGray = colorHSV.y < lowSaturationThreshold;
46
- const targetIsGray = maskedHSV.y < lowSaturationThreshold;
47
- const pixelIsBlack = colorHSV.z < lowBrightnessThreshold;
48
- const targetIsBlack = maskedHSV.z < lowBrightnessThreshold;
49
22
 
50
- //hue is unstable when either color is gray or black (low saturation or low brightness)
51
- const hueIsUnstable = pixelIsGray || targetIsGray || pixelIsBlack || targetIsBlack;
52
- hueCheck = std.select(hueCheck, d.bool(true), hueIsUnstable);
53
- const hsvCheck = hueCheck && saturationCheck && brightnessCheck;
54
- const maskCheck = std.select(rgbCheck, hsvCheck, useHSV === d.u32(1));
55
- color = std.select(color, d.vec4f(color.xyz, 0.0), maskCheck);
23
+ //TODO: optimize this more
24
+ for (let i = 0; i < 16; i++) {
25
+ if (usedMaskCount <= i) break;
26
+ const mask = masks[i];
27
+ const maskedColor = mask.baseColor;
28
+ const rgbToleranceRange = mask.rgbToleranceRange;
29
+ const useHSV = mask.useHSV;
30
+ const hueToleranceRange = mask.hueToleranceRange;
31
+ const hueUpper = hueToleranceRange.upper;
32
+ const hueLower = hueToleranceRange.lower;
33
+ const brightnessTolerance = mask.brightnessTolerance;
34
+ const saturationTolerance = mask.saturationTolerance;
35
+ const lowSaturationThreshold = mask.lowSaturationThreshold;
36
+ const lowBrightnessThreshold = mask.lowBrightnessThreshold;
37
+ const maskedColorLower = std.sub(maskedColor, rgbToleranceRange.lower);
38
+ const maskedColorUpper = std.add(maskedColor, rgbToleranceRange.upper);
39
+ const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
40
+ const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
41
+ const rgbCheck = upperCheck && lowerCheck;
42
+ const maskedHSV = rgbToHSV(maskedColor);
43
+ let hueDiff = std.sub(colorHSV.x, maskedHSV.x);
44
+ hueDiff = std.select(hueDiff, std.sub(hueDiff, 1.0), hueDiff > d.f32(0.5));
45
+ hueDiff = std.select(hueDiff, std.add(hueDiff, 1.0), hueDiff < d.f32(-0.5));
46
+ const lowerHueCheck = hueDiff >= -hueLower;
47
+ const upperHueCheck = hueDiff <= hueUpper;
48
+ let hueCheck = lowerHueCheck && upperHueCheck;
49
+ const saturationDiff = std.abs(std.sub(colorHSV.y, maskedHSV.y));
50
+ const saturationCheck = saturationDiff <= saturationTolerance;
51
+ const brightnessDiff = std.abs(std.sub(colorHSV.z, maskedHSV.z));
52
+ const brightnessCheck = brightnessDiff <= brightnessTolerance;
53
+ const pixelIsGray = colorHSV.y < lowSaturationThreshold;
54
+ const targetIsGray = maskedHSV.y < lowSaturationThreshold;
55
+ const pixelIsBlack = colorHSV.z < lowBrightnessThreshold;
56
+ const targetIsBlack = maskedHSV.z < lowBrightnessThreshold;
56
57
 
58
+ //hue is unstable when either color is gray or black (low saturation or low brightness)
59
+ //TODO: investigate the '||' operator usage, it seems to severely slow down the shader?
60
+ const hueIsUnstable = pixelIsGray || targetIsGray || pixelIsBlack || targetIsBlack;
61
+ hueCheck = std.select(hueCheck, d.bool(true), hueIsUnstable);
62
+ const hsvCheck = hueCheck && saturationCheck && brightnessCheck;
63
+ const maskCheck = std.select(rgbCheck, hsvCheck, useHSV === d.u32(1));
64
+ cumulativeMaskCheck = cumulativeMaskCheck + d.u32(maskCheck);
65
+ colorMaskDebug = colorMaskDebug + mask.debugMode;
66
+ }
67
+ const maskingLogic = std.select(cumulativeMaskCheck > 0, cumulativeMaskCheck === 0, reverseHighlight === 1);
68
+ color = std.select(color, d.vec4f(color.xyz, 0.0), maskingLogic);
57
69
  //debug - shows masked areas coloring them red
58
- color = std.select(color, d.vec4f(1.0, 0.0, 0.0, 0.0), maskCheck && colorMaskDebug === d.u32(1));
70
+ color = std.select(color, d.vec4f(1.0, 0.0, 0.0, 0.0), maskingLogic && colorMaskDebug > 0);
59
71
  return color;
60
72
  }, {
61
73
  v: 1,
62
74
  name: void 0,
63
- ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"mask",[7,[7,"colorMaskBindGroupLayout","$"],"mask"]],[13,"maskedColor",[7,"mask","baseColor"]],[13,"rgbToleranceRange",[7,"mask","rgbToleranceRange"]],[13,"useHSV",[7,"mask","useHSV"]],[13,"hueToleranceRange",[7,"mask","hueToleranceRange"]],[13,"hueUpper",[7,"hueToleranceRange","upper"]],[13,"hueLower",[7,"hueToleranceRange","lower"]],[13,"brightnessTolerance",[7,"mask","brightnessTolerance"]],[13,"saturationTolerance",[7,"mask","saturationTolerance"]],[13,"lowSaturationThreshold",[7,"mask","lowSaturationThreshold"]],[13,"lowBrightnessThreshold",[7,"mask","lowBrightnessThreshold"]],[13,"colorMaskDebug",[7,"mask","debugMode"]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"maskedColorLower",[6,[7,"std","sub"],["maskedColor",[7,"rgbToleranceRange","lower"]]]],[13,"maskedColorUpper",[6,[7,"std","add"],["maskedColor",[7,"rgbToleranceRange","upper"]]]],[13,"upperCheck",[6,[7,"std","all"],[[6,[7,"std","le"],[[7,"color","xyz"],"maskedColorUpper"]]]]],[13,"lowerCheck",[6,[7,"std","all"],[[6,[7,"std","ge"],[[7,"color","xyz"],"maskedColorLower"]]]]],[13,"rgbCheck",[3,"upperCheck","&&","lowerCheck"]],[13,"maskedHSV",[6,"rgbToHSV",["maskedColor"]]],[13,"colorHSV",[6,"rgbToHSV",[[7,"color","xyz"]]]],[12,"hueDiff",[6,[7,"std","sub"],[[7,"colorHSV","x"],[7,"maskedHSV","x"]]]],[2,"hueDiff","=",[6,[7,"std","select"],["hueDiff",[6,[7,"std","sub"],["hueDiff",[5,"1"]]],[1,"hueDiff",">",[6,[7,"d","f32"],[[5,"0.5"]]]]]]],[2,"hueDiff","=",[6,[7,"std","select"],["hueDiff",[6,[7,"std","add"],["hueDiff",[5,"1"]]],[1,"hueDiff","<",[6,[7,"d","f32"],[[4,"-",[5,"0.5"]]]]]]]],[13,"lowerHueCheck",[1,"hueDiff",">=",[4,"-","hueLower"]]],[13,"upperHueCheck",[1,"hueDiff","<=","hueUpper"]],[12,"hueCheck",[3,"lowerHueCheck","&&","upperHueCheck"]],[13,"saturationDiff",[6,[7,"std","abs"],[[6,[7,"std","sub"],[[7,"colorHSV","y"],[7,"maskedHSV","y"]]]]]],[13,"saturationCheck",[1,"saturationDiff","<=","saturationTolerance"]],[13,"brightnessDiff",[6,[7,"std","abs"],[[6,[7,"std","sub"],[[7,"colorHSV","z"],[7,"maskedHSV","z"]]]]]],[13,"brightnessCheck",[1,"brightnessDiff","<=","brightnessTolerance"]],[13,"pixelIsGray",[1,[7,"colorHSV","y"],"<","lowSaturationThreshold"]],[13,"targetIsGray",[1,[7,"maskedHSV","y"],"<","lowSaturationThreshold"]],[13,"pixelIsBlack",[1,[7,"colorHSV","z"],"<","lowBrightnessThreshold"]],[13,"targetIsBlack",[1,[7,"maskedHSV","z"],"<","lowBrightnessThreshold"]],[13,"hueIsUnstable",[3,[3,[3,"pixelIsGray","||","targetIsGray"],"||","pixelIsBlack"],"||","targetIsBlack"]],[2,"hueCheck","=",[6,[7,"std","select"],["hueCheck",[6,[7,"d","bool"],[true]],"hueIsUnstable"]]],[13,"hsvCheck",[3,[3,"hueCheck","&&","saturationCheck"],"&&","brightnessCheck"]],[13,"maskCheck",[6,[7,"std","select"],["rgbCheck","hsvCheck",[1,"useHSV","==",[6,[7,"d","u32"],[[5,"1"]]]]]]],[2,"color","=",[6,[7,"std","select"],["color",[6,[7,"d","vec4f"],[[7,"color","xyz"],[5,"0"]]],"maskCheck"]]],[2,"color","=",[6,[7,"std","select"],["color",[6,[7,"d","vec4f"],[[5,"1"],[5,"0"],[5,"0"],[5,"0"]]],[3,"maskCheck","&&",[1,"colorMaskDebug","==",[6,[7,"d","u32"],[[5,"1"]]]]]]]],[10,"color"]]],"externalNames":["d","colorMaskBindGroupLayout","std","textureBindGroupLayout","rgbToHSV"]},
75
+ ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"masks",[7,[7,[7,"colorMaskBindGroupLayout","$"],"colorMasks"],"masks"]],[13,"usedMaskCount",[7,[7,[7,"colorMaskBindGroupLayout","$"],"colorMasks"],"usedMaskCount"]],[13,"reverseHighlight",[7,[7,[7,"colorMaskBindGroupLayout","$"],"colorMasks"],"reverseHighlight"]],[12,"colorMaskDebug",[6,[7,"d","u32"],[[5,"0"]]]],[12,"cumulativeMaskCheck",[6,[7,"d","u32"],[[5,"0"]]]],[13,"colorHSV",[6,"rgbToHSV",[[7,"color","xyz"]]]],[14,[12,"i",[5,"0"]],[1,"i","<",[5,"16"]],[102,"++","i"],[0,[[11,[1,"usedMaskCount","<=","i"],[17]],[13,"mask",[8,"masks","i"]],[13,"maskedColor",[7,"mask","baseColor"]],[13,"rgbToleranceRange",[7,"mask","rgbToleranceRange"]],[13,"useHSV",[7,"mask","useHSV"]],[13,"hueToleranceRange",[7,"mask","hueToleranceRange"]],[13,"hueUpper",[7,"hueToleranceRange","upper"]],[13,"hueLower",[7,"hueToleranceRange","lower"]],[13,"brightnessTolerance",[7,"mask","brightnessTolerance"]],[13,"saturationTolerance",[7,"mask","saturationTolerance"]],[13,"lowSaturationThreshold",[7,"mask","lowSaturationThreshold"]],[13,"lowBrightnessThreshold",[7,"mask","lowBrightnessThreshold"]],[13,"maskedColorLower",[6,[7,"std","sub"],["maskedColor",[7,"rgbToleranceRange","lower"]]]],[13,"maskedColorUpper",[6,[7,"std","add"],["maskedColor",[7,"rgbToleranceRange","upper"]]]],[13,"upperCheck",[6,[7,"std","all"],[[6,[7,"std","le"],[[7,"color","xyz"],"maskedColorUpper"]]]]],[13,"lowerCheck",[6,[7,"std","all"],[[6,[7,"std","ge"],[[7,"color","xyz"],"maskedColorLower"]]]]],[13,"rgbCheck",[3,"upperCheck","&&","lowerCheck"]],[13,"maskedHSV",[6,"rgbToHSV",["maskedColor"]]],[12,"hueDiff",[6,[7,"std","sub"],[[7,"colorHSV","x"],[7,"maskedHSV","x"]]]],[2,"hueDiff","=",[6,[7,"std","select"],["hueDiff",[6,[7,"std","sub"],["hueDiff",[5,"1"]]],[1,"hueDiff",">",[6,[7,"d","f32"],[[5,"0.5"]]]]]]],[2,"hueDiff","=",[6,[7,"std","select"],["hueDiff",[6,[7,"std","add"],["hueDiff",[5,"1"]]],[1,"hueDiff","<",[6,[7,"d","f32"],[[4,"-",[5,"0.5"]]]]]]]],[13,"lowerHueCheck",[1,"hueDiff",">=",[4,"-","hueLower"]]],[13,"upperHueCheck",[1,"hueDiff","<=","hueUpper"]],[12,"hueCheck",[3,"lowerHueCheck","&&","upperHueCheck"]],[13,"saturationDiff",[6,[7,"std","abs"],[[6,[7,"std","sub"],[[7,"colorHSV","y"],[7,"maskedHSV","y"]]]]]],[13,"saturationCheck",[1,"saturationDiff","<=","saturationTolerance"]],[13,"brightnessDiff",[6,[7,"std","abs"],[[6,[7,"std","sub"],[[7,"colorHSV","z"],[7,"maskedHSV","z"]]]]]],[13,"brightnessCheck",[1,"brightnessDiff","<=","brightnessTolerance"]],[13,"pixelIsGray",[1,[7,"colorHSV","y"],"<","lowSaturationThreshold"]],[13,"targetIsGray",[1,[7,"maskedHSV","y"],"<","lowSaturationThreshold"]],[13,"pixelIsBlack",[1,[7,"colorHSV","z"],"<","lowBrightnessThreshold"]],[13,"targetIsBlack",[1,[7,"maskedHSV","z"],"<","lowBrightnessThreshold"]],[13,"hueIsUnstable",[3,[3,[3,"pixelIsGray","||","targetIsGray"],"||","pixelIsBlack"],"||","targetIsBlack"]],[2,"hueCheck","=",[6,[7,"std","select"],["hueCheck",[6,[7,"d","bool"],[true]],"hueIsUnstable"]]],[13,"hsvCheck",[3,[3,"hueCheck","&&","saturationCheck"],"&&","brightnessCheck"]],[13,"maskCheck",[6,[7,"std","select"],["rgbCheck","hsvCheck",[1,"useHSV","==",[6,[7,"d","u32"],[[5,"1"]]]]]]],[2,"cumulativeMaskCheck","=",[1,"cumulativeMaskCheck","+",[6,[7,"d","u32"],["maskCheck"]]]],[2,"colorMaskDebug","=",[1,"colorMaskDebug","+",[7,"mask","debugMode"]]]]]],[13,"maskingLogic",[6,[7,"std","select"],[[1,"cumulativeMaskCheck",">",[5,"0"]],[1,"cumulativeMaskCheck","==",[5,"0"]],[1,"reverseHighlight","==",[5,"1"]]]]],[2,"color","=",[6,[7,"std","select"],["color",[6,[7,"d","vec4f"],[[7,"color","xyz"],[5,"0"]]],"maskingLogic"]]],[2,"color","=",[6,[7,"std","select"],["color",[6,[7,"d","vec4f"],[[5,"1"],[5,"0"],[5,"0"],[5,"0"]]],[3,"maskingLogic","&&",[1,"colorMaskDebug",">",[5,"0"]]]]]],[10,"color"]]],"externalNames":["d","std","textureBindGroupLayout","colorMaskBindGroupLayout","rgbToHSV"]},
64
76
  get externals() {
65
77
  return {
66
78
  d,
67
- colorMaskBindGroupLayout,
68
79
  std,
69
80
  textureBindGroupLayout,
81
+ colorMaskBindGroupLayout,
70
82
  rgbToHSV
71
83
  };
72
84
  }
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","std","textureBindGroupLayout","colorMaskBindGroupLayout","rgbToHSV","colorMaskFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","mask","maskedColor","baseColor","rgbToleranceRange","useHSV","hueToleranceRange","hueUpper","upper","hueLower","lower","brightnessTolerance","saturationTolerance","lowSaturationThreshold","lowBrightnessThreshold","colorMaskDebug","debugMode","color","textureSample","texture","sampler","maskedColorLower","sub","maskedColorUpper","add","upperCheck","all","le","xyz","lowerCheck","ge","rgbCheck","maskedHSV","colorHSV","hueDiff","select","f32","lowerHueCheck","upperHueCheck","hueCheck","saturationDiff","abs","saturationCheck","brightnessDiff","z","brightnessCheck","pixelIsGray","targetIsGray","pixelIsBlack","targetIsBlack","hueIsUnstable","bool","hsvCheck","maskCheck","u32","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"mask\",[7,[7,\"colorMaskBindGroupLayout\",\"$\"],\"mask\"]],[13,\"maskedColor\",[7,\"mask\",\"baseColor\"]],[13,\"rgbToleranceRange\",[7,\"mask\",\"rgbToleranceRange\"]],[13,\"useHSV\",[7,\"mask\",\"useHSV\"]],[13,\"hueToleranceRange\",[7,\"mask\",\"hueToleranceRange\"]],[13,\"hueUpper\",[7,\"hueToleranceRange\",\"upper\"]],[13,\"hueLower\",[7,\"hueToleranceRange\",\"lower\"]],[13,\"brightnessTolerance\",[7,\"mask\",\"brightnessTolerance\"]],[13,\"saturationTolerance\",[7,\"mask\",\"saturationTolerance\"]],[13,\"lowSaturationThreshold\",[7,\"mask\",\"lowSaturationThreshold\"]],[13,\"lowBrightnessThreshold\",[7,\"mask\",\"lowBrightnessThreshold\"]],[13,\"colorMaskDebug\",[7,\"mask\",\"debugMode\"]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"maskedColorLower\",[6,[7,\"std\",\"sub\"],[\"maskedColor\",[7,\"rgbToleranceRange\",\"lower\"]]]],[13,\"maskedColorUpper\",[6,[7,\"std\",\"add\"],[\"maskedColor\",[7,\"rgbToleranceRange\",\"upper\"]]]],[13,\"upperCheck\",[6,[7,\"std\",\"all\"],[[6,[7,\"std\",\"le\"],[[7,\"color\",\"xyz\"],\"maskedColorUpper\"]]]]],[13,\"lowerCheck\",[6,[7,\"std\",\"all\"],[[6,[7,\"std\",\"ge\"],[[7,\"color\",\"xyz\"],\"maskedColorLower\"]]]]],[13,\"rgbCheck\",[3,\"upperCheck\",\"&&\",\"lowerCheck\"]],[13,\"maskedHSV\",[6,\"rgbToHSV\",[\"maskedColor\"]]],[13,\"colorHSV\",[6,\"rgbToHSV\",[[7,\"color\",\"xyz\"]]]],[12,\"hueDiff\",[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"x\"],[7,\"maskedHSV\",\"x\"]]]],[2,\"hueDiff\",\"=\",[6,[7,\"std\",\"select\"],[\"hueDiff\",[6,[7,\"std\",\"sub\"],[\"hueDiff\",[5,\"1\"]]],[1,\"hueDiff\",\">\",[6,[7,\"d\",\"f32\"],[[5,\"0.5\"]]]]]]],[2,\"hueDiff\",\"=\",[6,[7,\"std\",\"select\"],[\"hueDiff\",[6,[7,\"std\",\"add\"],[\"hueDiff\",[5,\"1\"]]],[1,\"hueDiff\",\"<\",[6,[7,\"d\",\"f32\"],[[4,\"-\",[5,\"0.5\"]]]]]]]],[13,\"lowerHueCheck\",[1,\"hueDiff\",\">=\",[4,\"-\",\"hueLower\"]]],[13,\"upperHueCheck\",[1,\"hueDiff\",\"<=\",\"hueUpper\"]],[12,\"hueCheck\",[3,\"lowerHueCheck\",\"&&\",\"upperHueCheck\"]],[13,\"saturationDiff\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"y\"],[7,\"maskedHSV\",\"y\"]]]]]],[13,\"saturationCheck\",[1,\"saturationDiff\",\"<=\",\"saturationTolerance\"]],[13,\"brightnessDiff\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"z\"],[7,\"maskedHSV\",\"z\"]]]]]],[13,\"brightnessCheck\",[1,\"brightnessDiff\",\"<=\",\"brightnessTolerance\"]],[13,\"pixelIsGray\",[1,[7,\"colorHSV\",\"y\"],\"<\",\"lowSaturationThreshold\"]],[13,\"targetIsGray\",[1,[7,\"maskedHSV\",\"y\"],\"<\",\"lowSaturationThreshold\"]],[13,\"pixelIsBlack\",[1,[7,\"colorHSV\",\"z\"],\"<\",\"lowBrightnessThreshold\"]],[13,\"targetIsBlack\",[1,[7,\"maskedHSV\",\"z\"],\"<\",\"lowBrightnessThreshold\"]],[13,\"hueIsUnstable\",[3,[3,[3,\"pixelIsGray\",\"||\",\"targetIsGray\"],\"||\",\"pixelIsBlack\"],\"||\",\"targetIsBlack\"]],[2,\"hueCheck\",\"=\",[6,[7,\"std\",\"select\"],[\"hueCheck\",[6,[7,\"d\",\"bool\"],[true]],\"hueIsUnstable\"]]],[13,\"hsvCheck\",[3,[3,\"hueCheck\",\"&&\",\"saturationCheck\"],\"&&\",\"brightnessCheck\"]],[13,\"maskCheck\",[6,[7,\"std\",\"select\"],[\"rgbCheck\",\"hsvCheck\",[1,\"useHSV\",\"==\",[6,[7,\"d\",\"u32\"],[[5,\"1\"]]]]]]],[2,\"color\",\"=\",[6,[7,\"std\",\"select\"],[\"color\",[6,[7,\"d\",\"vec4f\"],[[7,\"color\",\"xyz\"],[5,\"0\"]]],\"maskCheck\"]]],[2,\"color\",\"=\",[6,[7,\"std\",\"select\"],[\"color\",[6,[7,\"d\",\"vec4f\"],[[5,\"1\"],[5,\"0\"],[5,\"0\"],[5,\"0\"]]],[3,\"maskCheck\",\"&&\",[1,\"colorMaskDebug\",\"==\",[6,[7,\"d\",\"u32\"],[[5,\"1\"]]]]]]]],[10,\"color\"]]],\"externalNames\":[\"d\",\"colorMaskBindGroupLayout\",\"std\",\"textureBindGroupLayout\",\"rgbToHSV\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/colorMaskFragment.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","std","textureBindGroupLayout","colorMaskBindGroupLayout","rgbToHSV","colorMaskFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","color","textureSample","texture","sampler","masks","colorMasks","usedMaskCount","reverseHighlight","colorMaskDebug","u32","cumulativeMaskCheck","colorHSV","xyz","i","mask","maskedColor","baseColor","rgbToleranceRange","useHSV","hueToleranceRange","hueUpper","upper","hueLower","lower","brightnessTolerance","saturationTolerance","lowSaturationThreshold","lowBrightnessThreshold","maskedColorLower","sub","maskedColorUpper","add","upperCheck","all","le","lowerCheck","ge","rgbCheck","maskedHSV","hueDiff","select","f32","lowerHueCheck","upperHueCheck","hueCheck","saturationDiff","abs","saturationCheck","brightnessDiff","z","brightnessCheck","pixelIsGray","targetIsGray","pixelIsBlack","targetIsBlack","hueIsUnstable","bool","hsvCheck","maskCheck","debugMode","maskingLogic","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"masks\",[7,[7,[7,\"colorMaskBindGroupLayout\",\"$\"],\"colorMasks\"],\"masks\"]],[13,\"usedMaskCount\",[7,[7,[7,\"colorMaskBindGroupLayout\",\"$\"],\"colorMasks\"],\"usedMaskCount\"]],[13,\"reverseHighlight\",[7,[7,[7,\"colorMaskBindGroupLayout\",\"$\"],\"colorMasks\"],\"reverseHighlight\"]],[12,\"colorMaskDebug\",[6,[7,\"d\",\"u32\"],[[5,\"0\"]]]],[12,\"cumulativeMaskCheck\",[6,[7,\"d\",\"u32\"],[[5,\"0\"]]]],[13,\"colorHSV\",[6,\"rgbToHSV\",[[7,\"color\",\"xyz\"]]]],[14,[12,\"i\",[5,\"0\"]],[1,\"i\",\"<\",[5,\"16\"]],[102,\"++\",\"i\"],[0,[[11,[1,\"usedMaskCount\",\"<=\",\"i\"],[17]],[13,\"mask\",[8,\"masks\",\"i\"]],[13,\"maskedColor\",[7,\"mask\",\"baseColor\"]],[13,\"rgbToleranceRange\",[7,\"mask\",\"rgbToleranceRange\"]],[13,\"useHSV\",[7,\"mask\",\"useHSV\"]],[13,\"hueToleranceRange\",[7,\"mask\",\"hueToleranceRange\"]],[13,\"hueUpper\",[7,\"hueToleranceRange\",\"upper\"]],[13,\"hueLower\",[7,\"hueToleranceRange\",\"lower\"]],[13,\"brightnessTolerance\",[7,\"mask\",\"brightnessTolerance\"]],[13,\"saturationTolerance\",[7,\"mask\",\"saturationTolerance\"]],[13,\"lowSaturationThreshold\",[7,\"mask\",\"lowSaturationThreshold\"]],[13,\"lowBrightnessThreshold\",[7,\"mask\",\"lowBrightnessThreshold\"]],[13,\"maskedColorLower\",[6,[7,\"std\",\"sub\"],[\"maskedColor\",[7,\"rgbToleranceRange\",\"lower\"]]]],[13,\"maskedColorUpper\",[6,[7,\"std\",\"add\"],[\"maskedColor\",[7,\"rgbToleranceRange\",\"upper\"]]]],[13,\"upperCheck\",[6,[7,\"std\",\"all\"],[[6,[7,\"std\",\"le\"],[[7,\"color\",\"xyz\"],\"maskedColorUpper\"]]]]],[13,\"lowerCheck\",[6,[7,\"std\",\"all\"],[[6,[7,\"std\",\"ge\"],[[7,\"color\",\"xyz\"],\"maskedColorLower\"]]]]],[13,\"rgbCheck\",[3,\"upperCheck\",\"&&\",\"lowerCheck\"]],[13,\"maskedHSV\",[6,\"rgbToHSV\",[\"maskedColor\"]]],[12,\"hueDiff\",[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"x\"],[7,\"maskedHSV\",\"x\"]]]],[2,\"hueDiff\",\"=\",[6,[7,\"std\",\"select\"],[\"hueDiff\",[6,[7,\"std\",\"sub\"],[\"hueDiff\",[5,\"1\"]]],[1,\"hueDiff\",\">\",[6,[7,\"d\",\"f32\"],[[5,\"0.5\"]]]]]]],[2,\"hueDiff\",\"=\",[6,[7,\"std\",\"select\"],[\"hueDiff\",[6,[7,\"std\",\"add\"],[\"hueDiff\",[5,\"1\"]]],[1,\"hueDiff\",\"<\",[6,[7,\"d\",\"f32\"],[[4,\"-\",[5,\"0.5\"]]]]]]]],[13,\"lowerHueCheck\",[1,\"hueDiff\",\">=\",[4,\"-\",\"hueLower\"]]],[13,\"upperHueCheck\",[1,\"hueDiff\",\"<=\",\"hueUpper\"]],[12,\"hueCheck\",[3,\"lowerHueCheck\",\"&&\",\"upperHueCheck\"]],[13,\"saturationDiff\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"y\"],[7,\"maskedHSV\",\"y\"]]]]]],[13,\"saturationCheck\",[1,\"saturationDiff\",\"<=\",\"saturationTolerance\"]],[13,\"brightnessDiff\",[6,[7,\"std\",\"abs\"],[[6,[7,\"std\",\"sub\"],[[7,\"colorHSV\",\"z\"],[7,\"maskedHSV\",\"z\"]]]]]],[13,\"brightnessCheck\",[1,\"brightnessDiff\",\"<=\",\"brightnessTolerance\"]],[13,\"pixelIsGray\",[1,[7,\"colorHSV\",\"y\"],\"<\",\"lowSaturationThreshold\"]],[13,\"targetIsGray\",[1,[7,\"maskedHSV\",\"y\"],\"<\",\"lowSaturationThreshold\"]],[13,\"pixelIsBlack\",[1,[7,\"colorHSV\",\"z\"],\"<\",\"lowBrightnessThreshold\"]],[13,\"targetIsBlack\",[1,[7,\"maskedHSV\",\"z\"],\"<\",\"lowBrightnessThreshold\"]],[13,\"hueIsUnstable\",[3,[3,[3,\"pixelIsGray\",\"||\",\"targetIsGray\"],\"||\",\"pixelIsBlack\"],\"||\",\"targetIsBlack\"]],[2,\"hueCheck\",\"=\",[6,[7,\"std\",\"select\"],[\"hueCheck\",[6,[7,\"d\",\"bool\"],[true]],\"hueIsUnstable\"]]],[13,\"hsvCheck\",[3,[3,\"hueCheck\",\"&&\",\"saturationCheck\"],\"&&\",\"brightnessCheck\"]],[13,\"maskCheck\",[6,[7,\"std\",\"select\"],[\"rgbCheck\",\"hsvCheck\",[1,\"useHSV\",\"==\",[6,[7,\"d\",\"u32\"],[[5,\"1\"]]]]]]],[2,\"cumulativeMaskCheck\",\"=\",[1,\"cumulativeMaskCheck\",\"+\",[6,[7,\"d\",\"u32\"],[\"maskCheck\"]]]],[2,\"colorMaskDebug\",\"=\",[1,\"colorMaskDebug\",\"+\",[7,\"mask\",\"debugMode\"]]]]]],[13,\"maskingLogic\",[6,[7,\"std\",\"select\"],[[1,\"cumulativeMaskCheck\",\">\",[5,\"0\"]],[1,\"cumulativeMaskCheck\",\"==\",[5,\"0\"]],[1,\"reverseHighlight\",\"==\",[5,\"1\"]]]]],[2,\"color\",\"=\",[6,[7,\"std\",\"select\"],[\"color\",[6,[7,\"d\",\"vec4f\"],[[7,\"color\",\"xyz\"],[5,\"0\"]]],\"maskingLogic\"]]],[2,\"color\",\"=\",[6,[7,\"std\",\"select\"],[\"color\",[6,[7,\"d\",\"vec4f\"],[[5,\"1\"],[5,\"0\"],[5,\"0\"],[5,\"0\"]]],[3,\"maskingLogic\",\"&&\",[1,\"colorMaskDebug\",\">\",[5,\"0\"]]]]]],[10,\"color\"]]],\"externalNames\":[\"d\",\"std\",\"textureBindGroupLayout\",\"colorMaskBindGroupLayout\",\"rgbToHSV\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/colorMaskFragment.ts"],"mappings":"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","ignoreList":[]}
@@ -22,10 +22,11 @@ export const glareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu[
22
22
  const glareOptions = glareBindGroupLayout.$.glareOptions;
23
23
  const glareIntensity = glareOptions.glareIntensity;
24
24
  const glowPower = glareOptions.glowPower;
25
- const hueBlendPower = glareOptions.hueBlendPower;
26
- const hueShiftAngleMax = glareOptions.hueShiftAngleMax;
27
- const hueShiftAngleMin = glareOptions.hueShiftAngleMin;
28
25
  const lightIntensity = glareOptions.lightIntensity;
26
+ const glareColor = glareOptions.glareColor;
27
+ const hueBlendPower = glareColor.hueBlendPower;
28
+ const hueShiftAngleMax = glareColor.hueShiftAngleMax;
29
+ const hueShiftAngleMin = glareColor.hueShiftAngleMin;
29
30
 
30
31
  // const mask = colorMaskBindGroupLayout.$.mask;
31
32
  // const maskedColor = mask.baseColor;
@@ -69,7 +70,7 @@ export const glareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu[
69
70
  }, {
70
71
  v: 1,
71
72
  name: void 0,
72
- ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"glareOptions",[7,[7,"glareBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"glareOptions","glareIntensity"]],[13,"glowPower",[7,"glareOptions","glowPower"]],[13,"hueBlendPower",[7,"glareOptions","hueBlendPower"]],[13,"hueShiftAngleMax",[7,"glareOptions","hueShiftAngleMax"]],[13,"hueShiftAngleMin",[7,"glareOptions","hueShiftAngleMin"]],[13,"lightIntensity",[7,"glareOptions","lightIntensity"]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"dst",[6,[7,"std","exp"],[[4,"-",[6,[7,"std","distance"],["center","centeredCoords"]]]]]],[13,"distToCenter",[6,[7,"std","smoothstep"],[[5,"0"],[1,[5,"1"],"/","glareIntensity"],"dst"]]],[12,"glow",[6,[7,"d","vec3f"],["distToCenter"]]],[2,"glow","=",[6,[7,"std","mul"],["glow",[1,"glowPower","*",[7,"color","w"]]]]],[13,"hueBlend",[1,[1,[6,[7,"d","f32"],["hueBlendPower"]],"*","dst"],"/",[5,"10"]]],[2,"glow","=",[6,[7,"std","add"],["glow",[1,"lightIntensity","/",[5,"10"]]]]],[12,"shiftedRGB",[6,"glareColorShift",[[7,"color","xyz"],[1,"dst","/",[1,"lightIntensity","*",[5,"2"]]]]]],[13,"hueShiftAngle",[6,[7,"std","smoothstep"],["hueShiftAngleMin","hueShiftAngleMax","distToCenter"]]],[13,"shiftedHue",[6,"hueShift",["shiftedRGB","hueShiftAngle"]]],[2,"shiftedRGB","=",[6,"overlayChannels",["shiftedRGB","shiftedHue"]]],[2,"color","=",[6,[7,"d","vec4f"],[[6,[7,"std","mix"],[[7,"color","xyz"],"shiftedRGB","hueBlend"]],[7,"color","w"]]]],[13,"baseColor","color"],[13,"blendColor","glow"],[13,"combined",[6,"overlayChannels",[[7,"baseColor","xyz"],"blendColor"]]],[2,"color","=",[6,[7,"d","vec4f"],[[6,[7,"std","mix"],[[7,"color","xyz"],"combined","glow"]],[7,"color","w"]]]],[10,"color"]]],"externalNames":["d","std","rotationBindGroupLayout","glareBindGroupLayout","textureBindGroupLayout","glareColorShift","hueShift","overlayChannels"]},
73
+ ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"glareOptions",[7,[7,"glareBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"glareOptions","glareIntensity"]],[13,"glowPower",[7,"glareOptions","glowPower"]],[13,"lightIntensity",[7,"glareOptions","lightIntensity"]],[13,"glareColor",[7,"glareOptions","glareColor"]],[13,"hueBlendPower",[7,"glareColor","hueBlendPower"]],[13,"hueShiftAngleMax",[7,"glareColor","hueShiftAngleMax"]],[13,"hueShiftAngleMin",[7,"glareColor","hueShiftAngleMin"]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"dst",[6,[7,"std","exp"],[[4,"-",[6,[7,"std","distance"],["center","centeredCoords"]]]]]],[13,"distToCenter",[6,[7,"std","smoothstep"],[[5,"0"],[1,[5,"1"],"/","glareIntensity"],"dst"]]],[12,"glow",[6,[7,"d","vec3f"],["distToCenter"]]],[2,"glow","=",[6,[7,"std","mul"],["glow",[1,"glowPower","*",[7,"color","w"]]]]],[13,"hueBlend",[1,[1,[6,[7,"d","f32"],["hueBlendPower"]],"*","dst"],"/",[5,"10"]]],[2,"glow","=",[6,[7,"std","add"],["glow",[1,"lightIntensity","/",[5,"10"]]]]],[12,"shiftedRGB",[6,"glareColorShift",[[7,"color","xyz"],[1,"dst","/",[1,"lightIntensity","*",[5,"2"]]]]]],[13,"hueShiftAngle",[6,[7,"std","smoothstep"],["hueShiftAngleMin","hueShiftAngleMax","distToCenter"]]],[13,"shiftedHue",[6,"hueShift",["shiftedRGB","hueShiftAngle"]]],[2,"shiftedRGB","=",[6,"overlayChannels",["shiftedRGB","shiftedHue"]]],[2,"color","=",[6,[7,"d","vec4f"],[[6,[7,"std","mix"],[[7,"color","xyz"],"shiftedRGB","hueBlend"]],[7,"color","w"]]]],[13,"baseColor","color"],[13,"blendColor","glow"],[13,"combined",[6,"overlayChannels",[[7,"baseColor","xyz"],"blendColor"]]],[2,"color","=",[6,[7,"d","vec4f"],[[6,[7,"std","mix"],[[7,"color","xyz"],"combined","glow"]],[7,"color","w"]]]],[10,"color"]]],"externalNames":["d","std","rotationBindGroupLayout","glareBindGroupLayout","textureBindGroupLayout","glareColorShift","hueShift","overlayChannels"]},
73
74
  get externals() {
74
75
  return {
75
76
  d,
@@ -98,11 +99,13 @@ export const newGlareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tg
98
99
  const opts = glareBindGroupLayout.$.glareOptions;
99
100
  const glareIntensity = opts.glareIntensity; // [0..∞): bigger → wider/stronger area
100
101
  const glowPower = opts.glowPower; // (0..∞): curve shaping; bigger → softer/wider glow
101
- const hueBlendPower = opts.hueBlendPower; // [0..1+]: how much hue-shifted color blends in
102
- const hueShiftAngleMin = opts.hueShiftAngleMin; // degrees
103
- const hueShiftAngleMax = opts.hueShiftAngleMax; // degrees
104
102
  const lightIntensity = opts.lightIntensity / 1.3; // [0..∞): brightness boost of the glare/bloom
105
103
 
104
+ const glareColor = opts.glareColor;
105
+ const hueBlendPower = glareColor.hueBlendPower; // [0..1+]: how much hue-shifted color blends in
106
+ const hueShiftAngleMin = glareColor.hueShiftAngleMin; // degrees
107
+ const hueShiftAngleMax = glareColor.hueShiftAngleMax; // degrees
108
+
106
109
  let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
107
110
  const dist = std.distance(center, centeredCoords);
108
111
  const radial = std.exp(-dist); // (0,1], steeper near center
@@ -127,7 +130,7 @@ export const newGlareFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tg
127
130
  }, {
128
131
  v: 1,
129
132
  name: void 0,
130
- ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"opts",[7,[7,"glareBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"opts","glareIntensity"]],[13,"glowPower",[7,"opts","glowPower"]],[13,"hueBlendPower",[7,"opts","hueBlendPower"]],[13,"hueShiftAngleMin",[7,"opts","hueShiftAngleMin"]],[13,"hueShiftAngleMax",[7,"opts","hueShiftAngleMax"]],[13,"lightIntensity",[1,[7,"opts","lightIntensity"],"/",[5,"1.3"]]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"dist",[6,[7,"std","distance"],["center","centeredCoords"]]],[13,"radial",[6,[7,"std","exp"],[[4,"-","dist"]]]],[13,"radialScaled",[6,[7,"std","mul"],["radial",[6,[7,"std","add"],[[5,"1"],[6,[7,"std","max"],[[5,"0"],"glareIntensity"]]]]]]],[13,"influenceRaw",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"radialScaled"]]],[13,"curveExp",[6,[7,"std","clamp"],["glowPower",[5,"0.05"],[5,"64"]]]],[13,"glowMask",[6,[7,"std","pow"],["influenceRaw",[6,[7,"std","div"],[[5,"1"],"curveExp"]]]]],[13,"maskedGlow",[6,[7,"std","mul"],["glowMask",[7,"color","w"]]]],[13,"boostedRGB",[6,"glareColorShift",[[7,"color","xyz"],"maskedGlow"]]],[13,"hueT",[6,[7,"std","clamp"],["maskedGlow",[5,"0"],[5,"1"]]]],[13,"hueAngle",[6,[7,"std","mix"],["hueShiftAngleMin","hueShiftAngleMax","hueT"]]],[13,"hueShifted",[6,"hueShift",["boostedRGB","hueAngle"]]],[13,"hueMixWeight",[6,[7,"std","clamp"],[[6,[7,"std","mul"],[[1,"hueBlendPower","/",[5,"5"]],"maskedGlow"]],[5,"0"],[5,"1"]]]],[13,"chromaMixed",[6,[7,"std","mix"],[[7,"color","xyz"],"hueShifted","hueMixWeight"]]],[13,"glareStrength",[6,[7,"std","clamp"],["lightIntensity",[5,"0"],[5,"100"]]]],[13,"glareLayer",[6,[7,"std","mul"],[[6,[7,"d","vec3f"],["maskedGlow"]],"glareStrength"]]],[13,"overlaidRGB",[6,"overlayChannels",["chromaMixed","glareLayer"]]],[13,"finalRGB",[6,[7,"std","mix"],["chromaMixed","overlaidRGB",[6,[7,"d","vec3f"],["maskedGlow"]]]]],[13,"outRGB",[6,[7,"std","clamp"],["finalRGB",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],["outRGB",[7,"color","w"]]]]]],"externalNames":["d","std","rotationBindGroupLayout","glareBindGroupLayout","textureBindGroupLayout","glareColorShift","hueShift","overlayChannels"]},
133
+ ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"centeredCoords",[6,[7,"std","sub"],[[6,[7,"std","mul"],["uv",[5,"2"]]],[5,"1"]]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"center",[6,[7,"std","add"],[[6,[7,"d","vec2f"],[[5,"0"]]],[6,[7,"d","vec2f"],[[7,"rot","x"],[7,"rot","y"]]]]]],[13,"opts",[7,[7,"glareBindGroupLayout","$"],"glareOptions"]],[13,"glareIntensity",[7,"opts","glareIntensity"]],[13,"glowPower",[7,"opts","glowPower"]],[13,"lightIntensity",[1,[7,"opts","lightIntensity"],"/",[5,"1.3"]]],[13,"glareColor",[7,"opts","glareColor"]],[13,"hueBlendPower",[7,"glareColor","hueBlendPower"]],[13,"hueShiftAngleMin",[7,"glareColor","hueShiftAngleMin"]],[13,"hueShiftAngleMax",[7,"glareColor","hueShiftAngleMax"]],[12,"color",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"dist",[6,[7,"std","distance"],["center","centeredCoords"]]],[13,"radial",[6,[7,"std","exp"],[[4,"-","dist"]]]],[13,"radialScaled",[6,[7,"std","mul"],["radial",[6,[7,"std","add"],[[5,"1"],[6,[7,"std","max"],[[5,"0"],"glareIntensity"]]]]]]],[13,"influenceRaw",[6,[7,"std","smoothstep"],[[5,"0"],[5,"1"],"radialScaled"]]],[13,"curveExp",[6,[7,"std","clamp"],["glowPower",[5,"0.05"],[5,"64"]]]],[13,"glowMask",[6,[7,"std","pow"],["influenceRaw",[6,[7,"std","div"],[[5,"1"],"curveExp"]]]]],[13,"maskedGlow",[6,[7,"std","mul"],["glowMask",[7,"color","w"]]]],[13,"boostedRGB",[6,"glareColorShift",[[7,"color","xyz"],"maskedGlow"]]],[13,"hueT",[6,[7,"std","clamp"],["maskedGlow",[5,"0"],[5,"1"]]]],[13,"hueAngle",[6,[7,"std","mix"],["hueShiftAngleMin","hueShiftAngleMax","hueT"]]],[13,"hueShifted",[6,"hueShift",["boostedRGB","hueAngle"]]],[13,"hueMixWeight",[6,[7,"std","clamp"],[[6,[7,"std","mul"],[[1,"hueBlendPower","/",[5,"5"]],"maskedGlow"]],[5,"0"],[5,"1"]]]],[13,"chromaMixed",[6,[7,"std","mix"],[[7,"color","xyz"],"hueShifted","hueMixWeight"]]],[13,"glareStrength",[6,[7,"std","clamp"],["lightIntensity",[5,"0"],[5,"100"]]]],[13,"glareLayer",[6,[7,"std","mul"],[[6,[7,"d","vec3f"],["maskedGlow"]],"glareStrength"]]],[13,"overlaidRGB",[6,"overlayChannels",["chromaMixed","glareLayer"]]],[13,"finalRGB",[6,[7,"std","mix"],["chromaMixed","overlaidRGB",[6,[7,"d","vec3f"],["maskedGlow"]]]]],[13,"outRGB",[6,[7,"std","clamp"],["finalRGB",[6,[7,"d","vec3f"],[[5,"0"]]],[6,[7,"d","vec3f"],[[5,"1"]]]]]],[10,[6,[7,"d","vec4f"],["outRGB",[7,"color","w"]]]]]],"externalNames":["d","std","rotationBindGroupLayout","glareBindGroupLayout","textureBindGroupLayout","glareColorShift","hueShift","overlayChannels"]},
131
134
  get externals() {
132
135
  return {
133
136
  d,
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","glareBindGroupLayout","glareColorShift","hueShift","overlayChannels","glareFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","centeredCoords","sub","mul","rot","vec","center","add","glareOptions","glareIntensity","glowPower","hueBlendPower","hueShiftAngleMax","hueShiftAngleMin","lightIntensity","color","textureSample","texture","sampler","dst","exp","distance","distToCenter","smoothstep","glow","vec3f","w","hueBlend","f32","shiftedRGB","xyz","hueShiftAngle","shiftedHue","mix","baseColor","blendColor","combined","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"centeredCoords\",[6,[7,\"std\",\"sub\"],[[6,[7,\"std\",\"mul\"],[\"uv\",[5,\"2\"]]],[5,\"1\"]]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"center\",[6,[7,\"std\",\"add\"],[[6,[7,\"d\",\"vec2f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec2f\"],[[7,\"rot\",\"x\"],[7,\"rot\",\"y\"]]]]]],[13,\"glareOptions\",[7,[7,\"glareBindGroupLayout\",\"$\"],\"glareOptions\"]],[13,\"glareIntensity\",[7,\"glareOptions\",\"glareIntensity\"]],[13,\"glowPower\",[7,\"glareOptions\",\"glowPower\"]],[13,\"hueBlendPower\",[7,\"glareOptions\",\"hueBlendPower\"]],[13,\"hueShiftAngleMax\",[7,\"glareOptions\",\"hueShiftAngleMax\"]],[13,\"hueShiftAngleMin\",[7,\"glareOptions\",\"hueShiftAngleMin\"]],[13,\"lightIntensity\",[7,\"glareOptions\",\"lightIntensity\"]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"dst\",[6,[7,\"std\",\"exp\"],[[4,\"-\",[6,[7,\"std\",\"distance\"],[\"center\",\"centeredCoords\"]]]]]],[13,\"distToCenter\",[6,[7,\"std\",\"smoothstep\"],[[5,\"0\"],[1,[5,\"1\"],\"/\",\"glareIntensity\"],\"dst\"]]],[12,\"glow\",[6,[7,\"d\",\"vec3f\"],[\"distToCenter\"]]],[2,\"glow\",\"=\",[6,[7,\"std\",\"mul\"],[\"glow\",[1,\"glowPower\",\"*\",[7,\"color\",\"w\"]]]]],[13,\"hueBlend\",[1,[1,[6,[7,\"d\",\"f32\"],[\"hueBlendPower\"]],\"*\",\"dst\"],\"/\",[5,\"10\"]]],[2,\"glow\",\"=\",[6,[7,\"std\",\"add\"],[\"glow\",[1,\"lightIntensity\",\"/\",[5,\"10\"]]]]],[12,\"shiftedRGB\",[6,\"glareColorShift\",[[7,\"color\",\"xyz\"],[1,\"dst\",\"/\",[1,\"lightIntensity\",\"*\",[5,\"2\"]]]]]],[13,\"hueShiftAngle\",[6,[7,\"std\",\"smoothstep\"],[\"hueShiftAngleMin\",\"hueShiftAngleMax\",\"distToCenter\"]]],[13,\"shiftedHue\",[6,\"hueShift\",[\"shiftedRGB\",\"hueShiftAngle\"]]],[2,\"shiftedRGB\",\"=\",[6,\"overlayChannels\",[\"shiftedRGB\",\"shiftedHue\"]]],[2,\"color\",\"=\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"shiftedRGB\",\"hueBlend\"]],[7,\"color\",\"w\"]]]],[13,\"baseColor\",\"color\"],[13,\"blendColor\",\"glow\"],[13,\"combined\",[6,\"overlayChannels\",[[7,\"baseColor\",\"xyz\"],\"blendColor\"]]],[2,\"color\",\"=\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"combined\",\"glow\"]],[7,\"color\",\"w\"]]]],[10,\"color\"]]],\"externalNames\":[\"d\",\"std\",\"rotationBindGroupLayout\",\"glareBindGroupLayout\",\"textureBindGroupLayout\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}","externals","newGlareFragment","opts","dist","radial","radialScaled","max","influenceRaw","curveExp","clamp","glowMask","pow","div","maskedGlow","boostedRGB","hueT","hueAngle","hueShifted","hueMixWeight","chromaMixed","glareStrength","glareLayer","overlaidRGB","finalRGB","outRGB","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"centeredCoords\",[6,[7,\"std\",\"sub\"],[[6,[7,\"std\",\"mul\"],[\"uv\",[5,\"2\"]]],[5,\"1\"]]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"center\",[6,[7,\"std\",\"add\"],[[6,[7,\"d\",\"vec2f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec2f\"],[[7,\"rot\",\"x\"],[7,\"rot\",\"y\"]]]]]],[13,\"opts\",[7,[7,\"glareBindGroupLayout\",\"$\"],\"glareOptions\"]],[13,\"glareIntensity\",[7,\"opts\",\"glareIntensity\"]],[13,\"glowPower\",[7,\"opts\",\"glowPower\"]],[13,\"hueBlendPower\",[7,\"opts\",\"hueBlendPower\"]],[13,\"hueShiftAngleMin\",[7,\"opts\",\"hueShiftAngleMin\"]],[13,\"hueShiftAngleMax\",[7,\"opts\",\"hueShiftAngleMax\"]],[13,\"lightIntensity\",[1,[7,\"opts\",\"lightIntensity\"],\"/\",[5,\"1.3\"]]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"dist\",[6,[7,\"std\",\"distance\"],[\"center\",\"centeredCoords\"]]],[13,\"radial\",[6,[7,\"std\",\"exp\"],[[4,\"-\",\"dist\"]]]],[13,\"radialScaled\",[6,[7,\"std\",\"mul\"],[\"radial\",[6,[7,\"std\",\"add\"],[[5,\"1\"],[6,[7,\"std\",\"max\"],[[5,\"0\"],\"glareIntensity\"]]]]]]],[13,\"influenceRaw\",[6,[7,\"std\",\"smoothstep\"],[[5,\"0\"],[5,\"1\"],\"radialScaled\"]]],[13,\"curveExp\",[6,[7,\"std\",\"clamp\"],[\"glowPower\",[5,\"0.05\"],[5,\"64\"]]]],[13,\"glowMask\",[6,[7,\"std\",\"pow\"],[\"influenceRaw\",[6,[7,\"std\",\"div\"],[[5,\"1\"],\"curveExp\"]]]]],[13,\"maskedGlow\",[6,[7,\"std\",\"mul\"],[\"glowMask\",[7,\"color\",\"w\"]]]],[13,\"boostedRGB\",[6,\"glareColorShift\",[[7,\"color\",\"xyz\"],\"maskedGlow\"]]],[13,\"hueT\",[6,[7,\"std\",\"clamp\"],[\"maskedGlow\",[5,\"0\"],[5,\"1\"]]]],[13,\"hueAngle\",[6,[7,\"std\",\"mix\"],[\"hueShiftAngleMin\",\"hueShiftAngleMax\",\"hueT\"]]],[13,\"hueShifted\",[6,\"hueShift\",[\"boostedRGB\",\"hueAngle\"]]],[13,\"hueMixWeight\",[6,[7,\"std\",\"clamp\"],[[6,[7,\"std\",\"mul\"],[[1,\"hueBlendPower\",\"/\",[5,\"5\"]],\"maskedGlow\"]],[5,\"0\"],[5,\"1\"]]]],[13,\"chromaMixed\",[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"hueShifted\",\"hueMixWeight\"]]],[13,\"glareStrength\",[6,[7,\"std\",\"clamp\"],[\"lightIntensity\",[5,\"0\"],[5,\"100\"]]]],[13,\"glareLayer\",[6,[7,\"std\",\"mul\"],[[6,[7,\"d\",\"vec3f\"],[\"maskedGlow\"]],\"glareStrength\"]]],[13,\"overlaidRGB\",[6,\"overlayChannels\",[\"chromaMixed\",\"glareLayer\"]]],[13,\"finalRGB\",[6,[7,\"std\",\"mix\"],[\"chromaMixed\",\"overlaidRGB\",[6,[7,\"d\",\"vec3f\"],[\"maskedGlow\"]]]]],[13,\"outRGB\",[6,[7,\"std\",\"clamp\"],[\"finalRGB\",[6,[7,\"d\",\"vec3f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec3f\"],[[5,\"1\"]]]]]],[10,[6,[7,\"d\",\"vec4f\"],[\"outRGB\",[7,\"color\",\"w\"]]]]]],\"externalNames\":[\"d\",\"std\",\"rotationBindGroupLayout\",\"glareBindGroupLayout\",\"textureBindGroupLayout\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/glareFragment.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","glareBindGroupLayout","glareColorShift","hueShift","overlayChannels","glareFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","centeredCoords","sub","mul","rot","vec","center","add","glareOptions","glareIntensity","glowPower","lightIntensity","glareColor","hueBlendPower","hueShiftAngleMax","hueShiftAngleMin","color","textureSample","texture","sampler","dst","exp","distance","distToCenter","smoothstep","glow","vec3f","w","hueBlend","f32","shiftedRGB","xyz","hueShiftAngle","shiftedHue","mix","baseColor","blendColor","combined","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"centeredCoords\",[6,[7,\"std\",\"sub\"],[[6,[7,\"std\",\"mul\"],[\"uv\",[5,\"2\"]]],[5,\"1\"]]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"center\",[6,[7,\"std\",\"add\"],[[6,[7,\"d\",\"vec2f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec2f\"],[[7,\"rot\",\"x\"],[7,\"rot\",\"y\"]]]]]],[13,\"glareOptions\",[7,[7,\"glareBindGroupLayout\",\"$\"],\"glareOptions\"]],[13,\"glareIntensity\",[7,\"glareOptions\",\"glareIntensity\"]],[13,\"glowPower\",[7,\"glareOptions\",\"glowPower\"]],[13,\"lightIntensity\",[7,\"glareOptions\",\"lightIntensity\"]],[13,\"glareColor\",[7,\"glareOptions\",\"glareColor\"]],[13,\"hueBlendPower\",[7,\"glareColor\",\"hueBlendPower\"]],[13,\"hueShiftAngleMax\",[7,\"glareColor\",\"hueShiftAngleMax\"]],[13,\"hueShiftAngleMin\",[7,\"glareColor\",\"hueShiftAngleMin\"]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"dst\",[6,[7,\"std\",\"exp\"],[[4,\"-\",[6,[7,\"std\",\"distance\"],[\"center\",\"centeredCoords\"]]]]]],[13,\"distToCenter\",[6,[7,\"std\",\"smoothstep\"],[[5,\"0\"],[1,[5,\"1\"],\"/\",\"glareIntensity\"],\"dst\"]]],[12,\"glow\",[6,[7,\"d\",\"vec3f\"],[\"distToCenter\"]]],[2,\"glow\",\"=\",[6,[7,\"std\",\"mul\"],[\"glow\",[1,\"glowPower\",\"*\",[7,\"color\",\"w\"]]]]],[13,\"hueBlend\",[1,[1,[6,[7,\"d\",\"f32\"],[\"hueBlendPower\"]],\"*\",\"dst\"],\"/\",[5,\"10\"]]],[2,\"glow\",\"=\",[6,[7,\"std\",\"add\"],[\"glow\",[1,\"lightIntensity\",\"/\",[5,\"10\"]]]]],[12,\"shiftedRGB\",[6,\"glareColorShift\",[[7,\"color\",\"xyz\"],[1,\"dst\",\"/\",[1,\"lightIntensity\",\"*\",[5,\"2\"]]]]]],[13,\"hueShiftAngle\",[6,[7,\"std\",\"smoothstep\"],[\"hueShiftAngleMin\",\"hueShiftAngleMax\",\"distToCenter\"]]],[13,\"shiftedHue\",[6,\"hueShift\",[\"shiftedRGB\",\"hueShiftAngle\"]]],[2,\"shiftedRGB\",\"=\",[6,\"overlayChannels\",[\"shiftedRGB\",\"shiftedHue\"]]],[2,\"color\",\"=\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"shiftedRGB\",\"hueBlend\"]],[7,\"color\",\"w\"]]]],[13,\"baseColor\",\"color\"],[13,\"blendColor\",\"glow\"],[13,\"combined\",[6,\"overlayChannels\",[[7,\"baseColor\",\"xyz\"],\"blendColor\"]]],[2,\"color\",\"=\",[6,[7,\"d\",\"vec4f\"],[[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"combined\",\"glow\"]],[7,\"color\",\"w\"]]]],[10,\"color\"]]],\"externalNames\":[\"d\",\"std\",\"rotationBindGroupLayout\",\"glareBindGroupLayout\",\"textureBindGroupLayout\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}","externals","newGlareFragment","opts","dist","radial","radialScaled","max","influenceRaw","curveExp","clamp","glowMask","pow","div","maskedGlow","boostedRGB","hueT","hueAngle","hueShifted","hueMixWeight","chromaMixed","glareStrength","glareLayer","overlaidRGB","finalRGB","outRGB","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"centeredCoords\",[6,[7,\"std\",\"sub\"],[[6,[7,\"std\",\"mul\"],[\"uv\",[5,\"2\"]]],[5,\"1\"]]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"center\",[6,[7,\"std\",\"add\"],[[6,[7,\"d\",\"vec2f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec2f\"],[[7,\"rot\",\"x\"],[7,\"rot\",\"y\"]]]]]],[13,\"opts\",[7,[7,\"glareBindGroupLayout\",\"$\"],\"glareOptions\"]],[13,\"glareIntensity\",[7,\"opts\",\"glareIntensity\"]],[13,\"glowPower\",[7,\"opts\",\"glowPower\"]],[13,\"lightIntensity\",[1,[7,\"opts\",\"lightIntensity\"],\"/\",[5,\"1.3\"]]],[13,\"glareColor\",[7,\"opts\",\"glareColor\"]],[13,\"hueBlendPower\",[7,\"glareColor\",\"hueBlendPower\"]],[13,\"hueShiftAngleMin\",[7,\"glareColor\",\"hueShiftAngleMin\"]],[13,\"hueShiftAngleMax\",[7,\"glareColor\",\"hueShiftAngleMax\"]],[12,\"color\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"dist\",[6,[7,\"std\",\"distance\"],[\"center\",\"centeredCoords\"]]],[13,\"radial\",[6,[7,\"std\",\"exp\"],[[4,\"-\",\"dist\"]]]],[13,\"radialScaled\",[6,[7,\"std\",\"mul\"],[\"radial\",[6,[7,\"std\",\"add\"],[[5,\"1\"],[6,[7,\"std\",\"max\"],[[5,\"0\"],\"glareIntensity\"]]]]]]],[13,\"influenceRaw\",[6,[7,\"std\",\"smoothstep\"],[[5,\"0\"],[5,\"1\"],\"radialScaled\"]]],[13,\"curveExp\",[6,[7,\"std\",\"clamp\"],[\"glowPower\",[5,\"0.05\"],[5,\"64\"]]]],[13,\"glowMask\",[6,[7,\"std\",\"pow\"],[\"influenceRaw\",[6,[7,\"std\",\"div\"],[[5,\"1\"],\"curveExp\"]]]]],[13,\"maskedGlow\",[6,[7,\"std\",\"mul\"],[\"glowMask\",[7,\"color\",\"w\"]]]],[13,\"boostedRGB\",[6,\"glareColorShift\",[[7,\"color\",\"xyz\"],\"maskedGlow\"]]],[13,\"hueT\",[6,[7,\"std\",\"clamp\"],[\"maskedGlow\",[5,\"0\"],[5,\"1\"]]]],[13,\"hueAngle\",[6,[7,\"std\",\"mix\"],[\"hueShiftAngleMin\",\"hueShiftAngleMax\",\"hueT\"]]],[13,\"hueShifted\",[6,\"hueShift\",[\"boostedRGB\",\"hueAngle\"]]],[13,\"hueMixWeight\",[6,[7,\"std\",\"clamp\"],[[6,[7,\"std\",\"mul\"],[[1,\"hueBlendPower\",\"/\",[5,\"5\"]],\"maskedGlow\"]],[5,\"0\"],[5,\"1\"]]]],[13,\"chromaMixed\",[6,[7,\"std\",\"mix\"],[[7,\"color\",\"xyz\"],\"hueShifted\",\"hueMixWeight\"]]],[13,\"glareStrength\",[6,[7,\"std\",\"clamp\"],[\"lightIntensity\",[5,\"0\"],[5,\"100\"]]]],[13,\"glareLayer\",[6,[7,\"std\",\"mul\"],[[6,[7,\"d\",\"vec3f\"],[\"maskedGlow\"]],\"glareStrength\"]]],[13,\"overlaidRGB\",[6,\"overlayChannels\",[\"chromaMixed\",\"glareLayer\"]]],[13,\"finalRGB\",[6,[7,\"std\",\"mix\"],[\"chromaMixed\",\"overlaidRGB\",[6,[7,\"d\",\"vec3f\"],[\"maskedGlow\"]]]]],[13,\"outRGB\",[6,[7,\"std\",\"clamp\"],[\"finalRGB\",[6,[7,\"d\",\"vec3f\"],[[5,\"0\"]]],[6,[7,\"d\",\"vec3f\"],[[5,\"1\"]]]]]],[10,[6,[7,\"d\",\"vec4f\"],[\"outRGB\",[7,\"color\",\"w\"]]]]]],\"externalNames\":[\"d\",\"std\",\"rotationBindGroupLayout\",\"glareBindGroupLayout\",\"textureBindGroupLayout\",\"glareColorShift\",\"hueShift\",\"overlayChannels\"]}"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/glareFragment.ts"],"mappings":"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","ignoreList":[]}
@@ -19,22 +19,23 @@ export const holoFragment = (globalThis.__TYPEGPU_AUTONAME__ ?? (a => a))(tgpu['
19
19
  const wave = waveCallbackSlot.$(rot.xy);
20
20
  const waveX = wave.x;
21
21
  const waveY = wave.y;
22
- const band = std.add(0.2 * waveX * uv.x, 2 * waveY * uv.y);
22
+ const band = std.add(waveX * uv.x, waveY * uv.y * 2.0);
23
+ // const band = waveX * uv.x;
23
24
 
24
25
  //TODO: fix holo
25
- const hueAngle = d.f32(180) * std.mul(std.abs(band), 10 * Math.PI * rot.x / 3);
26
- const rainbowColor = hueShift(d.vec3f(1.0, 1.0, 1.0), hueAngle);
26
+ const frequency = d.f32(1.0);
27
+ const hueAngle = d.f32(180) * std.mul(band, frequency * Math.PI * rot.x);
28
+ const rainbowColor = hueShift(d.vec3f(uv.x, 0.0, 0.0), hueAngle);
27
29
  const finalColor = std.mul(rainbowColor, 1.0);
28
30
 
29
31
  // console.log('\ncurrentColor = (', rainbowColor.xyz, ')');
30
32
  // console.log('hueAngle = ', hueAngle);
31
33
  // console.clear();
32
-
33
34
  return d.vec4f(finalColor, 0.9 * textureColor.w);
34
35
  }, {
35
36
  v: 1,
36
37
  name: void 0,
37
- ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv","texcoord"],[13,"textureColor",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"wave",[6,[7,"waveCallbackSlot","$"],[[7,"rot","xy"]]]],[13,"waveX",[7,"wave","x"]],[13,"waveY",[7,"wave","y"]],[13,"band",[6,[7,"std","add"],[[1,[1,[5,"0.2"],"*","waveX"],"*",[7,"uv","x"]],[1,[1,[5,"2"],"*","waveY"],"*",[7,"uv","y"]]]]],[13,"hueAngle",[1,[6,[7,"d","f32"],[[5,"180"]]],"*",[6,[7,"std","mul"],[[6,[7,"std","abs"],["band"]],[1,[1,[1,[5,"10"],"*",[7,"Math","PI"]],"*",[7,"rot","x"]],"/",[5,"3"]]]]]],[13,"rainbowColor",[6,"hueShift",[[6,[7,"d","vec3f"],[[5,"1"],[5,"1"],[5,"1"]]],"hueAngle"]]],[13,"finalColor",[6,[7,"std","mul"],["rainbowColor",[5,"1"]]]],[10,[6,[7,"d","vec4f"],["finalColor",[1,[5,"0.9"],"*",[7,"textureColor","w"]]]]]]],"externalNames":["d","std","textureBindGroupLayout","rotationBindGroupLayout","waveCallbackSlot","Math","hueShift"]},
38
+ ast: {"params":[{"type":"i","name":"input"}],"body":[0,[[13,"texcoord",[6,[7,"d","vec2f"],[[7,[7,"input","uv"],"x"],[1,[5,"1"],"-",[7,[7,"input","uv"],"y"]]]]],[13,"uv","texcoord"],[13,"textureColor",[6,[7,"std","textureSample"],[[7,[7,"textureBindGroupLayout","$"],"texture"],[7,[7,"textureBindGroupLayout","$"],"sampler"],"texcoord"]]],[13,"rot",[7,[7,"rotationBindGroupLayout","$"],"vec"]],[13,"wave",[6,[7,"waveCallbackSlot","$"],[[7,"rot","xy"]]]],[13,"waveX",[7,"wave","x"]],[13,"waveY",[7,"wave","y"]],[13,"band",[6,[7,"std","add"],[[1,"waveX","*",[7,"uv","x"]],[1,[1,"waveY","*",[7,"uv","y"]],"*",[5,"2"]]]]],[13,"frequency",[6,[7,"d","f32"],[[5,"1"]]]],[13,"hueAngle",[1,[6,[7,"d","f32"],[[5,"180"]]],"*",[6,[7,"std","mul"],["band",[1,[1,"frequency","*",[7,"Math","PI"]],"*",[7,"rot","x"]]]]]],[13,"rainbowColor",[6,"hueShift",[[6,[7,"d","vec3f"],[[7,"uv","x"],[5,"0"],[5,"0"]]],"hueAngle"]]],[13,"finalColor",[6,[7,"std","mul"],["rainbowColor",[5,"1"]]]],[10,[6,[7,"d","vec4f"],["finalColor",[1,[5,"0.9"],"*",[7,"textureColor","w"]]]]]]],"externalNames":["d","std","textureBindGroupLayout","rotationBindGroupLayout","waveCallbackSlot","Math","hueShift"]},
38
39
  get externals() {
39
40
  return {
40
41
  d,
@@ -1 +1 @@
1
- {"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","hueShift","waveCallbackSlot","holoFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","textureColor","textureSample","texture","sampler","rot","vec","wave","xy","waveX","waveY","band","add","hueAngle","f32","mul","abs","Math","PI","rainbowColor","vec3f","finalColor","w","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",\"texcoord\"],[13,\"textureColor\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"wave\",[6,[7,\"waveCallbackSlot\",\"$\"],[[7,\"rot\",\"xy\"]]]],[13,\"waveX\",[7,\"wave\",\"x\"]],[13,\"waveY\",[7,\"wave\",\"y\"]],[13,\"band\",[6,[7,\"std\",\"add\"],[[1,[1,[5,\"0.2\"],\"*\",\"waveX\"],\"*\",[7,\"uv\",\"x\"]],[1,[1,[5,\"2\"],\"*\",\"waveY\"],\"*\",[7,\"uv\",\"y\"]]]]],[13,\"hueAngle\",[1,[6,[7,\"d\",\"f32\"],[[5,\"180\"]]],\"*\",[6,[7,\"std\",\"mul\"],[[6,[7,\"std\",\"abs\"],[\"band\"]],[1,[1,[1,[5,\"10\"],\"*\",[7,\"Math\",\"PI\"]],\"*\",[7,\"rot\",\"x\"]],\"/\",[5,\"3\"]]]]]],[13,\"rainbowColor\",[6,\"hueShift\",[[6,[7,\"d\",\"vec3f\"],[[5,\"1\"],[5,\"1\"],[5,\"1\"]]],\"hueAngle\"]]],[13,\"finalColor\",[6,[7,\"std\",\"mul\"],[\"rainbowColor\",[5,\"1\"]]]],[10,[6,[7,\"d\",\"vec4f\"],[\"finalColor\",[1,[5,\"0.9\"],\"*\",[7,\"textureColor\",\"w\"]]]]]]],\"externalNames\":[\"d\",\"std\",\"textureBindGroupLayout\",\"rotationBindGroupLayout\",\"waveCallbackSlot\",\"Math\",\"hueShift\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/holoFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,uBAAuB,EACvBC,sBAAsB,QACjB,wBAAqB;AAC5B,SAASC,QAAQ,QAAQ,iBAAc;AACvC,SAASC,gBAAgB,QAAQ,6BAA0B;AAE3D,OAAO,MAAMC,YAAY,IAAAC,UAAA,CAAAC,oBAAA,KAAAC,CAAA,IAAAA,CAAA,GAAGV,IAAI,CAAC,WAAW,CAAC,CAACW,UAAU,CAAC;EACvDC,EAAE,EAAE;IAAEC,EAAE,EAAEZ,CAAC,CAACa;EAAM,CAAC;EACnBC,GAAG,EAAEd,CAAC,CAACe;AACT,CAAC,CAAC,EAAAC,CAAA,KAAAT,UAAA,CAAAU,gBAAA,SAAAC,OAAA,IAAAC,GAAA,CAAAH,CAAA,CAAAI,CAAA,GAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGtB,CAAC,CAACa,KAAK,CAACQ,KAAK,CAACT,EAAE,CAACW,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACT,EAAE,CAACY,CAAC,CAAC;EACtD,MAAMZ,EAAE,GAAGU,QAAQ;EACnB,MAAMG,YAAY,GAAGxB,GAAG,CAACyB,aAAa,CACpCvB,sBAAsB,CAACa,CAAC,CAACW,OAAO,EAChCxB,sBAAsB,CAACa,CAAC,CAACY,OAAO,EAChCN,QACF,CAAC;EACD,MAAMO,GAAG,GAAG3B,uBAAuB,CAACc,CAAC,CAACc,GAAG;EAEzC,MAAMC,IAAI,GAAG1B,gBAAgB,CAACW,CAAC,CAACa,GAAG,CAACG,EAAE,CAAC;EACvC,MAAMC,KAAK,GAAGF,IAAI,CAACR,CAAC;EACpB,MAAMW,KAAK,GAAGH,IAAI,CAACP,CAAC;EAEpB,MAAMW,IAAI,GAAGlC,GAAG,CAACmC,GAAG,CAAC,GAAG,GAAGH,KAAK,GAAGrB,EAAE,CAACW,CAAC,EAAE,CAAC,GAAGW,KAAK,GAAGtB,EAAE,CAACY,CAAC,CAAC;;EAE1D;EACA,MAAMa,QAAQ,GACZrC,CAAC,CAACsC,GAAG,CAAC,GAAG,CAAC,GAAGrC,GAAG,CAACsC,GAAG,CAACtC,GAAG,CAACuC,GAAG,CAACL,IAAI,CAAC,EAAG,EAAE,GAAGM,IAAI,CAACC,EAAE,GAAGb,GAAG,CAACN,CAAC,GAAI,CAAC,CAAC;EACjE,MAAMoB,YAAY,GAAGvC,QAAQ,CAACJ,CAAC,CAAC4C,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEP,QAAQ,CAAC;EAC/D,MAAMQ,UAAU,GAAG5C,GAAG,CAACsC,GAAG,CAACI,YAAY,EAAE,GAAG,CAAC;;EAE7C;EACA;EACA;;EAEA,OAAO3C,CAAC,CAACe,KAAK,CAAC8B,UAAU,EAAE,GAAG,GAAGpB,YAAY,CAACqB,CAAC,CAAC;AAClD,CAAC;EAAAC,CAAA;EAAAC,IAAA;EAAAC,GAAA,EAAAC,0oCAAA;EAAA,IAAAC,UAAA;IAAA;MAAAnD,CAAA;MAAAC,GAAA;MAAAE,sBAAA;MAAAD,uBAAA;MAAAG,gBAAA;MAAAoC,IAAA;MAAArC;IAAA;EAAA;AAAA,MAAAY,CAAA,CAAAI,CAAA,uBAAC","ignoreList":[]}
1
+ {"version":3,"names":["tgpu","d","std","rotationBindGroupLayout","textureBindGroupLayout","hueShift","waveCallbackSlot","holoFragment","globalThis","__TYPEGPU_AUTONAME__","a","fragmentFn","in","uv","vec2f","out","vec4f","$","__TYPEGPU_META__","WeakMap","set","f","input","texcoord","x","y","textureColor","textureSample","texture","sampler","rot","vec","wave","xy","waveX","waveY","band","add","frequency","f32","hueAngle","mul","Math","PI","rainbowColor","vec3f","finalColor","w","v","name","ast","{\"params\":[{\"type\":\"i\",\"name\":\"input\"}],\"body\":[0,[[13,\"texcoord\",[6,[7,\"d\",\"vec2f\"],[[7,[7,\"input\",\"uv\"],\"x\"],[1,[5,\"1\"],\"-\",[7,[7,\"input\",\"uv\"],\"y\"]]]]],[13,\"uv\",\"texcoord\"],[13,\"textureColor\",[6,[7,\"std\",\"textureSample\"],[[7,[7,\"textureBindGroupLayout\",\"$\"],\"texture\"],[7,[7,\"textureBindGroupLayout\",\"$\"],\"sampler\"],\"texcoord\"]]],[13,\"rot\",[7,[7,\"rotationBindGroupLayout\",\"$\"],\"vec\"]],[13,\"wave\",[6,[7,\"waveCallbackSlot\",\"$\"],[[7,\"rot\",\"xy\"]]]],[13,\"waveX\",[7,\"wave\",\"x\"]],[13,\"waveY\",[7,\"wave\",\"y\"]],[13,\"band\",[6,[7,\"std\",\"add\"],[[1,\"waveX\",\"*\",[7,\"uv\",\"x\"]],[1,[1,\"waveY\",\"*\",[7,\"uv\",\"y\"]],\"*\",[5,\"2\"]]]]],[13,\"frequency\",[6,[7,\"d\",\"f32\"],[[5,\"1\"]]]],[13,\"hueAngle\",[1,[6,[7,\"d\",\"f32\"],[[5,\"180\"]]],\"*\",[6,[7,\"std\",\"mul\"],[\"band\",[1,[1,\"frequency\",\"*\",[7,\"Math\",\"PI\"]],\"*\",[7,\"rot\",\"x\"]]]]]],[13,\"rainbowColor\",[6,\"hueShift\",[[6,[7,\"d\",\"vec3f\"],[[7,\"uv\",\"x\"],[5,\"0\"],[5,\"0\"]]],\"hueAngle\"]]],[13,\"finalColor\",[6,[7,\"std\",\"mul\"],[\"rainbowColor\",[5,\"1\"]]]],[10,[6,[7,\"d\",\"vec4f\"],[\"finalColor\",[1,[5,\"0.9\"],\"*\",[7,\"textureColor\",\"w\"]]]]]]],\"externalNames\":[\"d\",\"std\",\"textureBindGroupLayout\",\"rotationBindGroupLayout\",\"waveCallbackSlot\",\"Math\",\"hueShift\"]}","externals"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/holoFragment.ts"],"mappings":";;AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,OAAO,KAAKC,CAAC,MAAM,cAAc;AACjC,OAAO,KAAKC,GAAG,MAAM,aAAa;AAClC,SACEC,uBAAuB,EACvBC,sBAAsB,QACjB,wBAAqB;AAC5B,SAASC,QAAQ,QAAQ,iBAAc;AACvC,SAASC,gBAAgB,QAAQ,6BAA0B;AAE3D,OAAO,MAAMC,YAAY,IAAAC,UAAA,CAAAC,oBAAA,KAAAC,CAAA,IAAAA,CAAA,GAAGV,IAAI,CAAC,WAAW,CAAC,CAACW,UAAU,CAAC;EACvDC,EAAE,EAAE;IAAEC,EAAE,EAAEZ,CAAC,CAACa;EAAM,CAAC;EACnBC,GAAG,EAAEd,CAAC,CAACe;AACT,CAAC,CAAC,EAAAC,CAAA,KAAAT,UAAA,CAAAU,gBAAA,SAAAC,OAAA,IAAAC,GAAA,CAAAH,CAAA,CAAAI,CAAA,GAAEC,KAAK,IAAK;EACZ,MAAMC,QAAQ,GAAGtB,CAAC,CAACa,KAAK,CAACQ,KAAK,CAACT,EAAE,CAACW,CAAC,EAAE,GAAG,GAAGF,KAAK,CAACT,EAAE,CAACY,CAAC,CAAC;EACtD,MAAMZ,EAAE,GAAGU,QAAQ;EACnB,MAAMG,YAAY,GAAGxB,GAAG,CAACyB,aAAa,CACpCvB,sBAAsB,CAACa,CAAC,CAACW,OAAO,EAChCxB,sBAAsB,CAACa,CAAC,CAACY,OAAO,EAChCN,QACF,CAAC;EACD,MAAMO,GAAG,GAAG3B,uBAAuB,CAACc,CAAC,CAACc,GAAG;EAEzC,MAAMC,IAAI,GAAG1B,gBAAgB,CAACW,CAAC,CAACa,GAAG,CAACG,EAAE,CAAC;EACvC,MAAMC,KAAK,GAAGF,IAAI,CAACR,CAAC;EACpB,MAAMW,KAAK,GAAGH,IAAI,CAACP,CAAC;EAEpB,MAAMW,IAAI,GAAGlC,GAAG,CAACmC,GAAG,CAACH,KAAK,GAAGrB,EAAE,CAACW,CAAC,EAAEW,KAAK,GAAGtB,EAAE,CAACY,CAAC,GAAG,GAAG,CAAC;EACtD;;EAEA;EACA,MAAMa,SAAS,GAAGrC,CAAC,CAACsC,GAAG,CAAC,GAAG,CAAC;EAC5B,MAAMC,QAAQ,GAAGvC,CAAC,CAACsC,GAAG,CAAC,GAAG,CAAC,GAAGrC,GAAG,CAACuC,GAAG,CAACL,IAAI,EAAEE,SAAS,GAAGI,IAAI,CAACC,EAAE,GAAGb,GAAG,CAACN,CAAC,CAAC;EACxE,MAAMoB,YAAY,GAAGvC,QAAQ,CAACJ,CAAC,CAAC4C,KAAK,CAAChC,EAAE,CAACW,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAEgB,QAAQ,CAAC;EAChE,MAAMM,UAAU,GAAG5C,GAAG,CAACuC,GAAG,CAACG,YAAY,EAAE,GAAG,CAAC;;EAE7C;EACA;EACA;EACA,OAAO3C,CAAC,CAACe,KAAK,CAAC8B,UAAU,EAAE,GAAG,GAAGpB,YAAY,CAACqB,CAAC,CAAC;AAClD,CAAC;EAAAC,CAAA;EAAAC,IAAA;EAAAC,GAAA,EAAAC,uoCAAA;EAAA,IAAAC,UAAA;IAAA;MAAAnD,CAAA;MAAAC,GAAA;MAAAE,sBAAA;MAAAD,uBAAA;MAAAG,gBAAA;MAAAoC,IAAA;MAAArC;IAAA;EAAA;AAAA,MAAAY,CAAA,CAAAI,CAAA,uBAAC","ignoreList":[]}