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,100 @@
1
+ // VerticalClose — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/VerticalClose.glsl
2
+ // Author: martiniti
3
+ // License: MIT
4
+ // Description: The incoming image closes in from the left and right edges toward the middle
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
+ };
17
+
18
+ metal::float4 getToColor(
19
+ thread metal::float2& uv,
20
+ metal::sampler _sampler,
21
+ metal::texture2d<float, metal::access::sample> _to
22
+ ) {
23
+ float _e15 = uv[0u];
24
+ float _e17 = uv[1u];
25
+ metal::float4 _e20 = _to.sample(_sampler, metal::float2(_e15, 1.0 - _e17), metal::level(0.0));
26
+ return _e20;
27
+ }
28
+
29
+ metal::float4 getFromColor(
30
+ thread metal::float2& uv_1,
31
+ metal::texture2d<float, metal::access::sample> _from,
32
+ metal::sampler _sampler
33
+ ) {
34
+ float _e15 = uv_1[0u];
35
+ float _e17 = uv_1[1u];
36
+ metal::float4 _e20 = _from.sample(_sampler, metal::float2(_e15, 1.0 - _e17), metal::level(0.0));
37
+ return _e20;
38
+ }
39
+
40
+ metal::float4 transition(
41
+ thread metal::float2& uv_2,
42
+ metal::texture2d<float, metal::access::sample> _from,
43
+ metal::sampler _sampler,
44
+ metal::texture2d<float, metal::access::sample> _to,
45
+ constant Uniforms& uniforms
46
+ ) {
47
+ float s = {};
48
+ metal::float2 param = {};
49
+ metal::float2 param_1 = {};
50
+ float _e18 = uv_2[0u];
51
+ float _e21 = uniforms.progress;
52
+ float _e27 = uniforms.progress;
53
+ s = (2.0 - metal::abs((_e18 - 0.5) / (_e21 - 1.0))) - (2.0 * _e27);
54
+ metal::float2 _e30 = uv_2;
55
+ param = _e30;
56
+ metal::float4 _e31 = getFromColor(param, _from, _sampler);
57
+ metal::float2 _e32 = uv_2;
58
+ param_1 = _e32;
59
+ metal::float4 _e33 = getToColor(param_1, _sampler, _to);
60
+ float _e34 = s;
61
+ return metal::mix(_e31, _e33, metal::float4(metal::smoothstep(0.5, 0.0, _e34)));
62
+ }
63
+
64
+ void main_1(
65
+ metal::texture2d<float, metal::access::sample> _from,
66
+ metal::sampler _sampler,
67
+ metal::texture2d<float, metal::access::sample> _to,
68
+ constant Uniforms& uniforms,
69
+ thread metal::float4& _fragColor,
70
+ thread metal::float2& _uv_1
71
+ ) {
72
+ metal::float2 param_2 = {};
73
+ metal::float2 _e14 = _uv_1;
74
+ param_2 = _e14;
75
+ metal::float4 _e15 = transition(param_2, _from, _sampler, _to, uniforms);
76
+ _fragColor = _e15;
77
+ return;
78
+ }
79
+
80
+ struct main_Input {
81
+ metal::float2 _uv [[user(loc0), center_perspective]];
82
+ };
83
+ struct main_Output {
84
+ metal::float4 member [[color(0)]];
85
+ };
86
+ fragment main_Output main_(
87
+ main_Input varyings [[stage_in]]
88
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
89
+ , metal::sampler _sampler [[sampler(0)]]
90
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
91
+ , constant Uniforms& uniforms [[buffer(0)]]
92
+ ) {
93
+ metal::float4 _fragColor = {};
94
+ metal::float2 _uv_1 = {};
95
+ const auto _uv = varyings._uv;
96
+ _uv_1 = _uv;
97
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
98
+ metal::float4 _e3 = _fragColor;
99
+ return main_Output { _e3 };
100
+ }
@@ -0,0 +1,103 @@
1
+ // VerticalOpen — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/VerticalOpen.glsl
2
+ // Author: martiniti
3
+ // License: MIT
4
+ // Description: The incoming image opens from a line in the middle toward the left and right edges
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
+ };
17
+
18
+ metal::float4 getToColor(
19
+ thread metal::float2& uv,
20
+ metal::sampler _sampler,
21
+ metal::texture2d<float, metal::access::sample> _to
22
+ ) {
23
+ float _e15 = uv[0u];
24
+ float _e17 = uv[1u];
25
+ metal::float4 _e20 = _to.sample(_sampler, metal::float2(_e15, 1.0 - _e17), metal::level(0.0));
26
+ return _e20;
27
+ }
28
+
29
+ metal::float4 getFromColor(
30
+ thread metal::float2& uv_1,
31
+ metal::texture2d<float, metal::access::sample> _from,
32
+ metal::sampler _sampler
33
+ ) {
34
+ float _e15 = uv_1[0u];
35
+ float _e17 = uv_1[1u];
36
+ metal::float4 _e20 = _from.sample(_sampler, metal::float2(_e15, 1.0 - _e17), metal::level(0.0));
37
+ return _e20;
38
+ }
39
+
40
+ metal::float4 transition(
41
+ thread metal::float2& uv_2,
42
+ metal::texture2d<float, metal::access::sample> _from,
43
+ metal::sampler _sampler,
44
+ metal::texture2d<float, metal::access::sample> _to,
45
+ constant Uniforms& uniforms
46
+ ) {
47
+ float regress = {};
48
+ float s = {};
49
+ metal::float2 param = {};
50
+ metal::float2 param_1 = {};
51
+ float _e19 = uniforms.progress;
52
+ regress = 1.0 - _e19;
53
+ float _e22 = uv_2[0u];
54
+ float _e24 = regress;
55
+ float _e29 = regress;
56
+ s = (2.0 - metal::abs((_e22 - 0.5) / (_e24 - 1.0))) - (2.0 * _e29);
57
+ metal::float2 _e32 = uv_2;
58
+ param = _e32;
59
+ metal::float4 _e33 = getFromColor(param, _from, _sampler);
60
+ metal::float2 _e34 = uv_2;
61
+ param_1 = _e34;
62
+ metal::float4 _e35 = getToColor(param_1, _sampler, _to);
63
+ float _e36 = s;
64
+ return metal::mix(_e33, _e35, metal::float4(metal::smoothstep(0.0, 0.5, _e36)));
65
+ }
66
+
67
+ void main_1(
68
+ metal::texture2d<float, metal::access::sample> _from,
69
+ metal::sampler _sampler,
70
+ metal::texture2d<float, metal::access::sample> _to,
71
+ constant Uniforms& uniforms,
72
+ thread metal::float4& _fragColor,
73
+ thread metal::float2& _uv_1
74
+ ) {
75
+ metal::float2 param_2 = {};
76
+ metal::float2 _e14 = _uv_1;
77
+ param_2 = _e14;
78
+ metal::float4 _e15 = transition(param_2, _from, _sampler, _to, uniforms);
79
+ _fragColor = _e15;
80
+ return;
81
+ }
82
+
83
+ struct main_Input {
84
+ metal::float2 _uv [[user(loc0), center_perspective]];
85
+ };
86
+ struct main_Output {
87
+ metal::float4 member [[color(0)]];
88
+ };
89
+ fragment main_Output main_(
90
+ main_Input varyings [[stage_in]]
91
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
92
+ , metal::sampler _sampler [[sampler(0)]]
93
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
94
+ , constant Uniforms& uniforms [[buffer(0)]]
95
+ ) {
96
+ metal::float4 _fragColor = {};
97
+ metal::float2 _uv_1 = {};
98
+ const auto _uv = varyings._uv;
99
+ _uv_1 = _uv;
100
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
101
+ metal::float4 _e3 = _fragColor;
102
+ return main_Output { _e3 };
103
+ }
@@ -0,0 +1,126 @@
1
+ // WaterDrop — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/WaterDrop.glsl
2
+ // Author: Paweł Płóciennik
3
+ // License: MIT
4
+ // Description: Ripples spread from the center like a drop falling into water, crossfading to the incoming image
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 amplitude;
17
+ float speed;
18
+ };
19
+
20
+ metal::float4 getToColor(
21
+ thread metal::float2& uv,
22
+ metal::sampler _sampler,
23
+ metal::texture2d<float, metal::access::sample> _to
24
+ ) {
25
+ float _e17 = uv[0u];
26
+ float _e19 = uv[1u];
27
+ metal::float4 _e22 = _to.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
28
+ return _e22;
29
+ }
30
+
31
+ metal::float4 getFromColor(
32
+ thread metal::float2& uv_1,
33
+ metal::texture2d<float, metal::access::sample> _from,
34
+ metal::sampler _sampler
35
+ ) {
36
+ float _e17 = uv_1[0u];
37
+ float _e19 = uv_1[1u];
38
+ metal::float4 _e22 = _from.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
39
+ return _e22;
40
+ }
41
+
42
+ metal::float4 transition(
43
+ thread metal::float2& p,
44
+ metal::texture2d<float, metal::access::sample> _from,
45
+ metal::sampler _sampler,
46
+ metal::texture2d<float, metal::access::sample> _to,
47
+ constant Uniforms& uniforms
48
+ ) {
49
+ metal::float2 dir = {};
50
+ float dist = {};
51
+ metal::float2 param = {};
52
+ metal::float2 param_1 = {};
53
+ metal::float2 offset = {};
54
+ metal::float2 param_2 = {};
55
+ metal::float2 param_3 = {};
56
+ metal::float2 _e23 = p;
57
+ dir = _e23 - metal::float2(0.5, 0.5);
58
+ metal::float2 _e25 = dir;
59
+ dist = metal::length(_e25);
60
+ float _e27 = dist;
61
+ float _e29 = uniforms.progress;
62
+ if (_e27 > _e29) {
63
+ metal::float2 _e31 = p;
64
+ param = _e31;
65
+ metal::float4 _e32 = getFromColor(param, _from, _sampler);
66
+ metal::float2 _e33 = p;
67
+ param_1 = _e33;
68
+ metal::float4 _e34 = getToColor(param_1, _sampler, _to);
69
+ float _e36 = uniforms.progress;
70
+ return metal::mix(_e32, _e34, metal::float4(_e36));
71
+ } else {
72
+ metal::float2 _e39 = dir;
73
+ float _e40 = dist;
74
+ float _e42 = uniforms.amplitude;
75
+ float _e45 = uniforms.progress;
76
+ float _e47 = uniforms.speed;
77
+ offset = _e39 * metal::sin((_e40 * _e42) - (_e45 * _e47));
78
+ metal::float2 _e52 = p;
79
+ metal::float2 _e53 = offset;
80
+ param_2 = _e52 + _e53;
81
+ metal::float4 _e55 = getFromColor(param_2, _from, _sampler);
82
+ metal::float2 _e56 = p;
83
+ param_3 = _e56;
84
+ metal::float4 _e57 = getToColor(param_3, _sampler, _to);
85
+ float _e59 = uniforms.progress;
86
+ return metal::mix(_e55, _e57, metal::float4(_e59));
87
+ }
88
+ }
89
+
90
+ void main_1(
91
+ metal::texture2d<float, metal::access::sample> _from,
92
+ metal::sampler _sampler,
93
+ metal::texture2d<float, metal::access::sample> _to,
94
+ constant Uniforms& uniforms,
95
+ thread metal::float4& _fragColor,
96
+ thread metal::float2& _uv_1
97
+ ) {
98
+ metal::float2 param_4 = {};
99
+ metal::float2 _e16 = _uv_1;
100
+ param_4 = _e16;
101
+ metal::float4 _e17 = transition(param_4, _from, _sampler, _to, uniforms);
102
+ _fragColor = _e17;
103
+ return;
104
+ }
105
+
106
+ struct main_Input {
107
+ metal::float2 _uv [[user(loc0), center_perspective]];
108
+ };
109
+ struct main_Output {
110
+ metal::float4 member [[color(0)]];
111
+ };
112
+ fragment main_Output main_(
113
+ main_Input varyings [[stage_in]]
114
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
115
+ , metal::sampler _sampler [[sampler(0)]]
116
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
117
+ , constant Uniforms& uniforms [[buffer(0)]]
118
+ ) {
119
+ metal::float4 _fragColor = {};
120
+ metal::float2 _uv_1 = {};
121
+ const auto _uv = varyings._uv;
122
+ _uv_1 = _uv;
123
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
124
+ metal::float4 _e3 = _fragColor;
125
+ return main_Output { _e3 };
126
+ }
@@ -0,0 +1,169 @@
1
+ // ZoomInCircles — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/ZoomInCircles.glsl
2
+ // Author: dycm8009
3
+ // License: MIT
4
+ // Description: Concentric rings of the outgoing image zoom at different speeds before revealing 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
+ };
17
+
18
+ metal::float4 getToColor(
19
+ thread metal::float2& uv,
20
+ metal::sampler _sampler,
21
+ metal::texture2d<float, metal::access::sample> _to
22
+ ) {
23
+ float _e25 = uv[0u];
24
+ float _e27 = uv[1u];
25
+ metal::float4 _e30 = _to.sample(_sampler, metal::float2(_e25, 1.0 - _e27), metal::level(0.0));
26
+ return _e30;
27
+ }
28
+
29
+ metal::float4 getFromColor(
30
+ thread metal::float2& uv_1,
31
+ metal::texture2d<float, metal::access::sample> _from,
32
+ metal::sampler _sampler
33
+ ) {
34
+ float _e25 = uv_1[0u];
35
+ float _e27 = uv_1[1u];
36
+ metal::float4 _e30 = _from.sample(_sampler, metal::float2(_e25, 1.0 - _e27), metal::level(0.0));
37
+ return _e30;
38
+ }
39
+
40
+ metal::float2 zoom(
41
+ thread metal::float2& uv_2,
42
+ thread float& amount
43
+ ) {
44
+ metal::float2 _e25 = uv_2;
45
+ float _e28 = amount;
46
+ return metal::float2(0.5) + ((_e25 - metal::float2(0.5)) * _e28);
47
+ }
48
+
49
+ metal::float4 transition(
50
+ thread metal::float2& uv_3,
51
+ metal::texture2d<float, metal::access::sample> _from,
52
+ metal::sampler _sampler,
53
+ metal::texture2d<float, metal::access::sample> _to,
54
+ constant Uniforms& uniforms
55
+ ) {
56
+ metal::float2 ratio2_ = {};
57
+ metal::float2 r = {};
58
+ float pro = {};
59
+ float z = {};
60
+ float t = {};
61
+ metal::float2 param = {};
62
+ float param_1 = {};
63
+ metal::float2 param_2 = {};
64
+ float param_3 = {};
65
+ metal::float2 param_4 = {};
66
+ float param_5 = {};
67
+ metal::float2 param_6 = {};
68
+ metal::float2 param_7 = {};
69
+ float _e38 = uniforms.ratio;
70
+ ratio2_ = metal::float2(1.0, 1.0 / _e38);
71
+ metal::float2 _e41 = uv_3;
72
+ metal::float2 _e44 = ratio2_;
73
+ r = ((_e41 - metal::float2(0.5)) * _e44) * 2.0;
74
+ float _e48 = uniforms.progress;
75
+ pro = _e48 / 0.8;
76
+ float _e50 = pro;
77
+ z = _e50 * 0.2;
78
+ t = 0.0;
79
+ float _e52 = pro;
80
+ if (_e52 > 1.0) {
81
+ float _e54 = pro;
82
+ z = 0.2 + ((_e54 - 1.0) * 5.0);
83
+ float _e59 = uniforms.progress;
84
+ t = metal::clamp((_e59 - 0.8) / 0.07, 0.0, 1.0);
85
+ }
86
+ metal::float2 _e63 = r;
87
+ float _e65 = z;
88
+ if (metal::length(_e63) < (0.5 + _e65)) {
89
+ } else {
90
+ metal::float2 _e68 = r;
91
+ float _e70 = z;
92
+ if (metal::length(_e68) < (0.8 + (_e70 * 1.5))) {
93
+ float _e74 = pro;
94
+ metal::float2 _e77 = uv_3;
95
+ param = _e77;
96
+ param_1 = 1.0 - (0.15 * _e74);
97
+ metal::float2 _e78 = zoom(param, param_1);
98
+ uv_3 = _e78;
99
+ float _e79 = t;
100
+ t = _e79 * 0.5;
101
+ } else {
102
+ metal::float2 _e81 = r;
103
+ float _e83 = z;
104
+ if (metal::length(_e81) < (1.2 + (_e83 * 2.5))) {
105
+ float _e87 = pro;
106
+ metal::float2 _e90 = uv_3;
107
+ param_2 = _e90;
108
+ param_3 = 1.0 - (0.2 * _e87);
109
+ metal::float2 _e91 = zoom(param_2, param_3);
110
+ uv_3 = _e91;
111
+ float _e92 = t;
112
+ t = _e92 * 0.2;
113
+ } else {
114
+ float _e94 = pro;
115
+ metal::float2 _e97 = uv_3;
116
+ param_4 = _e97;
117
+ param_5 = 1.0 - (0.25 * _e94);
118
+ metal::float2 _e98 = zoom(param_4, param_5);
119
+ uv_3 = _e98;
120
+ }
121
+ }
122
+ }
123
+ metal::float2 _e99 = uv_3;
124
+ param_6 = _e99;
125
+ metal::float4 _e100 = getFromColor(param_6, _from, _sampler);
126
+ metal::float2 _e101 = uv_3;
127
+ param_7 = _e101;
128
+ metal::float4 _e102 = getToColor(param_7, _sampler, _to);
129
+ float _e103 = t;
130
+ return metal::mix(_e100, _e102, metal::float4(_e103));
131
+ }
132
+
133
+ void main_1(
134
+ metal::texture2d<float, metal::access::sample> _from,
135
+ metal::sampler _sampler,
136
+ metal::texture2d<float, metal::access::sample> _to,
137
+ constant Uniforms& uniforms,
138
+ thread metal::float4& _fragColor,
139
+ thread metal::float2& _uv_1
140
+ ) {
141
+ metal::float2 param_8 = {};
142
+ metal::float2 _e24 = _uv_1;
143
+ param_8 = _e24;
144
+ metal::float4 _e25 = transition(param_8, _from, _sampler, _to, uniforms);
145
+ _fragColor = _e25;
146
+ return;
147
+ }
148
+
149
+ struct main_Input {
150
+ metal::float2 _uv [[user(loc0), center_perspective]];
151
+ };
152
+ struct main_Output {
153
+ metal::float4 member [[color(0)]];
154
+ };
155
+ fragment main_Output main_(
156
+ main_Input varyings [[stage_in]]
157
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
158
+ , metal::sampler _sampler [[sampler(0)]]
159
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
160
+ , constant Uniforms& uniforms [[buffer(0)]]
161
+ ) {
162
+ metal::float4 _fragColor = {};
163
+ metal::float2 _uv_1 = {};
164
+ const auto _uv = varyings._uv;
165
+ _uv_1 = _uv;
166
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
167
+ metal::float4 _e3 = _fragColor;
168
+ return main_Output { _e3 };
169
+ }
@@ -0,0 +1,152 @@
1
+ // ZoomLeftWipe — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/ZoomLeftWipe.glsl
2
+ // Author: Handk
3
+ // License: MIT
4
+ // Description: Zooms into the outgoing image, then the incoming one wipes in from right to left
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 zoom_quickness;
17
+ };
18
+
19
+ metal::float4 getToColor(
20
+ thread metal::float2& uv,
21
+ metal::sampler _sampler,
22
+ metal::texture2d<float, metal::access::sample> _to
23
+ ) {
24
+ float _e17 = uv[0u];
25
+ float _e19 = uv[1u];
26
+ metal::float4 _e22 = _to.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
27
+ return _e22;
28
+ }
29
+
30
+ metal::float4 getFromColor(
31
+ thread metal::float2& uv_1,
32
+ metal::texture2d<float, metal::access::sample> _from,
33
+ metal::sampler _sampler
34
+ ) {
35
+ float _e17 = uv_1[0u];
36
+ float _e19 = uv_1[1u];
37
+ metal::float4 _e22 = _from.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
38
+ return _e22;
39
+ }
40
+
41
+ metal::float2 zoom(
42
+ thread metal::float2& uv_2,
43
+ thread float& amount
44
+ ) {
45
+ float _e17 = amount;
46
+ if (_e17 < 0.5) {
47
+ metal::float2 _e19 = uv_2;
48
+ float _e22 = amount;
49
+ return metal::float2(0.5) + ((_e19 - metal::float2(0.5)) * (1.0 - _e22));
50
+ } else {
51
+ metal::float2 _e27 = uv_2;
52
+ float _e30 = amount;
53
+ return metal::float2(0.5) + ((_e27 - metal::float2(0.5)) * _e30);
54
+ }
55
+ }
56
+
57
+ metal::float4 transition(
58
+ thread metal::float2& uv_3,
59
+ metal::texture2d<float, metal::access::sample> _from,
60
+ metal::sampler _sampler,
61
+ metal::texture2d<float, metal::access::sample> _to,
62
+ constant Uniforms& uniforms
63
+ ) {
64
+ float nQuick = {};
65
+ metal::float4 c = {};
66
+ metal::float2 param = {};
67
+ float param_1 = {};
68
+ metal::float2 param_2 = {};
69
+ metal::float2 param_3 = {};
70
+ metal::float2 p = {};
71
+ metal::float4 d = {};
72
+ metal::float2 param_4 = {};
73
+ metal::float4 e = {};
74
+ metal::float2 param_5 = {};
75
+ metal::float4 f = {};
76
+ float _e29 = uniforms.zoom_quickness;
77
+ nQuick = metal::clamp(_e29, 0.0, 0.5);
78
+ float _e32 = uniforms.progress;
79
+ if (_e32 < 0.5) {
80
+ float _e34 = nQuick;
81
+ float _e36 = uniforms.progress;
82
+ metal::float2 _e38 = uv_3;
83
+ param = _e38;
84
+ param_1 = metal::smoothstep(0.0, _e34, _e36);
85
+ metal::float2 _e39 = zoom(param, param_1);
86
+ param_2 = _e39;
87
+ metal::float4 _e40 = getFromColor(param_2, _from, _sampler);
88
+ metal::float2 _e41 = uv_3;
89
+ param_3 = _e41;
90
+ metal::float4 _e42 = getToColor(param_3, _sampler, _to);
91
+ float _e44 = uniforms.progress;
92
+ c = metal::mix(_e40, _e42, metal::float4(metal::step(0.5, _e44)));
93
+ metal::float4 _e48 = c;
94
+ return _e48;
95
+ } else {
96
+ metal::float2 _e49 = uv_3;
97
+ p = _e49 / metal::float2(1.0, 1.0);
98
+ metal::float2 _e51 = p;
99
+ param_4 = _e51;
100
+ metal::float4 _e52 = getFromColor(param_4, _from, _sampler);
101
+ d = _e52;
102
+ metal::float2 _e53 = p;
103
+ param_5 = _e53;
104
+ metal::float4 _e54 = getToColor(param_5, _sampler, _to);
105
+ e = _e54;
106
+ metal::float4 _e55 = d;
107
+ metal::float4 _e56 = e;
108
+ float _e58 = p[0u];
109
+ float _e61 = uniforms.progress;
110
+ f = metal::mix(_e55, _e56, metal::float4(metal::step(1.0 - _e58, (_e61 - 0.5) * 2.0)));
111
+ metal::float4 _e67 = f;
112
+ return _e67;
113
+ }
114
+ }
115
+
116
+ void main_1(
117
+ metal::texture2d<float, metal::access::sample> _from,
118
+ metal::sampler _sampler,
119
+ metal::texture2d<float, metal::access::sample> _to,
120
+ constant Uniforms& uniforms,
121
+ thread metal::float4& _fragColor,
122
+ thread metal::float2& _uv_1
123
+ ) {
124
+ metal::float2 param_6 = {};
125
+ metal::float2 _e16 = _uv_1;
126
+ param_6 = _e16;
127
+ metal::float4 _e17 = transition(param_6, _from, _sampler, _to, uniforms);
128
+ _fragColor = _e17;
129
+ return;
130
+ }
131
+
132
+ struct main_Input {
133
+ metal::float2 _uv [[user(loc0), center_perspective]];
134
+ };
135
+ struct main_Output {
136
+ metal::float4 member [[color(0)]];
137
+ };
138
+ fragment main_Output main_(
139
+ main_Input varyings [[stage_in]]
140
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
141
+ , metal::sampler _sampler [[sampler(0)]]
142
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
143
+ , constant Uniforms& uniforms [[buffer(0)]]
144
+ ) {
145
+ metal::float4 _fragColor = {};
146
+ metal::float2 _uv_1 = {};
147
+ const auto _uv = varyings._uv;
148
+ _uv_1 = _uv;
149
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
150
+ metal::float4 _e3 = _fragColor;
151
+ return main_Output { _e3 };
152
+ }