react-native-webrtc-kaleidoscope 2.2.1 → 2.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 (51) hide show
  1. package/README.md +30 -0
  2. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/ShadersGenerated.kt +57 -23
  3. package/catalog/shaders/clouds/clouds.frag +21 -6
  4. package/catalog/shaders/nebula/nebula.frag +22 -10
  5. package/catalog/shaders/simianlights/simianlights.frag +19 -9
  6. package/dist/src/components/preset-control-panel/preset-control-panel.d.ts +9 -1
  7. package/dist/src/components/preset-control-panel/preset-control-panel.d.ts.map +1 -1
  8. package/dist/src/components/preset-control-panel/preset-control-panel.js +7 -3
  9. package/dist/src/components/preset-control-panel/preset-control-panel.js.map +1 -1
  10. package/dist/src/kaleidoscope/controls.d.ts.map +1 -1
  11. package/dist/src/kaleidoscope/controls.js +6 -3
  12. package/dist/src/kaleidoscope/controls.js.map +1 -1
  13. package/dist/src/kaleidoscope/shader-to-spec.d.ts +15 -1
  14. package/dist/src/kaleidoscope/shader-to-spec.d.ts.map +1 -1
  15. package/dist/src/kaleidoscope/shader-to-spec.js +23 -4
  16. package/dist/src/kaleidoscope/shader-to-spec.js.map +1 -1
  17. package/dist/src/kaleidoscope/types.d.ts +3 -1
  18. package/dist/src/kaleidoscope/types.d.ts.map +1 -1
  19. package/dist/src/kaleidoscope/types.js.map +1 -1
  20. package/dist/src/persistence/async-storage-store.d.ts +3 -0
  21. package/dist/src/persistence/async-storage-store.d.ts.map +1 -0
  22. package/dist/src/persistence/async-storage-store.js +26 -0
  23. package/dist/src/persistence/async-storage-store.js.map +1 -0
  24. package/dist/src/persistence/index.d.ts +4 -0
  25. package/dist/src/persistence/index.d.ts.map +1 -0
  26. package/dist/src/persistence/index.js +22 -0
  27. package/dist/src/persistence/index.js.map +1 -0
  28. package/dist/src/persistence/provider.d.ts +38 -0
  29. package/dist/src/persistence/provider.d.ts.map +1 -0
  30. package/dist/src/persistence/provider.js +96 -0
  31. package/dist/src/persistence/provider.js.map +1 -0
  32. package/dist/src/persistence/state.d.ts +54 -0
  33. package/dist/src/persistence/state.d.ts.map +1 -0
  34. package/dist/src/persistence/state.js +126 -0
  35. package/dist/src/persistence/state.js.map +1 -0
  36. package/dist/web-driver/shaders.generated.d.ts +3 -3
  37. package/dist/web-driver/shaders.generated.d.ts.map +1 -1
  38. package/dist/web-driver/shaders.generated.js +57 -23
  39. package/dist/web-driver/shaders.generated.js.map +1 -1
  40. package/ios/KaleidoscopeModule/shaders/clouds.metalsrc +100 -99
  41. package/ios/KaleidoscopeModule/shaders/nebula.metalsrc +63 -45
  42. package/ios/KaleidoscopeModule/shaders/simianlights.metalsrc +63 -45
  43. package/package.json +14 -2
  44. package/src/components/preset-control-panel/preset-control-panel.tsx +15 -2
  45. package/src/kaleidoscope/controls.ts +6 -3
  46. package/src/kaleidoscope/shader-to-spec.ts +32 -5
  47. package/src/kaleidoscope/types.ts +3 -1
  48. package/src/persistence/async-storage-store.ts +33 -0
  49. package/src/persistence/index.ts +28 -0
  50. package/src/persistence/provider.tsx +165 -0
  51. package/src/persistence/state.ts +167 -0
@@ -19,24 +19,24 @@ fragment main0_out main0(main0_in in [[stage_in]], constant float& uTime [[buffe
19
19
  float2 _258 = in.vUv * uResolution;
20
20
  float3 _277 = normalize(float3((_258 - (uResolution * 0.5)) / float2(uResolution.y), 1.5));
21
21
  float _280 = _277.y;
22
- int _864;
23
- float _865;
24
- float _877;
25
- float3 _883;
26
- _883 = float3(0.0);
27
- _877 = 0.0;
28
- _865 = fract(sin(dot(_258, float2(127.09999847412109375, 311.70001220703125))) * 43758.546875) * uStepSize;
29
- _864 = 0;
30
- float _385;
31
- float _891;
22
+ int _874;
23
+ float _875;
24
+ float _892;
32
25
  float3 _898;
33
- float3 _899;
34
- float _900;
26
+ _898 = float3(0.0);
27
+ _892 = 0.0;
28
+ _875 = fract(sin(dot(_258, float2(127.09999847412109375, 311.70001220703125))) * 43758.546875) * uStepSize;
29
+ _874 = 0;
30
+ float _395;
31
+ float _901;
32
+ float3 _908;
33
+ float3 _909;
34
+ float _910;
35
35
  for (;;)
36
36
  {
37
- if (_864 < 48)
37
+ if (_874 < 32)
38
38
  {
39
- float3 _316 = float3(0.0, 1.2000000476837158203125, -4.0) + (_277 * _865);
39
+ float3 _316 = float3(0.0, 1.2000000476837158203125, -4.0) + (_277 * _875);
40
40
  bool _319 = _280 > 0.0;
41
41
  bool _325;
42
42
  if (_319)
@@ -49,8 +49,8 @@ fragment main0_out main0(main0_in in [[stage_in]], constant float& uTime [[buffe
49
49
  }
50
50
  if (_325)
51
51
  {
52
- _900 = _877;
53
- _898 = _883;
52
+ _910 = _892;
53
+ _908 = _898;
54
54
  break;
55
55
  }
56
56
  bool _331 = _280 < 0.0;
@@ -65,121 +65,122 @@ fragment main0_out main0(main0_in in [[stage_in]], constant float& uTime [[buffe
65
65
  }
66
66
  if (_337)
67
67
  {
68
- _900 = _877;
69
- _898 = _883;
68
+ _910 = _892;
69
+ _908 = _898;
70
70
  break;
71
71
  }
72
- float _872;
72
+ float _882;
73
73
  do
74
74
  {
75
- float _444 = uTime * uCloudSpeed;
76
- float3 _451 = _316 + float3(_444, 0.0, _444 * 0.3499999940395355224609375);
77
- float _453 = _451.y;
78
- bool _454 = _453 <= 0.0;
79
- bool _461;
80
- if (!_454)
75
+ float _454 = uTime * uCloudSpeed;
76
+ float3 _461 = _316 + float3(_454, 0.0, _454 * 0.3499999940395355224609375);
77
+ float _463 = _461.y;
78
+ bool _464 = _463 <= 0.0;
79
+ bool _471;
80
+ if (!_464)
81
81
  {
82
- _461 = _453 >= 3.0;
82
+ _471 = _463 >= 3.0;
83
83
  }
84
84
  else
85
85
  {
86
- _461 = _454;
86
+ _471 = _464;
87
87
  }
88
- if (_461)
88
+ if (_471)
89
89
  {
90
- _872 = 0.0;
90
+ _882 = 0.0;
91
91
  break;
92
92
  }
93
- int _867;
94
- float _868;
95
- float _870;
96
- float3 _871;
97
- _871 = _451 * uCloudScale;
98
- _870 = 0.5;
99
- _868 = 0.0;
100
- _867 = 0;
101
- for (; _867 < 5; )
93
+ int _877;
94
+ float _878;
95
+ float _880;
96
+ float3 _881;
97
+ _881 = _461 * uCloudScale;
98
+ _880 = 0.5;
99
+ _878 = 0.0;
100
+ _877 = 0;
101
+ for (; _877 < 4; )
102
102
  {
103
- float3 _527 = floor(_871);
104
- float3 _529 = fract(_871);
105
- float3 _537 = (_529 * _529) * (float3(3.0) - (_529 * 2.0));
106
- float3 _591 = fract((_527 * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
107
- float _593 = _591.x;
108
- float _595 = _591.y;
109
- float _598 = _591.z;
110
- float3 _618 = fract(((_527 + float3(1.0, 0.0, 0.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
111
- float _620 = _618.x;
112
- float _622 = _618.y;
113
- float _625 = _618.z;
114
- float _545 = _537.x;
115
- float3 _645 = fract(((_527 + float3(0.0, 1.0, 0.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
116
- float _647 = _645.x;
117
- float _649 = _645.y;
118
- float _652 = _645.z;
119
- float3 _672 = fract(((_527 + float3(1.0, 1.0, 0.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
120
- float _674 = _672.x;
121
- float _676 = _672.y;
122
- float _679 = _672.z;
123
- float _557 = _537.y;
124
- float3 _699 = fract(((_527 + float3(0.0, 0.0, 1.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
125
- float _701 = _699.x;
126
- float _703 = _699.y;
127
- float _706 = _699.z;
128
- float3 _726 = fract(((_527 + float3(1.0, 0.0, 1.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
129
- float _728 = _726.x;
130
- float _730 = _726.y;
131
- float _733 = _726.z;
132
- float3 _753 = fract(((_527 + float3(0.0, 1.0, 1.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
133
- float _755 = _753.x;
134
- float _757 = _753.y;
135
- float _760 = _753.z;
136
- float3 _780 = fract(((_527 + float3(1.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
137
- float _782 = _780.x;
138
- float _784 = _780.y;
139
- float _787 = _780.z;
140
- float _502 = _870 * mix(mix(mix(fract(((_593 * _595) * _598) * ((_593 + _595) + _598)), fract(((_620 * _622) * _625) * ((_620 + _622) + _625)), _545), mix(fract(((_647 * _649) * _652) * ((_647 + _649) + _652)), fract(((_674 * _676) * _679) * ((_674 + _676) + _679)), _545), _557), mix(mix(fract(((_701 * _703) * _706) * ((_701 + _703) + _706)), fract(((_728 * _730) * _733) * ((_728 + _730) + _733)), _545), mix(fract(((_755 * _757) * _760) * ((_755 + _757) + _760)), fract(((_782 * _784) * _787) * ((_782 + _784) + _787)), _545), _557), _537.z);
141
- _871 *= 2.0299999713897705078125;
142
- _870 *= 0.5;
143
- _868 += _502;
144
- _867++;
103
+ float3 _537 = floor(_881);
104
+ float3 _539 = fract(_881);
105
+ float3 _547 = (_539 * _539) * (float3(3.0) - (_539 * 2.0));
106
+ float3 _601 = fract((_537 * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
107
+ float _603 = _601.x;
108
+ float _605 = _601.y;
109
+ float _608 = _601.z;
110
+ float3 _628 = fract(((_537 + float3(1.0, 0.0, 0.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
111
+ float _630 = _628.x;
112
+ float _632 = _628.y;
113
+ float _635 = _628.z;
114
+ float _555 = _547.x;
115
+ float3 _655 = fract(((_537 + float3(0.0, 1.0, 0.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
116
+ float _657 = _655.x;
117
+ float _659 = _655.y;
118
+ float _662 = _655.z;
119
+ float3 _682 = fract(((_537 + float3(1.0, 1.0, 0.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
120
+ float _684 = _682.x;
121
+ float _686 = _682.y;
122
+ float _689 = _682.z;
123
+ float _567 = _547.y;
124
+ float3 _709 = fract(((_537 + float3(0.0, 0.0, 1.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
125
+ float _711 = _709.x;
126
+ float _713 = _709.y;
127
+ float _716 = _709.z;
128
+ float3 _736 = fract(((_537 + float3(1.0, 0.0, 1.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
129
+ float _738 = _736.x;
130
+ float _740 = _736.y;
131
+ float _743 = _736.z;
132
+ float3 _763 = fract(((_537 + float3(0.0, 1.0, 1.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
133
+ float _765 = _763.x;
134
+ float _767 = _763.y;
135
+ float _770 = _763.z;
136
+ float3 _790 = fract(((_537 + float3(1.0)) * 0.31830990314483642578125) + float3(0.100000001490116119384765625)) * 17.0;
137
+ float _792 = _790.x;
138
+ float _794 = _790.y;
139
+ float _797 = _790.z;
140
+ float _512 = _880 * mix(mix(mix(fract(((_603 * _605) * _608) * ((_603 + _605) + _608)), fract(((_630 * _632) * _635) * ((_630 + _632) + _635)), _555), mix(fract(((_657 * _659) * _662) * ((_657 + _659) + _662)), fract(((_684 * _686) * _689) * ((_684 + _686) + _689)), _555), _567), mix(mix(fract(((_711 * _713) * _716) * ((_711 + _713) + _716)), fract(((_738 * _740) * _743) * ((_738 + _740) + _743)), _555), mix(fract(((_765 * _767) * _770) * ((_765 + _767) + _770)), fract(((_792 * _794) * _797) * ((_792 + _794) + _797)), _555), _567), _547.z);
141
+ _881 *= 2.0299999713897705078125;
142
+ _880 *= 0.5;
143
+ _878 += _512;
144
+ _877++;
145
145
  continue;
146
146
  }
147
- _872 = smoothstep(uCoverage, uCoverage + uSoftness, _868) * (smoothstep(0.0, 0.699999988079071044921875, _453) * smoothstep(3.0, 1.2000000476837158203125, _453));
147
+ _882 = smoothstep(uCoverage, uCoverage + uSoftness, _878) * (smoothstep(0.0, 0.699999988079071044921875, _463) * smoothstep(3.0, 1.2000000476837158203125, _463));
148
148
  break;
149
149
  } while(false);
150
- if (_872 > 0.00999999977648258209228515625)
150
+ float _349 = 1.0 + (_875 * 0.1500000059604644775390625);
151
+ if (_882 > 0.00999999977648258209228515625)
151
152
  {
152
- float _368 = _872 * uDensity;
153
- float _370 = 1.0 - _877;
154
- _899 = _883 + ((mix(uCloudDarkColor, uCloudLightColor, float3(smoothstep(0.4000000059604644775390625, 2.7999999523162841796875, _316.y))) * _370) * _368);
155
- _891 = _877 + (_370 * _368);
153
+ float _376 = fast::min((_882 * uDensity) * _349, 1.0);
154
+ float _378 = 1.0 - _892;
155
+ _909 = _898 + ((mix(uCloudDarkColor, uCloudLightColor, float3(smoothstep(0.4000000059604644775390625, 2.7999999523162841796875, _316.y))) * _378) * _376);
156
+ _901 = _892 + (_378 * _376);
156
157
  }
157
158
  else
158
159
  {
159
- _899 = _883;
160
- _891 = _877;
160
+ _909 = _898;
161
+ _901 = _892;
161
162
  }
162
- _385 = _865 + uStepSize;
163
- if (_891 > 0.949999988079071044921875)
163
+ _395 = _875 + (uStepSize * _349);
164
+ if (_901 > 0.949999988079071044921875)
164
165
  {
165
- _900 = _891;
166
- _898 = _899;
166
+ _910 = _901;
167
+ _908 = _909;
167
168
  break;
168
169
  }
169
- _883 = _899;
170
- _877 = _891;
171
- _865 = _385;
172
- _864++;
170
+ _898 = _909;
171
+ _892 = _901;
172
+ _875 = _395;
173
+ _874++;
173
174
  continue;
174
175
  }
175
176
  else
176
177
  {
177
- _900 = _877;
178
- _898 = _883;
178
+ _910 = _892;
179
+ _908 = _898;
179
180
  break;
180
181
  }
181
182
  }
182
- out.oColor = float4(pow(mix(mix(uSkyLowColor, uSkyHighColor, float3(fast::clamp((_280 * 0.5) + 0.5, 0.0, 1.0))), _898, float3(_900)) * uExposure, float3(0.89999997615814208984375)), 1.0);
183
+ out.oColor = float4(pow(mix(mix(uSkyLowColor, uSkyHighColor, float3(fast::clamp((_280 * 0.5) + 0.5, 0.0, 1.0))), _908, float3(_910)) * uExposure, float3(0.89999997615814208984375)), 1.0);
183
184
  return out;
184
185
  }
185
186
 
@@ -16,57 +16,75 @@ struct main0_in
16
16
  fragment main0_out main0(main0_in in [[stage_in]], constant float& uStarGlow [[buffer(0)]], constant float& uTime [[buffer(1)]], constant float& uTwinkleSpeed [[buffer(2)]], constant float2& uResolution [[buffer(3)]], constant float& uSpeed [[buffer(4)]], constant float& uScale [[buffer(5)]], constant float& uBrightness [[buffer(6)]], constant float3& uColor [[buffer(7)]])
17
17
  {
18
18
  main0_out out = {};
19
- float _303 = (uTime * 0.00999999977648258209228515625) * uSpeed;
20
- float _308 = _303 * 0.0900000035762786865234375;
21
- float3 _644;
22
- float2 _645;
23
- _645 = ((in.vUv * uResolution) - (uResolution * 0.5)) / float2(uResolution.y);
24
- _644 = float3(0.0);
25
- float2 _357;
26
- float3 _376;
27
- for (int _643 = 0; _643 < 12; _645 = _357, _644 = _376, _643++)
19
+ float _312 = (uTime * 0.00999999977648258209228515625) * uSpeed;
20
+ float _317 = _312 * 0.0900000035762786865234375;
21
+ float3 _674;
22
+ float2 _675;
23
+ _675 = ((in.vUv * uResolution) - (uResolution * 0.5)) / float2(uResolution.y);
24
+ _674 = float3(0.0);
25
+ float2 _366;
26
+ float3 _385;
27
+ for (int _673 = 0; _673 < 8; _675 = _366, _674 = _385, _673++)
28
28
  {
29
- float _323 = float(_643) * 0.083333335816860198974609375;
30
- float _328 = fract(_323 + _303);
31
- float _352 = (_308 * _323) * (-10.0);
32
- float _401 = sin(_352);
33
- float _403 = cos(_352);
34
- _357 = _645 * float2x2(float2(_403, -_401), float2(_401, _403));
35
- float2 _367 = ((_357 * mix(64.0, 0.00999999977648258209228515625, _328)) * uScale) + float2(_323 * (3430.0 + fract(_323)));
36
- float2 _439 = fract(_367) - float2(0.5);
37
- float2 _441 = floor(_367);
38
- float _445 = (uTime * 0.3499999940395355224609375) * uTwinkleSpeed;
39
- int _646;
40
- float3 _647;
41
- _647 = float3(0.0);
42
- _646 = -1;
43
- float3 _652;
44
- for (; _646 <= 1; _647 = _652, _646++)
29
+ float _332 = float(_673) * 0.125;
30
+ float _337 = fract(_332 + _312);
31
+ float _361 = (_317 * _332) * (-10.0);
32
+ float _418 = sin(_361);
33
+ float _420 = cos(_361);
34
+ _366 = _675 * float2x2(float2(_420, -_418), float2(_418, _420));
35
+ float2 _376 = ((_366 * mix(64.0, 0.00999999977648258209228515625, _337)) * uScale) + float2(_332 * (3430.0 + fract(_332)));
36
+ float2 _456 = fract(_376) - float2(0.5);
37
+ float2 _458 = floor(_376);
38
+ float _462 = (uTime * 0.3499999940395355224609375) * uTwinkleSpeed;
39
+ float3 _677;
40
+ _677 = float3(0.0);
41
+ float3 _685;
42
+ for (int _676 = -1; _676 <= 1; _677 = _685, _676++)
45
43
  {
46
- _652 = _647;
47
- for (int _650 = -1; _650 <= 1; )
44
+ _685 = _677;
45
+ float3 _534;
46
+ for (int _680 = -1; _680 <= 1; _685 = _534, _680++)
48
47
  {
49
- float2 _460 = float2(float(_650), float(_646));
50
- float2 _531 = fract((_441 + _460) * float2(123.4499969482421875, 345.670013427734375));
51
- float2 _539 = _531 + float2(dot(_531, _531 + float2(45.31999969482421875)));
52
- float _545 = fract(_539.x * _539.y);
53
- float2 _477 = (_439 - _460) - float2(_545 - 0.5, fract(_545 * 45.0) - 0.5);
54
- float _480 = fract(_545 * 1356.3299560546875);
55
- float _482 = smoothstep(0.89999997615814208984375, 1.0, _480);
56
- float _555 = length(_477);
57
- float _562 = _303 * (-0.565486729145050048828125);
58
- float _610 = sin(_562);
59
- float _612 = cos(_562);
60
- float2 _565 = _477 * float2x2(float2(_612, -_610), float2(_610, _612));
61
- float2 _583 = _565 * float2x2(float2(0.707106769084930419921875, -0.707106769084930419921875), float2(0.707106769084930419921875));
62
- _652 += (((((sin(float3(0.699999988079071044921875, 0.300000011920928955078125, 0.89999997615814208984375) * ((fract(_545 * 2150.0) * 9.424777984619140625) * _445)) * (0.4000000059604644775390625 * sin(_445))) + float3(0.60000002384185791015625)) * float3(1.0, 0.100000001490116119384765625, 0.89999997615814208984375 + _480)) * ((((((0.0500000007450580596923828125 * uStarGlow) / fast::max(_555, 9.9999997473787516355514526367188e-05)) + (fast::max(0.0, 1.0 - abs((_565.x * _565.y) * 3000.0)) * _482)) + ((fast::max(0.0, 1.0 - abs((_583.x * _583.y) * 3000.0)) * 0.300000011920928955078125) * _482)) * smoothstep(1.0, 0.0500000007450580596923828125, _555)) * _480)) * 1.25);
63
- _650++;
64
- continue;
48
+ float2 _477 = float2(float(_680), float(_676));
49
+ float2 _548 = fract((_458 + _477) * float2(123.4499969482421875, 345.670013427734375));
50
+ float2 _556 = _548 + float2(dot(_548, _548 + float2(45.31999969482421875)));
51
+ float _562 = fract(_556.x * _556.y);
52
+ float2 _494 = (_456 - _477) - float2(_562 - 0.5, fract(_562 * 45.0) - 0.5);
53
+ float _497 = fract(_562 * 1356.3299560546875);
54
+ float _499 = smoothstep(0.89999997615814208984375, 1.0, _497);
55
+ float _683;
56
+ do
57
+ {
58
+ float _575 = length(_494);
59
+ if (_575 >= 1.0)
60
+ {
61
+ _683 = 0.0;
62
+ break;
63
+ }
64
+ float _584 = (0.0500000007450580596923828125 * uStarGlow) / fast::max(_575, 9.9999997473787516355514526367188e-05);
65
+ float _682;
66
+ if (_499 > 0.0)
67
+ {
68
+ float _589 = _312 * (-0.565486729145050048828125);
69
+ float _640 = sin(_589);
70
+ float _642 = cos(_589);
71
+ float2 _592 = _494 * float2x2(float2(_642, -_640), float2(_640, _642));
72
+ float2 _610 = _592 * float2x2(float2(0.707106769084930419921875, -0.707106769084930419921875), float2(0.707106769084930419921875));
73
+ _682 = (_584 + (fast::max(0.0, 1.0 - abs((_592.x * _592.y) * 3000.0)) * _499)) + ((fast::max(0.0, 1.0 - abs((_610.x * _610.y) * 3000.0)) * 0.300000011920928955078125) * _499);
74
+ }
75
+ else
76
+ {
77
+ _682 = _584;
78
+ }
79
+ _683 = _682 * smoothstep(1.0, 0.0500000007450580596923828125, _575);
80
+ break;
81
+ } while(false);
82
+ _534 = _685 + (((((sin(float3(0.699999988079071044921875, 0.300000011920928955078125, 0.89999997615814208984375) * ((fract(_562 * 2150.0) * 9.424777984619140625) * _462)) * (0.4000000059604644775390625 * sin(_462))) + float3(0.60000002384185791015625)) * float3(1.0, 0.100000001490116119384765625, 0.89999997615814208984375 + _497)) * (_683 * _497)) * 1.875);
65
83
  }
66
84
  }
67
- _376 = _644 + (_647 * (_328 * smoothstep(0.100000001490116119384765625, 1.10000002384185791015625, _328)));
85
+ _385 = _674 + (_677 * (_337 * smoothstep(0.100000001490116119384765625, 1.10000002384185791015625, _337)));
68
86
  }
69
- out.oColor = float4(_644 * (uColor * uBrightness), 1.0);
87
+ out.oColor = float4(_674 * (uColor * uBrightness), 1.0);
70
88
  return out;
71
89
  }
72
90
 
@@ -16,57 +16,75 @@ struct main0_in
16
16
  fragment main0_out main0(main0_in in [[stage_in]], constant float& uStarGlow [[buffer(0)]], constant float& uTime [[buffer(1)]], constant float& uTwinkleSpeed [[buffer(2)]], constant float2& uResolution [[buffer(3)]], constant float& uSpeed [[buffer(4)]], constant float& uScale [[buffer(5)]], constant float& uBrightness [[buffer(6)]], constant float3& uColor [[buffer(7)]])
17
17
  {
18
18
  main0_out out = {};
19
- float _304 = (uTime * 0.00999999977648258209228515625) * uSpeed;
20
- float _308 = _304 * 0.0900000035762786865234375;
21
- float3 _644;
22
- float2 _645;
23
- _645 = ((in.vUv * uResolution) - (uResolution * 0.5)) / float2(uResolution.y);
24
- _644 = float3(0.0);
25
- float2 _357;
26
- float3 _376;
27
- for (int _643 = 0; _643 < 4; _645 = _357, _644 = _376, _643++)
19
+ float _313 = (uTime * 0.00999999977648258209228515625) * uSpeed;
20
+ float _317 = _313 * 0.0900000035762786865234375;
21
+ float3 _674;
22
+ float2 _675;
23
+ _675 = ((in.vUv * uResolution) - (uResolution * 0.5)) / float2(uResolution.y);
24
+ _674 = float3(0.0);
25
+ float2 _366;
26
+ float3 _385;
27
+ for (int _673 = 0; _673 < 4; _675 = _366, _674 = _385, _673++)
28
28
  {
29
- float _323 = float(_643) * 0.25;
30
- float _328 = fract(_323 + _304);
31
- float _352 = (_308 * _323) * (-10.0);
32
- float _401 = sin(_352);
33
- float _403 = cos(_352);
34
- _357 = _645 * float2x2(float2(_403, -_401), float2(_401, _403));
35
- float2 _367 = ((_357 * mix(3.0, 0.00999999977648258209228515625, _328)) * uScale) + float2(_323 * (3430.0 + fract(_323)));
36
- float2 _439 = fract(_367) - float2(0.5);
37
- float2 _441 = floor(_367);
38
- float _445 = (uTime * 0.3499999940395355224609375) * uTwinkleSpeed;
39
- int _646;
40
- float3 _647;
41
- _647 = float3(0.0);
42
- _646 = -1;
43
- float3 _652;
44
- for (; _646 <= 1; _647 = _652, _646++)
29
+ float _332 = float(_673) * 0.25;
30
+ float _337 = fract(_332 + _313);
31
+ float _361 = (_317 * _332) * (-10.0);
32
+ float _418 = sin(_361);
33
+ float _420 = cos(_361);
34
+ _366 = _675 * float2x2(float2(_420, -_418), float2(_418, _420));
35
+ float2 _376 = ((_366 * mix(3.0, 0.00999999977648258209228515625, _337)) * uScale) + float2(_332 * (3430.0 + fract(_332)));
36
+ float2 _456 = fract(_376) - float2(0.5);
37
+ float2 _458 = floor(_376);
38
+ float _462 = (uTime * 0.3499999940395355224609375) * uTwinkleSpeed;
39
+ float3 _677;
40
+ _677 = float3(0.0);
41
+ float3 _685;
42
+ for (int _676 = -1; _676 <= 1; _677 = _685, _676++)
45
43
  {
46
- _652 = _647;
47
- for (int _650 = -1; _650 <= 1; )
44
+ _685 = _677;
45
+ float3 _534;
46
+ for (int _680 = -1; _680 <= 1; _685 = _534, _680++)
48
47
  {
49
- float2 _460 = float2(float(_650), float(_646));
50
- float2 _531 = fract((_441 + _460) * float2(123.4499969482421875, 345.670013427734375));
51
- float2 _539 = _531 + float2(dot(_531, _531 + float2(45.31999969482421875)));
52
- float _545 = fract(_539.x * _539.y);
53
- float2 _477 = (_439 - _460) - float2(_545 - 0.5, fract(_545 * 45.0) - 0.5);
54
- float _480 = fract(_545 * 1356.3299560546875);
55
- float _482 = smoothstep(0.89999997615814208984375, 1.0, _480);
56
- float _555 = length(_477);
57
- float _562 = _304 * (-0.565486729145050048828125);
58
- float _610 = sin(_562);
59
- float _612 = cos(_562);
60
- float2 _565 = _477 * float2x2(float2(_612, -_610), float2(_610, _612));
61
- float2 _583 = _565 * float2x2(float2(0.707106769084930419921875, -0.707106769084930419921875), float2(0.707106769084930419921875));
62
- _652 += (((((sin(float3(0.699999988079071044921875, 0.300000011920928955078125, 0.89999997615814208984375) * ((fract(_545 * 2150.0) * 9.424777984619140625) * _445)) * (0.4000000059604644775390625 * sin(_445))) + float3(0.60000002384185791015625)) * float3(1.0, 0.100000001490116119384765625, 0.89999997615814208984375 + _480)) * ((((((0.0900000035762786865234375 * uStarGlow) / fast::max(_555, 9.9999997473787516355514526367188e-05)) + (fast::max(0.0, 1.0 - abs((_565.x * _565.y) * 3000.0)) * _482)) + ((fast::max(0.0, 1.0 - abs((_583.x * _583.y) * 3000.0)) * 0.300000011920928955078125) * _482)) * smoothstep(1.0, 0.0500000007450580596923828125, _555)) * _480)) * 3.75);
63
- _650++;
64
- continue;
48
+ float2 _477 = float2(float(_680), float(_676));
49
+ float2 _548 = fract((_458 + _477) * float2(123.4499969482421875, 345.670013427734375));
50
+ float2 _556 = _548 + float2(dot(_548, _548 + float2(45.31999969482421875)));
51
+ float _562 = fract(_556.x * _556.y);
52
+ float2 _494 = (_456 - _477) - float2(_562 - 0.5, fract(_562 * 45.0) - 0.5);
53
+ float _497 = fract(_562 * 1356.3299560546875);
54
+ float _499 = smoothstep(0.89999997615814208984375, 1.0, _497);
55
+ float _683;
56
+ do
57
+ {
58
+ float _575 = length(_494);
59
+ if (_575 >= 1.0)
60
+ {
61
+ _683 = 0.0;
62
+ break;
63
+ }
64
+ float _584 = (0.0900000035762786865234375 * uStarGlow) / fast::max(_575, 9.9999997473787516355514526367188e-05);
65
+ float _682;
66
+ if (_499 > 0.0)
67
+ {
68
+ float _589 = _313 * (-0.565486729145050048828125);
69
+ float _640 = sin(_589);
70
+ float _642 = cos(_589);
71
+ float2 _592 = _494 * float2x2(float2(_642, -_640), float2(_640, _642));
72
+ float2 _610 = _592 * float2x2(float2(0.707106769084930419921875, -0.707106769084930419921875), float2(0.707106769084930419921875));
73
+ _682 = (_584 + (fast::max(0.0, 1.0 - abs((_592.x * _592.y) * 3000.0)) * _499)) + ((fast::max(0.0, 1.0 - abs((_610.x * _610.y) * 3000.0)) * 0.300000011920928955078125) * _499);
74
+ }
75
+ else
76
+ {
77
+ _682 = _584;
78
+ }
79
+ _683 = _682 * smoothstep(1.0, 0.0500000007450580596923828125, _575);
80
+ break;
81
+ } while(false);
82
+ _534 = _685 + (((((sin(float3(0.699999988079071044921875, 0.300000011920928955078125, 0.89999997615814208984375) * ((fract(_562 * 2150.0) * 9.424777984619140625) * _462)) * (0.4000000059604644775390625 * sin(_462))) + float3(0.60000002384185791015625)) * float3(1.0, 0.100000001490116119384765625, 0.89999997615814208984375 + _497)) * (_683 * _497)) * 3.75);
65
83
  }
66
84
  }
67
- _376 = _644 + (_647 * (_328 * smoothstep(0.100000001490116119384765625, 1.10000002384185791015625, _328)));
85
+ _385 = _674 + (_677 * (_337 * smoothstep(0.100000001490116119384765625, 1.10000002384185791015625, _337)));
68
86
  }
69
- out.oColor = float4(_644 * (uColor * uBrightness), 1.0);
87
+ out.oColor = float4(_674 * (uColor * uBrightness), 1.0);
70
88
  return out;
71
89
  }
72
90
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-webrtc-kaleidoscope",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "description": "Live video effects (blur, background replacement, generative backgrounds, flip/rotate) for react-native-webrtc, packaged as a managed-Expo-friendly Expo Module. Working on web, Android, and iOS. Active development.",
5
5
  "keywords": [
6
6
  "react-native",
@@ -62,6 +62,13 @@
62
62
  "import": "./dist/src/nativewind.js",
63
63
  "default": "./dist/src/nativewind.js"
64
64
  },
65
+ "./persistence": {
66
+ "types": "./dist/src/persistence/index.d.ts",
67
+ "react-native": "./src/persistence/index.ts",
68
+ "browser": "./dist/src/persistence/index.js",
69
+ "import": "./dist/src/persistence/index.js",
70
+ "default": "./dist/src/persistence/index.js"
71
+ },
65
72
  "./livekit": {
66
73
  "types": "./dist/src/livekit.d.ts",
67
74
  "browser": "./dist/src/livekit.js",
@@ -553,12 +560,16 @@
553
560
  "@livekit/react-native-webrtc": ">=144.0.0",
554
561
  "livekit-client": ">=2.0.0",
555
562
  "nativewind": ">=4.0.0",
556
- "@react-native-community/slider": ">=4.5.0"
563
+ "@react-native-community/slider": ">=4.5.0",
564
+ "@react-native-async-storage/async-storage": ">=1.23.0"
557
565
  },
558
566
  "peerDependenciesMeta": {
559
567
  "@react-native-community/slider": {
560
568
  "optional": true
561
569
  },
570
+ "@react-native-async-storage/async-storage": {
571
+ "optional": true
572
+ },
562
573
  "nativewind": {
563
574
  "optional": true
564
575
  },
@@ -578,6 +589,7 @@
578
589
  "devDependencies": {
579
590
  "@biomejs/biome": "^2.4.13",
580
591
  "@expo/config-plugins": "~56.0.8",
592
+ "@react-native-async-storage/async-storage": "1.23.1",
581
593
  "@react-native-community/slider": "5.2.0",
582
594
  "@semantic-release/changelog": "^6.0.3",
583
595
  "@semantic-release/git": "^10.0.1",
@@ -17,6 +17,14 @@ export type PresetControlPanelProps<P extends KaleidoscopePresetBook> = {
17
17
  readonly value: (keyof P & string) | null;
18
18
  /** Routed to the host, which applies it via `kaleidoscope(value, [patch])`. */
19
19
  readonly onPatch: KaleidoscopeControls['onPatch'];
20
+ /**
21
+ * Per-layer uniform overrides (e.g. a persisted selection's stored patches)
22
+ * merged over the preset's baked uniforms when the forms seed. Seed-time
23
+ * only: the forms re-seed on a preset switch, not when this prop changes
24
+ * mid-mount, so hosts restoring persisted patches should mount the panel
25
+ * after hydration.
26
+ */
27
+ readonly patches?: KaleidoscopeControls['uniforms'];
20
28
  readonly disabled?: boolean;
21
29
  };
22
30
 
@@ -24,6 +32,7 @@ export function PresetControlPanel<P extends KaleidoscopePresetBook>({
24
32
  presets,
25
33
  value,
26
34
  onPatch,
35
+ patches,
27
36
  disabled = false,
28
37
  }: PresetControlPanelProps<P>): ReactElement | null {
29
38
  if (value === null) return null;
@@ -32,11 +41,15 @@ export function PresetControlPanel<P extends KaleidoscopePresetBook>({
32
41
  if (!Controls) return null;
33
42
 
34
43
  // Per-layer baked uniforms keyed by id, for the controls component to seed each
35
- // layer's ControlForm. Only tunable layers carry uniforms.
44
+ // layer's ControlForm. Only tunable layers carry uniforms; stored overrides
45
+ // merge over the baked values so restored tweaks appear in the forms.
36
46
  const uniforms: Record<string, Record<string, number | readonly number[]>> = {};
37
47
  for (const layer of preset.layers) {
38
48
  if ('uniforms' in layer) {
39
- uniforms[layer.id] = { ...layer.uniforms } as Record<string, number | readonly number[]>;
49
+ uniforms[layer.id] = {
50
+ ...layer.uniforms,
51
+ ...patches?.[layer.id],
52
+ } as Record<string, number | readonly number[]>;
40
53
  }
41
54
  }
42
55
 
@@ -102,10 +102,13 @@ export const createControls = <P extends KaleidoscopePresetBook>(
102
102
  // Switch the preset (or clear): rebuild. Drop every live override first so
103
103
  // a reused layer id (e.g. 'blur', shared by the low/medium/high blur
104
104
  // presets) takes the new preset's baked uniforms instead of carrying a
105
- // stale slider override across. A transform rebuild does NOT pass through
106
- // here, so slider tweaks survive flips/rotations of the active preset.
105
+ // stale slider override across. Patches given WITH the switch (e.g. a
106
+ // persisted selection's overrides) merge into the rebuilt stack itself,
107
+ // so they land on every platform, native included. A transform rebuild
108
+ // does NOT pass through here, so slider tweaks survive flips/rotations
109
+ // of the active preset.
107
110
  activeId = cmd;
108
- art = cmd == null ? null : compositeToEffectSpec(presets[cmd] as KaleidoscopePreset);
111
+ art = cmd == null ? null : compositeToEffectSpec(presets[cmd] as KaleidoscopePreset, patches);
109
112
  resetLayerUniforms();
110
113
  apply();
111
114
  },