gl-transitions 1.74.0 → 1.76.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 (389) hide show
  1. package/README.md +78 -0
  2. package/compatibility.json +2070 -0
  3. package/glsl3/AdvancedMosaic.glsl +21 -0
  4. package/glsl3/BlockDissolve.glsl +16 -0
  5. package/glsl3/BookFlip.glsl +37 -0
  6. package/glsl3/Bounce.glsl +35 -0
  7. package/glsl3/BowTieHorizontal.glsl +123 -0
  8. package/glsl3/BowTieVertical.glsl +117 -0
  9. package/glsl3/BowTieWithParameter.glsl +74 -0
  10. package/glsl3/Box.glsl +33 -0
  11. package/glsl3/ButterflyWaveScrawler.glsl +33 -0
  12. package/glsl3/CircleCrop.glsl +20 -0
  13. package/glsl3/ColourDistance.glsl +19 -0
  14. package/glsl3/CrazyParametricFun.glsl +20 -0
  15. package/glsl3/CrossZoom.glsl +68 -0
  16. package/glsl3/DefocusBlur.glsl +47 -0
  17. package/glsl3/Directional.glsl +18 -0
  18. package/glsl3/DirectionalScaled.glsl +35 -0
  19. package/glsl3/DoomScreenTransition.glsl +62 -0
  20. package/glsl3/Dreamy.glsl +14 -0
  21. package/glsl3/DreamyZoom.glsl +43 -0
  22. package/glsl3/Drop_Zone_Flicker.glsl +159 -0
  23. package/glsl3/EdgeTransition.glsl +50 -0
  24. package/glsl3/FilmBurn.glsl +63 -0
  25. package/glsl3/Fold.glsl +12 -0
  26. package/glsl3/GlitchDisplace.glsl +78 -0
  27. package/glsl3/GlitchMemories.glsl +17 -0
  28. package/glsl3/GridFlip.glsl +77 -0
  29. package/glsl3/HSVfade.glsl +29 -0
  30. package/glsl3/HorizontalClose.glsl +16 -0
  31. package/glsl3/HorizontalOpen.glsl +18 -0
  32. package/glsl3/InvertedPageCurl.glsl +228 -0
  33. package/glsl3/LeftRight.glsl +28 -0
  34. package/glsl3/LinearBlur.glsl +30 -0
  35. package/glsl3/Mosaic.glsl +45 -0
  36. package/glsl3/Overexposure.glsl +25 -0
  37. package/glsl3/PolkaDotsCurtain.glsl +14 -0
  38. package/glsl3/PuzzleRight.glsl +57 -0
  39. package/glsl3/Radial.glsl +19 -0
  40. package/glsl3/Rectangle.glsl +29 -0
  41. package/glsl3/RectangleCrop.glsl +30 -0
  42. package/glsl3/Revolve_Left.glsl +98 -0
  43. package/glsl3/Rolls.glsl +42 -0
  44. package/glsl3/RotateScaleVanish.glsl +42 -0
  45. package/glsl3/SimpleFlip.glsl +14 -0
  46. package/glsl3/SimpleZoom.glsl +20 -0
  47. package/glsl3/SimpleZoomOut.glsl +23 -0
  48. package/glsl3/Slides.glsl +41 -0
  49. package/glsl3/StarWipe.glsl +51 -0
  50. package/glsl3/StaticFade.glsl +47 -0
  51. package/glsl3/StereoViewer.glsl +214 -0
  52. package/glsl3/StripDatamoshGlitch.glsl +187 -0
  53. package/glsl3/Swirl.glsl +34 -0
  54. package/glsl3/TVStatic.glsl +29 -0
  55. package/glsl3/TilesWave.glsl +63 -0
  56. package/glsl3/TopBottom.glsl +27 -0
  57. package/glsl3/VerticalClose.glsl +16 -0
  58. package/glsl3/VerticalOpen.glsl +17 -0
  59. package/glsl3/WaterDrop.glsl +21 -0
  60. package/glsl3/ZoomInCircles.glsl +40 -0
  61. package/glsl3/ZoomLeftWipe.glsl +36 -0
  62. package/glsl3/ZoomRigthWipe.glsl +36 -0
  63. package/glsl3/angular.glsl +25 -0
  64. package/glsl3/burn.glsl +14 -0
  65. package/glsl3/burn0.glsl +55 -0
  66. package/glsl3/cannabisleaf.glsl +18 -0
  67. package/glsl3/chessboard.glsl +28 -0
  68. package/glsl3/circle.glsl +24 -0
  69. package/glsl3/circleopen.glsl +18 -0
  70. package/glsl3/colorphase.glsl +19 -0
  71. package/glsl3/coord-from-in.glsl +18 -0
  72. package/glsl3/crosshatch.glsl +20 -0
  73. package/glsl3/crosswarp.glsl +10 -0
  74. package/glsl3/cube.glsl +71 -0
  75. package/glsl3/directional-easing.glsl +19 -0
  76. package/glsl3/directionalwarp.glsl +20 -0
  77. package/glsl3/directionalwipe.glsl +22 -0
  78. package/glsl3/displacement.glsl +26 -0
  79. package/glsl3/dissolve.glsl +54 -0
  80. package/glsl3/doorway.glsl +55 -0
  81. package/glsl3/fade.glsl +13 -0
  82. package/glsl3/fadecolor.glsl +15 -0
  83. package/glsl3/fadegrayscale.glsl +21 -0
  84. package/glsl3/flyeye.glsl +20 -0
  85. package/glsl3/fragment.glsl +54 -0
  86. package/glsl3/heart.glsl +19 -0
  87. package/glsl3/hexagonalize.glsl +78 -0
  88. package/glsl3/kaleidoscope.glsl +25 -0
  89. package/glsl3/luma.glsl +15 -0
  90. package/glsl3/luminance_melt.glsl +131 -0
  91. package/glsl3/morph.glsl +20 -0
  92. package/glsl3/mosaic_transition.glsl +20 -0
  93. package/glsl3/multiply_blend.glsl +19 -0
  94. package/glsl3/old_tv_lost_signal.glsl +51 -0
  95. package/glsl3/parametric_glitch.glsl +29 -0
  96. package/glsl3/perlin.glsl +66 -0
  97. package/glsl3/pinwheel.glsl +20 -0
  98. package/glsl3/pixelize.glsl +21 -0
  99. package/glsl3/polar_function.glsl +24 -0
  100. package/glsl3/powerKaleido.glsl +57 -0
  101. package/glsl3/randomNoisex.glsl +15 -0
  102. package/glsl3/randomsquares.glsl +20 -0
  103. package/glsl3/ripple.glsl +20 -0
  104. package/glsl3/rotateTransition.glsl +22 -0
  105. package/glsl3/rotate_scale_fade.glsl +39 -0
  106. package/glsl3/scale-in.glsl +18 -0
  107. package/glsl3/splitSlideInHorizontal.glsl +26 -0
  108. package/glsl3/splitSlideInOutHorizontal.glsl +23 -0
  109. package/glsl3/splitSlideInOutVertical.glsl +23 -0
  110. package/glsl3/splitSlideInVertical.glsl +24 -0
  111. package/glsl3/splitSlideOutHorizontal.glsl +22 -0
  112. package/glsl3/splitSlideOutVertical.glsl +22 -0
  113. package/glsl3/squareswire.glsl +26 -0
  114. package/glsl3/squeeze.glsl +23 -0
  115. package/glsl3/static_wipe.glsl +39 -0
  116. package/glsl3/swap.glsl +64 -0
  117. package/glsl3/tangentMotionBlur.glsl +139 -0
  118. package/glsl3/undulatingBurnOut.glsl +56 -0
  119. package/glsl3/wind.glsl +25 -0
  120. package/glsl3/windowblinds.glsl +18 -0
  121. package/glsl3/windowslice.glsl +16 -0
  122. package/glsl3/wipeDown.glsl +12 -0
  123. package/glsl3/wipeLeft.glsl +12 -0
  124. package/glsl3/wipeRight.glsl +12 -0
  125. package/glsl3/wipeUp.glsl +12 -0
  126. package/glsl3/x_axis_translation.glsl +21 -0
  127. package/glsl3/zoomInOut.glsl +20 -0
  128. package/index.d.ts +61 -0
  129. package/layouts.json +2956 -0
  130. package/llms-full.txt +1707 -0
  131. package/llms.txt +153 -0
  132. package/msl/AdvancedMosaic.metal +136 -0
  133. package/msl/BlockDissolve.metal +108 -0
  134. package/msl/BookFlip.metal +191 -0
  135. package/msl/Bounce.metal +128 -0
  136. package/msl/BowTieHorizontal.metal +375 -0
  137. package/msl/BowTieVertical.metal +375 -0
  138. package/msl/BowTieWithParameter.metal +361 -0
  139. package/msl/Box.metal +204 -0
  140. package/msl/ButterflyWaveScrawler.metal +190 -0
  141. package/msl/CircleCrop.metal +117 -0
  142. package/msl/ColourDistance.metal +110 -0
  143. package/msl/CrazyParametricFun.metal +139 -0
  144. package/msl/CrossZoom.metal +274 -0
  145. package/msl/DefocusBlur.metal +297 -0
  146. package/msl/Directional.metal +107 -0
  147. package/msl/DirectionalScaled.metal +147 -0
  148. package/msl/DoomScreenTransition.metal +212 -0
  149. package/msl/Dreamy.metal +133 -0
  150. package/msl/DreamyZoom.metal +182 -0
  151. package/msl/Drop_Zone_Flicker.metal +561 -0
  152. package/msl/EdgeTransition.metal +277 -0
  153. package/msl/FilmBurn.metal +425 -0
  154. package/msl/Fold.metal +110 -0
  155. package/msl/GlitchDisplace.metal +374 -0
  156. package/msl/GlitchMemories.metal +146 -0
  157. package/msl/GridFlip.metal +285 -0
  158. package/msl/HSVfade.metal +161 -0
  159. package/msl/HorizontalClose.metal +100 -0
  160. package/msl/HorizontalOpen.metal +103 -0
  161. package/msl/InvertedPageCurl.metal +762 -0
  162. package/msl/LeftRight.metal +138 -0
  163. package/msl/LinearBlur.metal +169 -0
  164. package/msl/Mosaic.metal +212 -0
  165. package/msl/Overexposure.metal +130 -0
  166. package/msl/PolkaDotsCurtain.metal +112 -0
  167. package/msl/PuzzleRight.metal +262 -0
  168. package/msl/Radial.metal +102 -0
  169. package/msl/Rectangle.metal +129 -0
  170. package/msl/RectangleCrop.metal +127 -0
  171. package/msl/Revolve_Left.metal +363 -0
  172. package/msl/Rolls.metal +209 -0
  173. package/msl/RotateScaleVanish.metal +227 -0
  174. package/msl/SimpleFlip.metal +110 -0
  175. package/msl/SimpleZoom.metal +116 -0
  176. package/msl/SimpleZoomOut.metal +127 -0
  177. package/msl/Slides.metal +244 -0
  178. package/msl/StarWipe.metal +204 -0
  179. package/msl/StaticFade.metal +193 -0
  180. package/msl/StereoViewer.metal +707 -0
  181. package/msl/StripDatamoshGlitch.metal +828 -0
  182. package/msl/Swirl.metal +152 -0
  183. package/msl/TVStatic.metal +136 -0
  184. package/msl/TilesWave.metal +290 -0
  185. package/msl/TopBottom.metal +138 -0
  186. package/msl/VerticalClose.metal +100 -0
  187. package/msl/VerticalOpen.metal +103 -0
  188. package/msl/WaterDrop.metal +126 -0
  189. package/msl/ZoomInCircles.metal +169 -0
  190. package/msl/ZoomLeftWipe.metal +152 -0
  191. package/msl/ZoomRigthWipe.metal +152 -0
  192. package/msl/angular.metal +111 -0
  193. package/msl/burn.metal +103 -0
  194. package/msl/burn0.metal +236 -0
  195. package/msl/cannabisleaf.metal +120 -0
  196. package/msl/chessboard.metal +144 -0
  197. package/msl/circle.metal +115 -0
  198. package/msl/circleopen.metal +124 -0
  199. package/msl/colorphase.metal +106 -0
  200. package/msl/coord-from-in.metal +111 -0
  201. package/msl/crosshatch.metal +126 -0
  202. package/msl/crosswarp.metal +103 -0
  203. package/msl/cube.metal +259 -0
  204. package/msl/directional-easing.metal +111 -0
  205. package/msl/directionalwarp.metal +121 -0
  206. package/msl/directionalwipe.metal +120 -0
  207. package/msl/displacement.metal +129 -0
  208. package/msl/dissolve.metal +146 -0
  209. package/msl/doorway.metal +210 -0
  210. package/msl/fade.metal +95 -0
  211. package/msl/fadecolor.metal +104 -0
  212. package/msl/fadegrayscale.metal +123 -0
  213. package/msl/flyeye.metal +133 -0
  214. package/msl/fragment.metal +276 -0
  215. package/msl/heart.metal +134 -0
  216. package/msl/hexagonalize.metal +274 -0
  217. package/msl/kaleidoscope.metal +157 -0
  218. package/msl/luma.metal +113 -0
  219. package/msl/luminance_melt.metal +337 -0
  220. package/msl/morph.metal +131 -0
  221. package/msl/mosaic_transition.metal +137 -0
  222. package/msl/multiply_blend.metal +127 -0
  223. package/msl/old_tv_lost_signal.metal +172 -0
  224. package/msl/parametric_glitch.metal +152 -0
  225. package/msl/perlin.metal +206 -0
  226. package/msl/pinwheel.metal +112 -0
  227. package/msl/pixelize.metal +134 -0
  228. package/msl/polar_function.metal +116 -0
  229. package/msl/powerKaleido.metal +304 -0
  230. package/msl/randomNoisex.metal +115 -0
  231. package/msl/randomsquares.metal +118 -0
  232. package/msl/ripple.metal +113 -0
  233. package/msl/rotateTransition.metal +116 -0
  234. package/msl/rotate_scale_fade.metal +167 -0
  235. package/msl/scale-in.metal +111 -0
  236. package/msl/splitSlideInHorizontal.metal +147 -0
  237. package/msl/splitSlideInOutHorizontal.metal +138 -0
  238. package/msl/splitSlideInOutVertical.metal +138 -0
  239. package/msl/splitSlideInVertical.metal +144 -0
  240. package/msl/splitSlideOutHorizontal.metal +131 -0
  241. package/msl/splitSlideOutVertical.metal +131 -0
  242. package/msl/squareswire.metal +144 -0
  243. package/msl/squeeze.metal +133 -0
  244. package/msl/static_wipe.metal +147 -0
  245. package/msl/swap.metal +256 -0
  246. package/msl/tangentMotionBlur.metal +583 -0
  247. package/msl/undulatingBurnOut.metal +217 -0
  248. package/msl/wind.metal +131 -0
  249. package/msl/windowblinds.metal +107 -0
  250. package/msl/windowslice.metal +108 -0
  251. package/msl/wipeDown.metal +105 -0
  252. package/msl/wipeLeft.metal +105 -0
  253. package/msl/wipeRight.metal +105 -0
  254. package/msl/wipeUp.metal +105 -0
  255. package/msl/x_axis_translation.metal +110 -0
  256. package/msl/zoomInOut.metal +125 -0
  257. package/package.json +1 -1
  258. package/skills/gl-transitions/SKILL.md +46 -0
  259. package/skills/gl-transitions/references/catalog.md +224 -0
  260. package/skills/gl-transitions/references/skia.md +118 -0
  261. package/skills/gl-transitions/references/video.md +71 -0
  262. package/skills/gl-transitions/references/webgl.md +122 -0
  263. package/sksl/index.d.ts +4 -0
  264. package/sksl/index.js +1 -0
  265. package/wgsl/AdvancedMosaic.wgsl +108 -0
  266. package/wgsl/BlockDissolve.wgsl +78 -0
  267. package/wgsl/BookFlip.wgsl +157 -0
  268. package/wgsl/Bounce.wgsl +98 -0
  269. package/wgsl/BowTieHorizontal.wgsl +331 -0
  270. package/wgsl/BowTieVertical.wgsl +331 -0
  271. package/wgsl/BowTieWithParameter.wgsl +313 -0
  272. package/wgsl/Box.wgsl +176 -0
  273. package/wgsl/ButterflyWaveScrawler.wgsl +158 -0
  274. package/wgsl/CircleCrop.wgsl +88 -0
  275. package/wgsl/ColourDistance.wgsl +82 -0
  276. package/wgsl/CrazyParametricFun.wgsl +111 -0
  277. package/wgsl/CrossZoom.wgsl +219 -0
  278. package/wgsl/DefocusBlur.wgsl +269 -0
  279. package/wgsl/Directional.wgsl +79 -0
  280. package/wgsl/DirectionalScaled.wgsl +117 -0
  281. package/wgsl/DoomScreenTransition.wgsl +171 -0
  282. package/wgsl/Dreamy.wgsl +102 -0
  283. package/wgsl/DreamyZoom.wgsl +154 -0
  284. package/wgsl/Drop_Zone_Flicker.wgsl +513 -0
  285. package/wgsl/EdgeTransition.wgsl +216 -0
  286. package/wgsl/FilmBurn.wgsl +361 -0
  287. package/wgsl/Fold.wgsl +82 -0
  288. package/wgsl/GlitchDisplace.wgsl +327 -0
  289. package/wgsl/GlitchMemories.wgsl +118 -0
  290. package/wgsl/GridFlip.wgsl +250 -0
  291. package/wgsl/HSVfade.wgsl +131 -0
  292. package/wgsl/HorizontalClose.wgsl +72 -0
  293. package/wgsl/HorizontalOpen.wgsl +75 -0
  294. package/wgsl/InvertedPageCurl.wgsl +690 -0
  295. package/wgsl/LeftRight.wgsl +109 -0
  296. package/wgsl/LinearBlur.wgsl +131 -0
  297. package/wgsl/Mosaic.wgsl +174 -0
  298. package/wgsl/Overexposure.wgsl +102 -0
  299. package/wgsl/PolkaDotsCurtain.wgsl +83 -0
  300. package/wgsl/PuzzleRight.wgsl +230 -0
  301. package/wgsl/Radial.wgsl +74 -0
  302. package/wgsl/Rectangle.wgsl +100 -0
  303. package/wgsl/RectangleCrop.wgsl +98 -0
  304. package/wgsl/Revolve_Left.wgsl +314 -0
  305. package/wgsl/Rolls.wgsl +181 -0
  306. package/wgsl/RotateScaleVanish.wgsl +199 -0
  307. package/wgsl/SimpleFlip.wgsl +82 -0
  308. package/wgsl/SimpleZoom.wgsl +85 -0
  309. package/wgsl/SimpleZoomOut.wgsl +96 -0
  310. package/wgsl/Slides.wgsl +216 -0
  311. package/wgsl/StarWipe.wgsl +169 -0
  312. package/wgsl/StaticFade.wgsl +159 -0
  313. package/wgsl/StereoViewer.wgsl +625 -0
  314. package/wgsl/StripDatamoshGlitch.wgsl +755 -0
  315. package/wgsl/Swirl.wgsl +124 -0
  316. package/wgsl/TVStatic.wgsl +106 -0
  317. package/wgsl/TilesWave.wgsl +262 -0
  318. package/wgsl/TopBottom.wgsl +109 -0
  319. package/wgsl/VerticalClose.wgsl +72 -0
  320. package/wgsl/VerticalOpen.wgsl +75 -0
  321. package/wgsl/WaterDrop.wgsl +98 -0
  322. package/wgsl/ZoomInCircles.wgsl +138 -0
  323. package/wgsl/ZoomLeftWipe.wgsl +121 -0
  324. package/wgsl/ZoomRigthWipe.wgsl +121 -0
  325. package/wgsl/angular.wgsl +83 -0
  326. package/wgsl/burn.wgsl +74 -0
  327. package/wgsl/burn0.wgsl +198 -0
  328. package/wgsl/cannabisleaf.wgsl +92 -0
  329. package/wgsl/chessboard.wgsl +116 -0
  330. package/wgsl/circle.wgsl +87 -0
  331. package/wgsl/circleopen.wgsl +96 -0
  332. package/wgsl/colorphase.wgsl +77 -0
  333. package/wgsl/coord-from-in.wgsl +83 -0
  334. package/wgsl/crosshatch.wgsl +96 -0
  335. package/wgsl/crosswarp.wgsl +75 -0
  336. package/wgsl/cube.wgsl +217 -0
  337. package/wgsl/directional-easing.wgsl +83 -0
  338. package/wgsl/directionalwarp.wgsl +92 -0
  339. package/wgsl/directionalwipe.wgsl +91 -0
  340. package/wgsl/displacement.wgsl +96 -0
  341. package/wgsl/dissolve.wgsl +116 -0
  342. package/wgsl/doorway.wgsl +174 -0
  343. package/wgsl/fade.wgsl +67 -0
  344. package/wgsl/fadecolor.wgsl +75 -0
  345. package/wgsl/fadegrayscale.wgsl +93 -0
  346. package/wgsl/flyeye.wgsl +105 -0
  347. package/wgsl/fragment.wgsl +227 -0
  348. package/wgsl/heart.wgsl +103 -0
  349. package/wgsl/hexagonalize.wgsl +238 -0
  350. package/wgsl/kaleidoscope.wgsl +124 -0
  351. package/wgsl/luma.wgsl +80 -0
  352. package/wgsl/luminance_melt.wgsl +299 -0
  353. package/wgsl/morph.wgsl +103 -0
  354. package/wgsl/mosaic_transition.wgsl +107 -0
  355. package/wgsl/multiply_blend.wgsl +96 -0
  356. package/wgsl/old_tv_lost_signal.wgsl +142 -0
  357. package/wgsl/parametric_glitch.wgsl +124 -0
  358. package/wgsl/perlin.wgsl +174 -0
  359. package/wgsl/pinwheel.wgsl +84 -0
  360. package/wgsl/pixelize.wgsl +105 -0
  361. package/wgsl/polar_function.wgsl +88 -0
  362. package/wgsl/powerKaleido.wgsl +254 -0
  363. package/wgsl/randomNoisex.wgsl +85 -0
  364. package/wgsl/randomsquares.wgsl +87 -0
  365. package/wgsl/ripple.wgsl +85 -0
  366. package/wgsl/rotateTransition.wgsl +85 -0
  367. package/wgsl/rotate_scale_fade.wgsl +138 -0
  368. package/wgsl/scale-in.wgsl +79 -0
  369. package/wgsl/splitSlideInHorizontal.wgsl +118 -0
  370. package/wgsl/splitSlideInOutHorizontal.wgsl +109 -0
  371. package/wgsl/splitSlideInOutVertical.wgsl +109 -0
  372. package/wgsl/splitSlideInVertical.wgsl +115 -0
  373. package/wgsl/splitSlideOutHorizontal.wgsl +102 -0
  374. package/wgsl/splitSlideOutVertical.wgsl +102 -0
  375. package/wgsl/squareswire.wgsl +115 -0
  376. package/wgsl/squeeze.wgsl +105 -0
  377. package/wgsl/static_wipe.wgsl +117 -0
  378. package/wgsl/swap.wgsl +218 -0
  379. package/wgsl/tangentMotionBlur.wgsl +503 -0
  380. package/wgsl/undulatingBurnOut.wgsl +181 -0
  381. package/wgsl/wind.wgsl +101 -0
  382. package/wgsl/windowblinds.wgsl +79 -0
  383. package/wgsl/windowslice.wgsl +80 -0
  384. package/wgsl/wipeDown.wgsl +77 -0
  385. package/wgsl/wipeLeft.wgsl +77 -0
  386. package/wgsl/wipeRight.wgsl +77 -0
  387. package/wgsl/wipeUp.wgsl +77 -0
  388. package/wgsl/x_axis_translation.wgsl +82 -0
  389. package/wgsl/zoomInOut.wgsl +94 -0
@@ -0,0 +1,828 @@
1
+ // StripDatamoshGlitch — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/StripDatamoshGlitch.glsl
2
+ // Author: bread
3
+ // License: MIT
4
+ // Description: A datamosh glitch: torn strips, chroma shifts and scan noise drag the outgoing image into the incoming one
5
+ // Bindings and uniform layout: see the gl-transitions package README
6
+
7
+ // language: metal1.0
8
+ #include <metal_stdlib>
9
+ #include <simd/simd.h>
10
+
11
+ using metal::uint;
12
+
13
+ struct Uniforms {
14
+ float progress;
15
+ float ratio;
16
+ float strength;
17
+ float horizontalBars;
18
+ float verticalSlits;
19
+ float tear;
20
+ float chroma;
21
+ float residue;
22
+ float noiseAmount;
23
+ float scanAmount;
24
+ float flashAmount;
25
+ };
26
+
27
+ float hash_u0028_vf2_u003b(
28
+ thread metal::float2& p
29
+ ) {
30
+ metal::float2 _e107 = p;
31
+ return metal::fract(metal::sin(metal::dot(_e107, metal::float2(127.1, 311.7))) * 43758.547);
32
+ }
33
+
34
+ float stripeY(
35
+ thread metal::float2& uv,
36
+ thread float& density,
37
+ thread float& seed,
38
+ thread float& minWidth,
39
+ thread float& maxWidth
40
+ ) {
41
+ float y = {};
42
+ float id = {};
43
+ float f = {};
44
+ float c = {};
45
+ metal::float2 param = {};
46
+ float w = {};
47
+ metal::float2 param_1 = {};
48
+ float _e119 = uv[1u];
49
+ float _e120 = density;
50
+ float _e122 = seed;
51
+ y = (_e119 * _e120) + (_e122 * 0.137);
52
+ float _e125 = y;
53
+ id = metal::floor(_e125);
54
+ float _e127 = y;
55
+ f = metal::fract(_e127);
56
+ float _e129 = id;
57
+ float _e130 = seed;
58
+ param = metal::float2(_e129, _e130);
59
+ float _e132 = hash_u0028_vf2_u003b(param);
60
+ c = _e132;
61
+ float _e133 = minWidth;
62
+ float _e134 = maxWidth;
63
+ float _e135 = id;
64
+ float _e137 = seed;
65
+ param_1 = metal::float2(_e135 + 9.17, _e137 + 2.31);
66
+ float _e140 = hash_u0028_vf2_u003b(param_1);
67
+ w = metal::mix(_e133, _e134, _e140);
68
+ float _e142 = w;
69
+ float _e143 = w;
70
+ float _e145 = f;
71
+ float _e146 = c;
72
+ return 1.0 - metal::smoothstep(_e142, _e143 + 0.018, metal::abs(_e145 - _e146));
73
+ }
74
+
75
+ metal::float4 getToColor(
76
+ thread metal::float2& uv_1,
77
+ metal::sampler _sampler,
78
+ metal::texture2d<float, metal::access::sample> _to
79
+ ) {
80
+ float _e108 = uv_1[0u];
81
+ float _e110 = uv_1[1u];
82
+ metal::float4 _e113 = _to.sample(_sampler, metal::float2(_e108, 1.0 - _e110), metal::level(0.0));
83
+ return _e113;
84
+ }
85
+
86
+ metal::float2 safeUv(
87
+ thread metal::float2& uv_2
88
+ ) {
89
+ metal::float2 _e107 = uv_2;
90
+ return metal::clamp(_e107, metal::float2(0.0, 0.0), metal::float2(1.0, 1.0));
91
+ }
92
+
93
+ metal::float4 chromaTo(
94
+ thread metal::float2& uv_3,
95
+ thread metal::float2& s,
96
+ metal::sampler _sampler,
97
+ metal::texture2d<float, metal::access::sample> _to
98
+ ) {
99
+ metal::float2 param_2 = {};
100
+ metal::float2 param_3 = {};
101
+ metal::float2 param_4 = {};
102
+ metal::float2 param_5 = {};
103
+ metal::float2 param_6 = {};
104
+ metal::float2 param_7 = {};
105
+ metal::float2 _e114 = uv_3;
106
+ param_2 = _e114;
107
+ metal::float2 _e115 = safeUv(param_2);
108
+ uv_3 = _e115;
109
+ metal::float2 _e116 = uv_3;
110
+ metal::float2 _e117 = s;
111
+ param_3 = _e116 - _e117;
112
+ metal::float2 _e119 = safeUv(param_3);
113
+ param_4 = _e119;
114
+ metal::float4 _e120 = getToColor(param_4, _sampler, _to);
115
+ metal::float2 _e122 = uv_3;
116
+ param_5 = _e122;
117
+ metal::float4 _e123 = getToColor(param_5, _sampler, _to);
118
+ metal::float2 _e125 = uv_3;
119
+ metal::float2 _e126 = s;
120
+ param_6 = _e125 + _e126;
121
+ metal::float2 _e128 = safeUv(param_6);
122
+ param_7 = _e128;
123
+ metal::float4 _e129 = getToColor(param_7, _sampler, _to);
124
+ return metal::float4(_e120.x, _e123.y, _e129.z, 1.0);
125
+ }
126
+
127
+ metal::float4 getFromColor(
128
+ thread metal::float2& uv_4,
129
+ metal::texture2d<float, metal::access::sample> _from,
130
+ metal::sampler _sampler
131
+ ) {
132
+ float _e108 = uv_4[0u];
133
+ float _e110 = uv_4[1u];
134
+ metal::float4 _e113 = _from.sample(_sampler, metal::float2(_e108, 1.0 - _e110), metal::level(0.0));
135
+ return _e113;
136
+ }
137
+
138
+ metal::float4 chromaFrom(
139
+ thread metal::float2& uv_5,
140
+ thread metal::float2& s_1,
141
+ metal::texture2d<float, metal::access::sample> _from,
142
+ metal::sampler _sampler
143
+ ) {
144
+ metal::float2 param_8 = {};
145
+ metal::float2 param_9 = {};
146
+ metal::float2 param_10 = {};
147
+ metal::float2 param_11 = {};
148
+ metal::float2 param_12 = {};
149
+ metal::float2 param_13 = {};
150
+ metal::float2 _e114 = uv_5;
151
+ param_8 = _e114;
152
+ metal::float2 _e115 = safeUv(param_8);
153
+ uv_5 = _e115;
154
+ metal::float2 _e116 = uv_5;
155
+ metal::float2 _e117 = s_1;
156
+ param_9 = _e116 + _e117;
157
+ metal::float2 _e119 = safeUv(param_9);
158
+ param_10 = _e119;
159
+ metal::float4 _e120 = getFromColor(param_10, _from, _sampler);
160
+ metal::float2 _e122 = uv_5;
161
+ param_11 = _e122;
162
+ metal::float4 _e123 = getFromColor(param_11, _from, _sampler);
163
+ metal::float2 _e125 = uv_5;
164
+ metal::float2 _e126 = s_1;
165
+ param_12 = _e125 - _e126;
166
+ metal::float2 _e128 = safeUv(param_12);
167
+ param_13 = _e128;
168
+ metal::float4 _e129 = getFromColor(param_13, _from, _sampler);
169
+ return metal::float4(_e120.x, _e123.y, _e129.z, 1.0);
170
+ }
171
+
172
+ metal::float2 distortUv(
173
+ thread metal::float2& uv_6,
174
+ thread float& dir,
175
+ thread float& b,
176
+ thread float& h,
177
+ thread float& v,
178
+ thread float& frame,
179
+ constant Uniforms& uniforms
180
+ ) {
181
+ float row = {};
182
+ float col = {};
183
+ float rowRnd = {};
184
+ metal::float2 param_14 = {};
185
+ float colRnd = {};
186
+ metal::float2 param_15 = {};
187
+ float xTear = {};
188
+ float yDrag = {};
189
+ float micro = {};
190
+ metal::float2 param_16 = {};
191
+ float _e123 = uv_6[1u];
192
+ float _e125 = uniforms.horizontalBars;
193
+ row = metal::floor(_e123 * _e125);
194
+ float _e129 = uv_6[0u];
195
+ float _e131 = uniforms.verticalSlits;
196
+ col = metal::floor(_e129 * _e131);
197
+ float _e134 = row;
198
+ float _e135 = frame;
199
+ param_14 = metal::float2(_e134, _e135);
200
+ float _e137 = hash_u0028_vf2_u003b(param_14);
201
+ rowRnd = _e137;
202
+ float _e138 = col;
203
+ float _e139 = frame;
204
+ param_15 = metal::float2(_e138, _e139 + 27.0);
205
+ float _e142 = hash_u0028_vf2_u003b(param_15);
206
+ colRnd = _e142;
207
+ float _e143 = rowRnd;
208
+ float _e147 = uniforms.tear;
209
+ float _e149 = b;
210
+ float _e151 = h;
211
+ xTear = ((((_e143 - 0.5) * 2.0) * _e147) * _e149) * _e151;
212
+ float _e154 = uv_6[1u];
213
+ float _e157 = uniforms.progress;
214
+ float _e162 = b;
215
+ float _e164 = xTear;
216
+ xTear = _e164 + ((metal::sin((_e154 * 120.0) + (_e157 * 95.0)) * 0.006) * _e162);
217
+ float _e166 = colRnd;
218
+ float _e169 = b;
219
+ float _e171 = v;
220
+ yDrag = (((_e166 - 0.5) * 0.13) * _e169) * _e171;
221
+ float _e173 = row;
222
+ float _e174 = col;
223
+ float _e175 = frame;
224
+ param_16 = metal::float2(_e173, _e174 + _e175);
225
+ float _e178 = hash_u0028_vf2_u003b(param_16);
226
+ float _e181 = b;
227
+ float _e183 = h;
228
+ float _e184 = v;
229
+ micro = (((_e178 - 0.5) * 0.018) * _e181) * metal::max(_e183, _e184);
230
+ metal::float2 _e187 = uv_6;
231
+ float _e188 = xTear;
232
+ float _e189 = dir;
233
+ float _e191 = micro;
234
+ float _e193 = yDrag;
235
+ return _e187 + metal::float2((_e188 * _e189) + _e191, _e193);
236
+ }
237
+
238
+ float sat(
239
+ thread float& v_1
240
+ ) {
241
+ float _e107 = v_1;
242
+ return metal::clamp(_e107, 0.0, 1.0);
243
+ }
244
+
245
+ float stripeX(
246
+ thread metal::float2& uv_7,
247
+ thread float& density_1,
248
+ thread float& seed_1,
249
+ thread float& minWidth_1,
250
+ thread float& maxWidth_1
251
+ ) {
252
+ float x = {};
253
+ float id_1 = {};
254
+ float f_1 = {};
255
+ float c_1 = {};
256
+ metal::float2 param_17 = {};
257
+ float w_1 = {};
258
+ metal::float2 param_18 = {};
259
+ float _e119 = uv_7[0u];
260
+ float _e120 = density_1;
261
+ float _e122 = seed_1;
262
+ x = (_e119 * _e120) + (_e122 * 0.091);
263
+ float _e125 = x;
264
+ id_1 = metal::floor(_e125);
265
+ float _e127 = x;
266
+ f_1 = metal::fract(_e127);
267
+ float _e129 = id_1;
268
+ float _e130 = seed_1;
269
+ param_17 = metal::float2(_e129, _e130 + 41.0);
270
+ float _e133 = hash_u0028_vf2_u003b(param_17);
271
+ c_1 = _e133;
272
+ float _e134 = minWidth_1;
273
+ float _e135 = maxWidth_1;
274
+ float _e136 = id_1;
275
+ float _e138 = seed_1;
276
+ param_18 = metal::float2(_e136 + 4.7, _e138 + 8.9);
277
+ float _e141 = hash_u0028_vf2_u003b(param_18);
278
+ w_1 = metal::mix(_e134, _e135, _e141);
279
+ float _e143 = w_1;
280
+ float _e144 = w_1;
281
+ float _e146 = f_1;
282
+ float _e147 = c_1;
283
+ return 1.0 - metal::smoothstep(_e143, _e144 + 0.012, metal::abs(_e146 - _e147));
284
+ }
285
+
286
+ float hash_u0028_f1_u003b(
287
+ thread float& n
288
+ ) {
289
+ float _e107 = n;
290
+ return metal::fract(metal::sin(_e107) * 43758.547);
291
+ }
292
+
293
+ float verticalMask(
294
+ thread metal::float2& uv_8,
295
+ thread float& frame_1,
296
+ constant Uniforms& uniforms
297
+ ) {
298
+ float col_1 = {};
299
+ float param_19 = {};
300
+ float slit = {};
301
+ metal::float2 param_20 = {};
302
+ float param_21 = {};
303
+ float param_22 = {};
304
+ float param_23 = {};
305
+ float param_24 = {};
306
+ metal::float2 param_25 = {};
307
+ float param_26 = {};
308
+ float _e119 = uv_8[0u];
309
+ float _e120 = frame_1;
310
+ param_19 = _e120 + 12.0;
311
+ float _e122 = hash_u0028_f1_u003b(param_19);
312
+ float _e126 = uniforms.verticalSlits;
313
+ col_1 = metal::floor((_e119 + (_e122 * 0.017)) * _e126);
314
+ float _e129 = frame_1;
315
+ metal::float2 _e131 = uv_8;
316
+ param_20 = _e131;
317
+ float _e133 = uniforms.verticalSlits;
318
+ param_21 = _e133;
319
+ param_22 = _e129 + 13.0;
320
+ param_23 = 0.01;
321
+ param_24 = 0.075;
322
+ float _e134 = stripeX(param_20, param_21, param_22, param_23, param_24);
323
+ slit = _e134;
324
+ float _e135 = col_1;
325
+ float _e136 = frame_1;
326
+ param_25 = metal::float2(_e135, _e136 + 19.0);
327
+ float _e139 = hash_u0028_vf2_u003b(param_25);
328
+ float _e141 = slit;
329
+ slit = _e141 * metal::step(0.66, _e139);
330
+ float _e143 = slit;
331
+ param_26 = _e143;
332
+ float _e144 = sat(param_26);
333
+ return _e144;
334
+ }
335
+
336
+ float brokenGate(
337
+ thread metal::float2& uv_9,
338
+ thread float& row_1,
339
+ thread float& rnd,
340
+ thread float& frame_2
341
+ ) {
342
+ float segs = {};
343
+ metal::float2 param_27 = {};
344
+ float seg = {};
345
+ metal::float2 param_28 = {};
346
+ float _e114 = row_1;
347
+ float _e115 = frame_2;
348
+ param_27 = metal::float2(_e114, _e115 + 44.0);
349
+ float _e118 = hash_u0028_vf2_u003b(param_27);
350
+ segs = metal::mix(1.0, 9.0, _e118);
351
+ float _e121 = uv_9[0u];
352
+ float _e122 = segs;
353
+ seg = metal::floor(_e121 * _e122);
354
+ float _e125 = seg;
355
+ float _e126 = row_1;
356
+ float _e127 = frame_2;
357
+ float _e130 = rnd;
358
+ param_28 = metal::float2(_e125, (_e126 + (_e127 * 3.0)) + _e130);
359
+ float _e133 = hash_u0028_vf2_u003b(param_28);
360
+ return metal::step(0.16, _e133);
361
+ }
362
+
363
+ float horizontalMask(
364
+ thread metal::float2& uv_10,
365
+ thread float& frame_3,
366
+ constant Uniforms& uniforms
367
+ ) {
368
+ float r1_ = {};
369
+ float param_29 = {};
370
+ float r2_ = {};
371
+ float param_30 = {};
372
+ float r3_ = {};
373
+ float param_31 = {};
374
+ float thick = {};
375
+ metal::float2 param_32 = {};
376
+ float param_33 = {};
377
+ float param_34 = {};
378
+ float param_35 = {};
379
+ float param_36 = {};
380
+ float mid = {};
381
+ metal::float2 param_37 = {};
382
+ float param_38 = {};
383
+ float param_39 = {};
384
+ float param_40 = {};
385
+ float param_41 = {};
386
+ float hair = {};
387
+ metal::float2 param_42 = {};
388
+ float param_43 = {};
389
+ float param_44 = {};
390
+ float param_45 = {};
391
+ float param_46 = {};
392
+ metal::float2 param_47 = {};
393
+ metal::float2 param_48 = {};
394
+ metal::float2 param_49 = {};
395
+ metal::float2 param_50 = {};
396
+ metal::float2 param_51 = {};
397
+ float param_52 = {};
398
+ float param_53 = {};
399
+ float param_54 = {};
400
+ metal::float2 param_55 = {};
401
+ metal::float2 param_56 = {};
402
+ float param_57 = {};
403
+ float param_58 = {};
404
+ float param_59 = {};
405
+ float param_60 = {};
406
+ float _e147 = uv_10[1u];
407
+ float _e148 = frame_3;
408
+ param_29 = _e148;
409
+ float _e149 = hash_u0028_f1_u003b(param_29);
410
+ float _e153 = uniforms.horizontalBars;
411
+ r1_ = metal::floor(((_e147 + (_e149 * 0.031)) * _e153) * 0.38);
412
+ float _e158 = uv_10[1u];
413
+ float _e159 = frame_3;
414
+ param_30 = _e159 + 2.0;
415
+ float _e161 = hash_u0028_f1_u003b(param_30);
416
+ float _e165 = uniforms.horizontalBars;
417
+ r2_ = metal::floor((_e158 + (_e161 * 0.013)) * _e165);
418
+ float _e169 = uv_10[1u];
419
+ float _e170 = frame_3;
420
+ param_31 = _e170 + 7.0;
421
+ float _e172 = hash_u0028_f1_u003b(param_31);
422
+ float _e176 = uniforms.horizontalBars;
423
+ r3_ = metal::floor(((_e169 + (_e172 * 0.006)) * _e176) * 3.4);
424
+ float _e181 = uniforms.horizontalBars;
425
+ float _e183 = frame_3;
426
+ metal::float2 _e185 = uv_10;
427
+ param_32 = _e185;
428
+ param_33 = _e181 * 0.38;
429
+ param_34 = _e183 + 1.0;
430
+ param_35 = 0.035;
431
+ param_36 = 0.22;
432
+ float _e186 = stripeY(param_32, param_33, param_34, param_35, param_36);
433
+ thick = _e186;
434
+ float _e187 = frame_3;
435
+ metal::float2 _e189 = uv_10;
436
+ param_37 = _e189;
437
+ float _e191 = uniforms.horizontalBars;
438
+ param_38 = _e191;
439
+ param_39 = _e187 + 4.0;
440
+ param_40 = 0.014;
441
+ param_41 = 0.11;
442
+ float _e192 = stripeY(param_37, param_38, param_39, param_40, param_41);
443
+ mid = _e192;
444
+ float _e194 = uniforms.horizontalBars;
445
+ float _e196 = frame_3;
446
+ metal::float2 _e198 = uv_10;
447
+ param_42 = _e198;
448
+ param_43 = _e194 * 3.4;
449
+ param_44 = _e196 + 9.0;
450
+ param_45 = 0.004;
451
+ param_46 = 0.035;
452
+ float _e199 = stripeY(param_42, param_43, param_44, param_45, param_46);
453
+ hair = _e199;
454
+ float _e200 = r1_;
455
+ float _e201 = frame_3;
456
+ param_47 = metal::float2(_e200, _e201 + 10.0);
457
+ float _e204 = hash_u0028_vf2_u003b(param_47);
458
+ float _e206 = thick;
459
+ thick = _e206 * metal::step(0.42, _e204);
460
+ float _e208 = r2_;
461
+ float _e209 = frame_3;
462
+ param_48 = metal::float2(_e208, _e209 + 20.0);
463
+ float _e212 = hash_u0028_vf2_u003b(param_48);
464
+ float _e214 = mid;
465
+ mid = _e214 * metal::step(0.48, _e212);
466
+ float _e216 = r3_;
467
+ float _e217 = frame_3;
468
+ param_49 = metal::float2(_e216, _e217 + 30.0);
469
+ float _e220 = hash_u0028_vf2_u003b(param_49);
470
+ float _e222 = hair;
471
+ hair = _e222 * metal::step(0.62, _e220);
472
+ float _e224 = r1_;
473
+ float _e225 = frame_3;
474
+ param_50 = metal::float2(_e224, _e225);
475
+ float _e227 = hash_u0028_vf2_u003b(param_50);
476
+ metal::float2 _e228 = uv_10;
477
+ param_51 = _e228;
478
+ float _e229 = r1_;
479
+ param_52 = _e229;
480
+ param_53 = _e227;
481
+ float _e230 = frame_3;
482
+ param_54 = _e230;
483
+ float _e231 = brokenGate(param_51, param_52, param_53, param_54);
484
+ float _e232 = thick;
485
+ thick = _e232 * _e231;
486
+ float _e234 = r2_;
487
+ float _e235 = frame_3;
488
+ param_55 = metal::float2(_e234, _e235);
489
+ float _e237 = hash_u0028_vf2_u003b(param_55);
490
+ float _e238 = frame_3;
491
+ metal::float2 _e240 = uv_10;
492
+ param_56 = _e240;
493
+ float _e241 = r2_;
494
+ param_57 = _e241;
495
+ param_58 = _e237;
496
+ param_59 = _e238 + 3.0;
497
+ float _e242 = brokenGate(param_56, param_57, param_58, param_59);
498
+ float _e243 = mid;
499
+ mid = _e243 * _e242;
500
+ float _e245 = thick;
501
+ float _e246 = mid;
502
+ float _e247 = hair;
503
+ param_60 = metal::max(_e245, metal::max(_e246, _e247));
504
+ float _e250 = sat(param_60);
505
+ return _e250;
506
+ }
507
+
508
+ float burst_u0028_(
509
+ constant Uniforms& uniforms
510
+ ) {
511
+ float _e107 = uniforms.progress;
512
+ float _e113 = uniforms.strength;
513
+ return metal::pow(metal::max(0.0, metal::sin(_e107 * 3.1415927)), 0.42) * _e113;
514
+ }
515
+
516
+ metal::float4 transition(
517
+ thread metal::float2& uv_11,
518
+ metal::texture2d<float, metal::access::sample> _from,
519
+ metal::sampler _sampler,
520
+ metal::texture2d<float, metal::access::sample> _to,
521
+ constant Uniforms& uniforms
522
+ ) {
523
+ metal::float2 param_61 = {};
524
+ metal::float2 param_62 = {};
525
+ float b_1 = {};
526
+ float frame_4 = {};
527
+ float h_1 = {};
528
+ metal::float2 param_63 = {};
529
+ float param_64 = {};
530
+ float v_2 = {};
531
+ metal::float2 param_65 = {};
532
+ float param_66 = {};
533
+ float glitch = {};
534
+ float param_67 = {};
535
+ float row_2 = {};
536
+ float rowRnd_1 = {};
537
+ metal::float2 param_68 = {};
538
+ float bandDelay = {};
539
+ float reveal = {};
540
+ metal::float2 split = {};
541
+ metal::float2 fromUv = {};
542
+ metal::float2 param_69 = {};
543
+ float param_70 = {};
544
+ float param_71 = {};
545
+ float param_72 = {};
546
+ float param_73 = {};
547
+ float param_74 = {};
548
+ metal::float2 toUv = {};
549
+ metal::float2 param_75 = {};
550
+ float param_76 = {};
551
+ float param_77 = {};
552
+ float param_78 = {};
553
+ float param_79 = {};
554
+ float param_80 = {};
555
+ metal::float4 color = {};
556
+ metal::float2 param_81 = {};
557
+ metal::float2 param_82 = {};
558
+ metal::float2 param_83 = {};
559
+ metal::float2 param_84 = {};
560
+ metal::float2 smearUv = {};
561
+ metal::float2 param_85 = {};
562
+ float sliceReveal = {};
563
+ metal::float4 sliceColor = {};
564
+ metal::float2 param_86 = {};
565
+ metal::float2 param_87 = {};
566
+ metal::float2 param_88 = {};
567
+ metal::float2 param_89 = {};
568
+ float hairLine = {};
569
+ metal::float2 param_90 = {};
570
+ float param_91 = {};
571
+ float param_92 = {};
572
+ float param_93 = {};
573
+ float param_94 = {};
574
+ metal::float2 param_95 = {};
575
+ float scan = {};
576
+ metal::float2 nCell = {};
577
+ float n_1 = {};
578
+ metal::float2 param_96 = {};
579
+ float luma = {};
580
+ float strobe = {};
581
+ metal::float2 param_97 = {};
582
+ float _e167 = uniforms.progress;
583
+ if (_e167 <= 0.0) {
584
+ metal::float2 _e169 = uv_11;
585
+ param_61 = _e169;
586
+ metal::float4 _e170 = getFromColor(param_61, _from, _sampler);
587
+ return _e170;
588
+ }
589
+ float _e172 = uniforms.progress;
590
+ if (_e172 >= 1.0) {
591
+ metal::float2 _e174 = uv_11;
592
+ param_62 = _e174;
593
+ metal::float4 _e175 = getToColor(param_62, _sampler, _to);
594
+ return _e175;
595
+ }
596
+ float _e176 = burst_u0028_(uniforms);
597
+ b_1 = _e176;
598
+ float _e178 = uniforms.progress;
599
+ frame_4 = metal::floor(_e178 * 30.0);
600
+ metal::float2 _e181 = uv_11;
601
+ param_63 = _e181;
602
+ float _e182 = frame_4;
603
+ param_64 = _e182;
604
+ float _e183 = horizontalMask(param_63, param_64, uniforms);
605
+ h_1 = _e183;
606
+ metal::float2 _e184 = uv_11;
607
+ param_65 = _e184;
608
+ float _e185 = frame_4;
609
+ param_66 = _e185;
610
+ float _e186 = verticalMask(param_65, param_66, uniforms);
611
+ v_2 = _e186;
612
+ float _e187 = h_1;
613
+ float _e188 = v_2;
614
+ param_67 = metal::max(_e187, _e188 * 0.75);
615
+ float _e191 = sat(param_67);
616
+ glitch = _e191;
617
+ float _e193 = uv_11[1u];
618
+ float _e195 = uniforms.horizontalBars;
619
+ row_2 = metal::floor(_e193 * _e195);
620
+ float _e198 = row_2;
621
+ float _e199 = frame_4;
622
+ param_68 = metal::float2(_e198, _e199 + 5.0);
623
+ float _e202 = hash_u0028_vf2_u003b(param_68);
624
+ rowRnd_1 = _e202;
625
+ float _e203 = rowRnd_1;
626
+ float _e206 = h_1;
627
+ bandDelay = ((_e203 - 0.5) * 0.3) * _e206;
628
+ float _e209 = uniforms.progress;
629
+ float _e210 = bandDelay;
630
+ reveal = metal::smoothstep(0.18, 0.84, _e209 + _e210);
631
+ float _e214 = uniforms.chroma;
632
+ float _e215 = b_1;
633
+ float _e217 = glitch;
634
+ float _e222 = uniforms.chroma;
635
+ float _e224 = b_1;
636
+ float _e226 = v_2;
637
+ split = metal::float2((_e214 * _e215) * (1.0 + (1.7 * _e217)), ((_e222 * 0.22) * _e224) * _e226);
638
+ metal::float2 _e229 = uv_11;
639
+ param_69 = _e229;
640
+ param_70 = 1.0;
641
+ float _e230 = b_1;
642
+ param_71 = _e230;
643
+ float _e231 = h_1;
644
+ param_72 = _e231;
645
+ float _e232 = v_2;
646
+ param_73 = _e232;
647
+ float _e233 = frame_4;
648
+ param_74 = _e233;
649
+ metal::float2 _e234 = distortUv(param_69, param_70, param_71, param_72, param_73, param_74, uniforms);
650
+ fromUv = _e234;
651
+ metal::float2 _e235 = uv_11;
652
+ param_75 = _e235;
653
+ param_76 = -1.0;
654
+ float _e236 = b_1;
655
+ param_77 = _e236;
656
+ float _e237 = h_1;
657
+ param_78 = _e237;
658
+ float _e238 = v_2;
659
+ param_79 = _e238;
660
+ float _e239 = frame_4;
661
+ param_80 = _e239;
662
+ metal::float2 _e240 = distortUv(param_75, param_76, param_77, param_78, param_79, param_80, uniforms);
663
+ toUv = _e240;
664
+ metal::float2 _e241 = fromUv;
665
+ param_81 = _e241;
666
+ metal::float2 _e242 = split;
667
+ param_82 = _e242;
668
+ metal::float4 _e243 = chromaFrom(param_81, param_82, _from, _sampler);
669
+ metal::float2 _e244 = toUv;
670
+ param_83 = _e244;
671
+ metal::float2 _e245 = split;
672
+ param_84 = _e245;
673
+ metal::float4 _e246 = chromaTo(param_83, param_84, _sampler, _to);
674
+ float _e247 = reveal;
675
+ color = metal::mix(_e243, _e246, metal::float4(_e247));
676
+ metal::float2 _e250 = uv_11;
677
+ smearUv = _e250;
678
+ float _e251 = rowRnd_1;
679
+ float _e254 = b_1;
680
+ float _e256 = h_1;
681
+ float _e259 = smearUv[0u];
682
+ smearUv[0u] = _e259 + ((((_e251 - 0.5) * 0.46) * _e254) * _e256);
683
+ float _e262 = row_2;
684
+ float _e263 = frame_4;
685
+ param_85 = metal::float2(_e262, _e263 + 31.0);
686
+ float _e266 = hash_u0028_vf2_u003b(param_85);
687
+ float _e269 = b_1;
688
+ float _e271 = h_1;
689
+ float _e274 = smearUv[1u];
690
+ smearUv[1u] = _e274 + ((((_e266 - 0.5) * 0.045) * _e269) * _e271);
691
+ float _e278 = uniforms.progress;
692
+ float _e279 = rowRnd_1;
693
+ sliceReveal = metal::smoothstep(0.28, 0.78, _e278 + ((_e279 - 0.5) * 0.22));
694
+ metal::float2 _e284 = split;
695
+ metal::float2 _e286 = smearUv;
696
+ param_86 = _e286;
697
+ param_87 = _e284 * 1.65;
698
+ metal::float4 _e287 = chromaFrom(param_86, param_87, _from, _sampler);
699
+ metal::float2 _e288 = smearUv;
700
+ float _e289 = rowRnd_1;
701
+ float _e292 = b_1;
702
+ metal::float2 _e296 = split;
703
+ param_88 = _e288 - metal::float2(((_e289 - 0.5) * 0.18) * _e292, 0.0);
704
+ param_89 = _e296 * 1.65;
705
+ metal::float4 _e298 = chromaTo(param_88, param_89, _sampler, _to);
706
+ float _e299 = sliceReveal;
707
+ sliceColor = metal::mix(_e287, _e298, metal::float4(_e299));
708
+ metal::float4 _e302 = color;
709
+ metal::float4 _e303 = sliceColor;
710
+ float _e304 = h_1;
711
+ float _e305 = b_1;
712
+ float _e308 = uniforms.residue;
713
+ color = metal::mix(_e302, _e303, metal::float4((_e304 * _e305) * _e308));
714
+ float _e312 = frame_4;
715
+ metal::float2 _e314 = uv_11;
716
+ param_90 = _e314;
717
+ param_91 = 190.0;
718
+ param_92 = _e312 + 55.0;
719
+ param_93 = 0.002;
720
+ param_94 = 0.012;
721
+ float _e315 = stripeY(param_90, param_91, param_92, param_93, param_94);
722
+ hairLine = _e315;
723
+ float _e317 = uv_11[1u];
724
+ float _e320 = frame_4;
725
+ param_95 = metal::float2(metal::floor(_e317 * 190.0), _e320 + 56.0);
726
+ float _e323 = hash_u0028_vf2_u003b(param_95);
727
+ float _e325 = hairLine;
728
+ hairLine = _e325 * metal::step(0.7, _e323);
729
+ float _e327 = hairLine;
730
+ float _e329 = b_1;
731
+ metal::float4 _e332 = color;
732
+ metal::float3 _e334 = _e332.xyz + (((metal::float3(0.72, 0.9, 1.0) * _e327) * _e329) * 0.28);
733
+ color[0u] = _e334.x;
734
+ color[1u] = _e334.y;
735
+ color[2u] = _e334.z;
736
+ float _e342 = uv_11[1u];
737
+ float _e345 = uniforms.progress;
738
+ scan = 0.5 + (0.5 * metal::sin((_e342 * 980.0) + (_e345 * 130.0)));
739
+ float _e352 = uniforms.scanAmount;
740
+ float _e353 = b_1;
741
+ float _e355 = scan;
742
+ metal::float4 _e358 = color;
743
+ metal::float3 _e360 = _e358.xyz * (1.0 - ((_e352 * _e353) * _e355));
744
+ color[0u] = _e360.x;
745
+ color[1u] = _e360.y;
746
+ color[2u] = _e360.z;
747
+ metal::float2 _e367 = uv_11;
748
+ float _e369 = uniforms.ratio;
749
+ nCell = metal::floor(_e367 * metal::float2(360.0 * _e369, 210.0));
750
+ metal::float2 _e374 = nCell;
751
+ float _e375 = frame_4;
752
+ float _e377 = frame_4;
753
+ param_96 = _e374 + metal::float2(_e375 * 7.0, _e377 * 13.0);
754
+ float _e381 = hash_u0028_vf2_u003b(param_96);
755
+ n_1 = _e381;
756
+ float _e382 = n_1;
757
+ float _e385 = uniforms.noiseAmount;
758
+ float _e387 = b_1;
759
+ float _e389 = glitch;
760
+ metal::float4 _e392 = color;
761
+ metal::float3 _e395 = _e392.xyz + metal::float3((((_e382 - 0.5) * _e385) * _e387) * (0.55 + _e389));
762
+ color[0u] = _e395.x;
763
+ color[1u] = _e395.y;
764
+ color[2u] = _e395.z;
765
+ metal::float4 _e402 = color;
766
+ luma = metal::dot(_e402.xyz, metal::float3(0.299, 0.587, 0.114));
767
+ metal::float4 _e405 = color;
768
+ float _e407 = luma;
769
+ float _e409 = b_1;
770
+ float _e411 = glitch;
771
+ metal::float3 _e414 = metal::mix(_e405.xyz, metal::float3(_e407), metal::float3((0.18 * _e409) * _e411));
772
+ color[0u] = _e414.x;
773
+ color[1u] = _e414.y;
774
+ color[2u] = _e414.z;
775
+ float _e421 = frame_4;
776
+ param_97 = metal::float2(_e421, 3.14);
777
+ float _e423 = hash_u0028_vf2_u003b(param_97);
778
+ float _e425 = b_1;
779
+ strobe = metal::step(0.78, _e423) * metal::pow(_e425, 1.65);
780
+ float _e428 = strobe;
781
+ float _e430 = uniforms.flashAmount;
782
+ metal::float4 _e433 = color;
783
+ metal::float3 _e435 = _e433.xyz + metal::float3(_e428 * _e430);
784
+ color[0u] = _e435.x;
785
+ color[1u] = _e435.y;
786
+ color[2u] = _e435.z;
787
+ metal::float4 _e442 = color;
788
+ metal::float3 _e444 = metal::clamp(_e442.xyz, metal::float3(0.0, 0.0, 0.0), metal::float3(1.0, 1.0, 1.0));
789
+ return metal::float4(_e444.x, _e444.y, _e444.z, 1.0);
790
+ }
791
+
792
+ void main_1(
793
+ metal::texture2d<float, metal::access::sample> _from,
794
+ metal::sampler _sampler,
795
+ metal::texture2d<float, metal::access::sample> _to,
796
+ constant Uniforms& uniforms,
797
+ thread metal::float4& _fragColor,
798
+ thread metal::float2& _uv_1
799
+ ) {
800
+ metal::float2 param_98 = {};
801
+ metal::float2 _e107 = _uv_1;
802
+ param_98 = _e107;
803
+ metal::float4 _e108 = transition(param_98, _from, _sampler, _to, uniforms);
804
+ _fragColor = _e108;
805
+ return;
806
+ }
807
+
808
+ struct main_Input {
809
+ metal::float2 _uv [[user(loc0), center_perspective]];
810
+ };
811
+ struct main_Output {
812
+ metal::float4 member [[color(0)]];
813
+ };
814
+ fragment main_Output main_(
815
+ main_Input varyings [[stage_in]]
816
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
817
+ , metal::sampler _sampler [[sampler(0)]]
818
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
819
+ , constant Uniforms& uniforms [[buffer(0)]]
820
+ ) {
821
+ metal::float4 _fragColor = {};
822
+ metal::float2 _uv_1 = {};
823
+ const auto _uv = varyings._uv;
824
+ _uv_1 = _uv;
825
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
826
+ metal::float4 _e3 = _fragColor;
827
+ return main_Output { _e3 };
828
+ }