react-native-shine 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +1 -1
  2. package/lib/module/components/Shine.js +269 -0
  3. package/lib/module/components/Shine.js.map +1 -0
  4. package/lib/module/components/ShineGroup.js +104 -0
  5. package/lib/module/components/ShineGroup.js.map +1 -0
  6. package/lib/module/enums/waveCallback.js +19 -0
  7. package/lib/module/enums/waveCallback.js.map +1 -0
  8. package/lib/module/hooks/useOrientation.js +16 -0
  9. package/lib/module/hooks/useOrientation.js.map +1 -0
  10. package/lib/module/index.js +5 -219
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/shaders/bindGroupLayouts.js +40 -5
  13. package/lib/module/shaders/bindGroupLayouts.js.map +1 -1
  14. package/lib/module/shaders/bindGroupUtils.js +27 -12
  15. package/lib/module/shaders/bindGroupUtils.js.map +1 -1
  16. package/lib/module/shaders/fragmentShaders/colorMaskFragment.js +2 -2
  17. package/lib/module/shaders/fragmentShaders/colorMaskFragment.js.map +1 -1
  18. package/lib/module/shaders/fragmentShaders/glareFragment.js +114 -0
  19. package/lib/module/shaders/fragmentShaders/glareFragment.js.map +1 -0
  20. package/lib/module/shaders/fragmentShaders/holoFragment.js +33 -0
  21. package/lib/module/shaders/fragmentShaders/holoFragment.js.map +1 -0
  22. package/lib/module/shaders/fragmentShaders/maskFragment.js +20 -0
  23. package/lib/module/shaders/fragmentShaders/maskFragment.js.map +1 -0
  24. package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js +46 -0
  25. package/lib/module/shaders/fragmentShaders/reverseHoloFragment.js.map +1 -0
  26. package/lib/module/shaders/pipelineSetups.js +82 -13
  27. package/lib/module/shaders/pipelineSetups.js.map +1 -1
  28. package/lib/module/shaders/{resourceManagement.js → resourceManagement/bitmaps.js} +2 -1
  29. package/lib/module/shaders/resourceManagement/bitmaps.js.map +1 -0
  30. package/lib/module/shaders/resourceManagement/bufferManager.js +46 -0
  31. package/lib/module/shaders/resourceManagement/bufferManager.js.map +1 -0
  32. package/lib/module/shaders/resourceManagement/textures.js +17 -0
  33. package/lib/module/shaders/resourceManagement/textures.js.map +1 -0
  34. package/lib/module/shaders/tgpuUtils.js +19 -1
  35. package/lib/module/shaders/tgpuUtils.js.map +1 -1
  36. package/lib/module/shaders/utils.js +0 -14
  37. package/lib/module/shaders/utils.js.map +1 -1
  38. package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js +47 -0
  39. package/lib/module/shaders/vertexShaders/mainRotationEffectVertex.js.map +1 -0
  40. package/lib/module/types/typeUtils.js +17 -5
  41. package/lib/module/types/typeUtils.js.map +1 -1
  42. package/lib/typescript/src/components/Shine.d.ts +17 -0
  43. package/lib/typescript/src/components/Shine.d.ts.map +1 -0
  44. package/lib/typescript/src/components/ShineGroup.d.ts +8 -0
  45. package/lib/typescript/src/components/ShineGroup.d.ts.map +1 -0
  46. package/lib/typescript/src/enums/waveCallback.d.ts +9 -0
  47. package/lib/typescript/src/enums/waveCallback.d.ts.map +1 -0
  48. package/lib/typescript/src/hooks/useOrientation.d.ts +2 -0
  49. package/lib/typescript/src/hooks/useOrientation.d.ts.map +1 -0
  50. package/lib/typescript/src/index.d.ts +6 -11
  51. package/lib/typescript/src/index.d.ts.map +1 -1
  52. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts +44 -6
  53. package/lib/typescript/src/shaders/bindGroupLayouts.d.ts.map +1 -1
  54. package/lib/typescript/src/shaders/bindGroupUtils.d.ts +8 -8
  55. package/lib/typescript/src/shaders/bindGroupUtils.d.ts.map +1 -1
  56. package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts +8 -0
  57. package/lib/typescript/src/shaders/fragmentShaders/glareFragment.d.ts.map +1 -0
  58. package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts +5 -0
  59. package/lib/typescript/src/shaders/fragmentShaders/holoFragment.d.ts.map +1 -0
  60. package/lib/typescript/src/shaders/fragmentShaders/maskFragment.d.ts +6 -0
  61. package/lib/typescript/src/shaders/fragmentShaders/maskFragment.d.ts.map +1 -0
  62. package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts +5 -0
  63. package/lib/typescript/src/shaders/fragmentShaders/reverseHoloFragment.d.ts.map +1 -0
  64. package/lib/typescript/src/shaders/pipelineSetups.d.ts +9 -4
  65. package/lib/typescript/src/shaders/pipelineSetups.d.ts.map +1 -1
  66. package/lib/typescript/src/shaders/{resourceManagement.d.ts → resourceManagement/bitmaps.d.ts} +1 -1
  67. package/lib/typescript/src/shaders/resourceManagement/bitmaps.d.ts.map +1 -0
  68. package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts +28 -0
  69. package/lib/typescript/src/shaders/resourceManagement/bufferManager.d.ts.map +1 -0
  70. package/lib/typescript/src/shaders/resourceManagement/textures.d.ts +7 -0
  71. package/lib/typescript/src/shaders/resourceManagement/textures.d.ts.map +1 -0
  72. package/lib/typescript/src/shaders/tgpuUtils.d.ts +5 -1
  73. package/lib/typescript/src/shaders/tgpuUtils.d.ts.map +1 -1
  74. package/lib/typescript/src/shaders/utils.d.ts +1 -7
  75. package/lib/typescript/src/shaders/utils.d.ts.map +1 -1
  76. package/lib/typescript/src/shaders/vertexShaders/mainRotationEffectVertex.d.ts +6 -0
  77. package/lib/typescript/src/shaders/vertexShaders/mainRotationEffectVertex.d.ts.map +1 -0
  78. package/lib/typescript/src/types/typeUtils.d.ts +3 -2
  79. package/lib/typescript/src/types/typeUtils.d.ts.map +1 -1
  80. package/lib/typescript/src/types/types.d.ts +7 -2
  81. package/lib/typescript/src/types/types.d.ts.map +1 -1
  82. package/package.json +4 -3
  83. package/scripts/postinstall.js +16 -17
  84. package/src/components/Shine.tsx +480 -0
  85. package/src/components/ShineGroup.tsx +107 -0
  86. package/src/enums/waveCallback.ts +22 -0
  87. package/src/hooks/useOrientation.ts +20 -0
  88. package/src/index.tsx +6 -322
  89. package/src/shaders/bindGroupLayouts.ts +43 -6
  90. package/src/shaders/bindGroupUtils.ts +34 -19
  91. package/src/shaders/fragmentShaders/colorMaskFragment.ts +2 -2
  92. package/src/shaders/fragmentShaders/glareFragment.ts +142 -0
  93. package/src/shaders/fragmentShaders/holoFragment.ts +43 -0
  94. package/src/shaders/fragmentShaders/maskFragment.ts +31 -0
  95. package/src/shaders/fragmentShaders/reverseHoloFragment.ts +71 -0
  96. package/src/shaders/pipelineSetups.ts +161 -14
  97. package/src/shaders/{resourceManagement.ts → resourceManagement/bitmaps.ts} +1 -0
  98. package/src/shaders/resourceManagement/bufferManager.ts +82 -0
  99. package/src/shaders/resourceManagement/textures.ts +30 -0
  100. package/src/shaders/tgpuUtils.ts +36 -1
  101. package/src/shaders/utils.ts +0 -30
  102. package/src/shaders/vertexShaders/mainRotationEffectVertex.ts +76 -0
  103. package/src/types/typeUtils.ts +22 -8
  104. package/src/types/types.ts +8 -2
  105. package/lib/module/shaders/fragmentShaders/bloomFragment.js +0 -66
  106. package/lib/module/shaders/fragmentShaders/bloomFragment.js.map +0 -1
  107. package/lib/module/shaders/resourceManagement.js.map +0 -1
  108. package/lib/typescript/src/shaders/fragmentShaders/bloomFragment.d.ts +0 -6
  109. package/lib/typescript/src/shaders/fragmentShaders/bloomFragment.d.ts.map +0 -1
  110. package/lib/typescript/src/shaders/resourceManagement.d.ts.map +0 -1
  111. package/src/shaders/fragmentShaders/bloomFragment.ts +0 -83
@@ -1,17 +1,18 @@
1
1
  import type { TgpuBindGroup, TgpuBindGroupLayout } from 'typegpu';
2
+ import type { WaveCallbackFn } from '../enums/waveCallback';
2
3
 
3
4
  export type vec2 = [number, number];
4
5
  export type vec3 = [number, number, number];
5
6
  export type vec4 = [number, number, number, number];
6
7
  export type quaternion = vec4;
7
8
 
8
- export type BloomOptions = {
9
+ export type GlareOptions = {
9
10
  glowPower: number;
10
11
  hueShiftAngleMax: number;
11
12
  hueShiftAngleMin: number;
12
13
  hueBlendPower: number;
13
14
  lightIntensity: number;
14
- bloomIntensity: number;
15
+ glareIntensity: number;
15
16
  };
16
17
 
17
18
  export type ColorMask = {
@@ -22,6 +23,11 @@ export type ColorMask = {
22
23
  };
23
24
  };
24
25
 
26
+ export type HoloOptions = {
27
+ intensity: number;
28
+ waveCallback: WaveCallbackFn;
29
+ };
30
+
25
31
  //makes all keys besides specified optional
26
32
  export type PartiallyOptional<T, K extends keyof T> = {
27
33
  [P in K]: T[P];
@@ -1,66 +0,0 @@
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 { rotationValuesBindGroupLayout, textureBindGroupLayout, bloomOptionsBindGroupLayout, colorMaskBindGroupLayout } from "../bindGroupLayouts.js";
7
- import { bloomColorShift, hueShift, overlayChannels } from "../tgpuUtils.js";
8
- const bloomFragment = tgpu['~unstable'].fragmentFn({
9
- in: {
10
- uv: d.vec2f
11
- },
12
- out: d.vec4f
13
- })(input => {
14
- const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
15
- const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
16
- const centeredCoords = std.sub(std.mul(uv, 2.0), 1); //-1 to 1
17
-
18
- const rot = rotationValuesBindGroupLayout.$.vec;
19
- const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y));
20
- const bloomOptions = bloomOptionsBindGroupLayout.$.bloomOptions;
21
- const bloomIntensity = bloomOptions.bloomIntensity;
22
- const glowPower = bloomOptions.glowPower;
23
- const hueBlendPower = bloomOptions.hueBlendPower;
24
- const hueShiftAngleMax = bloomOptions.hueShiftAngleMax;
25
- const hueShiftAngleMin = bloomOptions.hueShiftAngleMin;
26
- const lightIntensity = bloomOptions.lightIntensity;
27
- const mask = colorMaskBindGroupLayout.$.mask;
28
- const maskedColor = mask.baseColor;
29
- const rgbToleranceRange = mask.rgbToleranceRange;
30
- let color = std.textureSample(textureBindGroupLayout.$.texture, textureBindGroupLayout.$.sampler, texcoord);
31
- const maskedColorLower = std.sub(maskedColor, rgbToleranceRange.lower);
32
- const maskedColorUpper = std.add(maskedColor, rgbToleranceRange.upper);
33
- const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
34
- const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
35
- if (upperCheck && lowerCheck) {
36
- return color;
37
- }
38
-
39
- //bloomIntensity
40
- const dst = std.exp(-std.distance(center, centeredCoords));
41
- const distToCenter = std.smoothstep(0.0, 1 / bloomIntensity, dst);
42
-
43
- //glowPower
44
- let glow = d.vec3f(distToCenter);
45
- glow = std.mul(glow, glowPower * color.w);
46
-
47
- //hueBlend
48
- const hueBlend = d.f32(hueBlendPower) * dst / 10.0;
49
-
50
- //lightIntensity
51
- glow = std.add(glow, lightIntensity / 10.0);
52
- let shiftedRGB = bloomColorShift(color.xyz, dst / (lightIntensity * 2));
53
-
54
- //hueShiftAngleMin/Max
55
- const hueShiftAngle = std.smoothstep(hueShiftAngleMin, hueShiftAngleMax, distToCenter);
56
- const shiftedHue = hueShift(shiftedRGB, hueShiftAngle);
57
- shiftedRGB = overlayChannels(shiftedRGB, shiftedHue);
58
- color = d.vec4f(std.mix(color.xyz, shiftedRGB, hueBlend), color.w);
59
- const baseColor = color;
60
- const blendColor = glow;
61
- const combined = overlayChannels(baseColor.xyz, blendColor);
62
- color = d.vec4f(std.mix(color.xyz, combined, glow), color.w);
63
- return color;
64
- });
65
- export default bloomFragment;
66
- //# sourceMappingURL=bloomFragment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["tgpu","d","std","rotationValuesBindGroupLayout","textureBindGroupLayout","bloomOptionsBindGroupLayout","colorMaskBindGroupLayout","bloomColorShift","hueShift","overlayChannels","bloomFragment","fragmentFn","in","uv","vec2f","out","vec4f","input","texcoord","x","y","centeredCoords","sub","mul","rot","$","vec","center","add","bloomOptions","bloomIntensity","glowPower","hueBlendPower","hueShiftAngleMax","hueShiftAngleMin","lightIntensity","mask","maskedColor","baseColor","rgbToleranceRange","color","textureSample","texture","sampler","maskedColorLower","lower","maskedColorUpper","upper","upperCheck","all","le","xyz","lowerCheck","ge","dst","exp","distance","distToCenter","smoothstep","glow","vec3f","w","hueBlend","f32","shiftedRGB","hueShiftAngle","shiftedHue","mix","blendColor","combined"],"sourceRoot":"../../../../src","sources":["shaders/fragmentShaders/bloomFragment.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
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":[]}
@@ -1,6 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1,83 +0,0 @@
1
- import tgpu from 'typegpu';
2
- import * as d from 'typegpu/data';
3
- import * as std from 'typegpu/std';
4
- import {
5
- rotationValuesBindGroupLayout,
6
- textureBindGroupLayout,
7
- bloomOptionsBindGroupLayout,
8
- colorMaskBindGroupLayout,
9
- } from '../bindGroupLayouts';
10
- import { bloomColorShift, hueShift, overlayChannels } from '../tgpuUtils';
11
-
12
- const bloomFragment = tgpu['~unstable'].fragmentFn({
13
- in: { uv: d.vec2f },
14
- out: d.vec4f,
15
- })((input) => {
16
- const texcoord = d.vec2f(input.uv.x, 1.0 - input.uv.y);
17
- const uv = d.vec2f(input.uv.x, 1.0 - input.uv.y);
18
- const centeredCoords = std.sub(std.mul(uv, 2.0), 1); //-1 to 1
19
-
20
- const rot = rotationValuesBindGroupLayout.$.vec;
21
- const center = std.add(d.vec2f(0.0), d.vec2f(rot.x, rot.y));
22
-
23
- const bloomOptions = bloomOptionsBindGroupLayout.$.bloomOptions;
24
- const bloomIntensity = bloomOptions.bloomIntensity;
25
- const glowPower = bloomOptions.glowPower;
26
- const hueBlendPower = bloomOptions.hueBlendPower;
27
- const hueShiftAngleMax = bloomOptions.hueShiftAngleMax;
28
- const hueShiftAngleMin = bloomOptions.hueShiftAngleMin;
29
- const lightIntensity = bloomOptions.lightIntensity;
30
-
31
- const mask = colorMaskBindGroupLayout.$.mask;
32
- const maskedColor = mask.baseColor;
33
- const rgbToleranceRange = mask.rgbToleranceRange;
34
-
35
- let color = std.textureSample(
36
- textureBindGroupLayout.$.texture,
37
- textureBindGroupLayout.$.sampler,
38
- texcoord
39
- );
40
-
41
- const maskedColorLower = std.sub(maskedColor, rgbToleranceRange.lower);
42
- const maskedColorUpper = std.add(maskedColor, rgbToleranceRange.upper);
43
- const upperCheck = std.all(std.le(color.xyz, maskedColorUpper));
44
- const lowerCheck = std.all(std.ge(color.xyz, maskedColorLower));
45
- if (upperCheck && lowerCheck) {
46
- return color;
47
- }
48
-
49
- //bloomIntensity
50
- const dst = std.exp(-std.distance(center, centeredCoords));
51
- const distToCenter = std.smoothstep(0.0, 1 / bloomIntensity, dst);
52
-
53
- //glowPower
54
- let glow = d.vec3f(distToCenter);
55
- glow = std.mul(glow, glowPower * color.w);
56
-
57
- //hueBlend
58
- const hueBlend = (d.f32(hueBlendPower) * dst) / 10.0;
59
-
60
- //lightIntensity
61
- glow = std.add(glow, lightIntensity / 10.0);
62
- let shiftedRGB = bloomColorShift(color.xyz, dst / (lightIntensity * 2));
63
-
64
- //hueShiftAngleMin/Max
65
- const hueShiftAngle = std.smoothstep(
66
- hueShiftAngleMin,
67
- hueShiftAngleMax,
68
- distToCenter
69
- );
70
- const shiftedHue = hueShift(shiftedRGB, hueShiftAngle);
71
- shiftedRGB = overlayChannels(shiftedRGB, shiftedHue);
72
-
73
- color = d.vec4f(std.mix(color.xyz, shiftedRGB, hueBlend), color.w);
74
- const baseColor = color;
75
- const blendColor = glow;
76
-
77
- const combined = overlayChannels(baseColor.xyz, blendColor);
78
- color = d.vec4f(std.mix(color.xyz, combined, glow), color.w);
79
-
80
- return color;
81
- });
82
-
83
- export default bloomFragment;