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,217 @@
1
+ // undulatingBurnOut — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/undulatingBurnOut.glsl
2
+ // Author: pthrasher
3
+ // License: MIT
4
+ // Description: A circle with a wavy edge burns out from the center to reveal 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 smoothness;
17
+ char _pad3[4];
18
+ metal::float2 center;
19
+ char _pad4[8];
20
+ metal::float3 color;
21
+ };
22
+
23
+ metal::float4 getToColor(
24
+ thread metal::float2& uv,
25
+ metal::sampler _sampler,
26
+ metal::texture2d<float, metal::access::sample> _to
27
+ ) {
28
+ float _e37 = uv[0u];
29
+ float _e39 = uv[1u];
30
+ metal::float4 _e42 = _to.sample(_sampler, metal::float2(_e37, 1.0 - _e39), metal::level(0.0));
31
+ return _e42;
32
+ }
33
+
34
+ metal::float4 getFromColor(
35
+ thread metal::float2& uv_1,
36
+ metal::texture2d<float, metal::access::sample> _from,
37
+ metal::sampler _sampler
38
+ ) {
39
+ float _e37 = uv_1[0u];
40
+ float _e39 = uv_1[1u];
41
+ metal::float4 _e42 = _from.sample(_sampler, metal::float2(_e37, 1.0 - _e39), metal::level(0.0));
42
+ return _e42;
43
+ }
44
+
45
+ float getGradient(
46
+ thread float& r,
47
+ thread float& dist,
48
+ constant Uniforms& uniforms
49
+ ) {
50
+ float d = {};
51
+ float _e38 = r;
52
+ float _e39 = dist;
53
+ d = _e38 - _e39;
54
+ float _e42 = uniforms.smoothness;
55
+ float _e44 = r;
56
+ float _e45 = dist;
57
+ float _e47 = uniforms.smoothness;
58
+ float _e52 = d;
59
+ float _e55 = d;
60
+ float _e57 = d;
61
+ return metal::mix(metal::smoothstep(-(_e42), 0.0, _e44 - (_e45 * (1.0 + _e47))), -1.0 - metal::step(0.005, _e52), metal::step(-0.005, _e55) * metal::step(_e57, 0.01));
62
+ }
63
+
64
+ float quadraticInOut(
65
+ thread float& t
66
+ ) {
67
+ float p = {};
68
+ float local = {};
69
+ float _e38 = t;
70
+ float _e40 = t;
71
+ p = (2.0 * _e38) * _e40;
72
+ float _e42 = t;
73
+ if (_e42 < 0.5) {
74
+ float _e44 = p;
75
+ local = _e44;
76
+ } else {
77
+ float _e45 = p;
78
+ float _e47 = t;
79
+ local = (-(_e45) + (4.0 * _e47)) - 1.0;
80
+ }
81
+ float _e51 = local;
82
+ return _e51;
83
+ }
84
+
85
+ float getWave(
86
+ thread metal::float2& p_1,
87
+ constant Uniforms& uniforms
88
+ ) {
89
+ metal::float2 _p = {};
90
+ float rads = {};
91
+ float degs = {};
92
+ metal::float2 range = {};
93
+ metal::float2 domain = {};
94
+ float ratio = {};
95
+ float x = {};
96
+ float magnitude = {};
97
+ float offset = {};
98
+ float ease_degs = {};
99
+ float param = {};
100
+ float deg_wave_pos = {};
101
+ metal::float2 _e48 = p_1;
102
+ metal::float2 _e50 = uniforms.center;
103
+ _p = _e48 - _e50;
104
+ float _e53 = _p[1u];
105
+ float _e55 = _p[0u];
106
+ rads = metal::atan2(_e53, _e55);
107
+ float _e57 = rads;
108
+ degs = ((_e57) * 57.295779513082322865) + 180.0;
109
+ range = metal::float2(0.0, 94.24778);
110
+ domain = metal::float2(0.0, 360.0);
111
+ ratio = 0.2617994;
112
+ float _e60 = degs;
113
+ float _e61 = ratio;
114
+ degs = _e60 * _e61;
115
+ float _e64 = uniforms.progress;
116
+ x = _e64;
117
+ float _e65 = x;
118
+ magnitude = metal::mix(0.02, 0.09, metal::smoothstep(0.0, 1.0, _e65));
119
+ float _e68 = x;
120
+ offset = metal::mix(40.0, 30.0, metal::smoothstep(0.0, 1.0, _e68));
121
+ float _e71 = degs;
122
+ param = metal::sin(_e71);
123
+ float _e73 = quadraticInOut(param);
124
+ ease_degs = _e73;
125
+ float _e74 = ease_degs;
126
+ float _e75 = magnitude;
127
+ float _e77 = x;
128
+ float _e78 = offset;
129
+ deg_wave_pos = (_e74 * _e75) * metal::sin(_e77 * _e78);
130
+ float _e82 = x;
131
+ float _e84 = uniforms.smoothness;
132
+ float _e86 = x;
133
+ float _e91 = deg_wave_pos;
134
+ return (_e82 - (metal::max(_e84, 0.01) * (1.0 - metal::smoothstep(0.0, 0.1, _e86)))) + _e91;
135
+ }
136
+
137
+ metal::float4 transition(
138
+ thread metal::float2& p_2,
139
+ metal::texture2d<float, metal::access::sample> _from,
140
+ metal::sampler _sampler,
141
+ metal::texture2d<float, metal::access::sample> _to,
142
+ constant Uniforms& uniforms
143
+ ) {
144
+ float dist_1 = {};
145
+ float m = {};
146
+ metal::float2 param_1 = {};
147
+ float param_2 = {};
148
+ float param_3 = {};
149
+ metal::float4 cfrom = {};
150
+ metal::float2 param_4 = {};
151
+ metal::float4 cto = {};
152
+ metal::float2 param_5 = {};
153
+ metal::float2 _e46 = uniforms.center;
154
+ metal::float2 _e47 = p_2;
155
+ dist_1 = metal::distance(_e46, _e47);
156
+ metal::float2 _e49 = p_2;
157
+ param_1 = _e49;
158
+ float _e50 = getWave(param_1, uniforms);
159
+ param_2 = _e50;
160
+ float _e51 = dist_1;
161
+ param_3 = _e51;
162
+ float _e52 = getGradient(param_2, param_3, uniforms);
163
+ m = _e52;
164
+ metal::float2 _e53 = p_2;
165
+ param_4 = _e53;
166
+ metal::float4 _e54 = getFromColor(param_4, _from, _sampler);
167
+ cfrom = _e54;
168
+ metal::float2 _e55 = p_2;
169
+ param_5 = _e55;
170
+ metal::float4 _e56 = getToColor(param_5, _sampler, _to);
171
+ cto = _e56;
172
+ metal::float4 _e57 = cfrom;
173
+ metal::float4 _e58 = cto;
174
+ float _e59 = m;
175
+ metal::float4 _e62 = cfrom;
176
+ metal::float3 _e64 = uniforms.color;
177
+ float _e71 = m;
178
+ return metal::mix(metal::mix(_e57, _e58, metal::float4(_e59)), metal::mix(_e62, metal::float4(_e64.x, _e64.y, _e64.z, 1.0), metal::float4(0.75)), metal::float4(metal::step(_e71, -2.0)));
179
+ }
180
+
181
+ void main_1(
182
+ metal::texture2d<float, metal::access::sample> _from,
183
+ metal::sampler _sampler,
184
+ metal::texture2d<float, metal::access::sample> _to,
185
+ constant Uniforms& uniforms,
186
+ thread metal::float4& _fragColor,
187
+ thread metal::float2& _uv_1
188
+ ) {
189
+ metal::float2 param_6 = {};
190
+ metal::float2 _e36 = _uv_1;
191
+ param_6 = _e36;
192
+ metal::float4 _e37 = transition(param_6, _from, _sampler, _to, uniforms);
193
+ _fragColor = _e37;
194
+ return;
195
+ }
196
+
197
+ struct main_Input {
198
+ metal::float2 _uv [[user(loc0), center_perspective]];
199
+ };
200
+ struct main_Output {
201
+ metal::float4 member [[color(0)]];
202
+ };
203
+ fragment main_Output main_(
204
+ main_Input varyings [[stage_in]]
205
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
206
+ , metal::sampler _sampler [[sampler(0)]]
207
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
208
+ , constant Uniforms& uniforms [[buffer(0)]]
209
+ ) {
210
+ metal::float4 _fragColor = {};
211
+ metal::float2 _uv_1 = {};
212
+ const auto _uv = varyings._uv;
213
+ _uv_1 = _uv;
214
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
215
+ metal::float4 _e3 = _fragColor;
216
+ return main_Output { _e3 };
217
+ }
package/msl/wind.metal ADDED
@@ -0,0 +1,131 @@
1
+ // wind — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/wind.glsl
2
+ // Author: gre
3
+ // License: MIT
4
+ // Description: A ragged left-to-right wipe, as if the image was blown away by the wind
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 size;
17
+ int reversed;
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 _e19 = uv[0u];
26
+ float _e21 = uv[1u];
27
+ metal::float4 _e24 = _to.sample(_sampler, metal::float2(_e19, 1.0 - _e21), metal::level(0.0));
28
+ return _e24;
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 _e19 = uv_1[0u];
37
+ float _e21 = uv_1[1u];
38
+ metal::float4 _e24 = _from.sample(_sampler, metal::float2(_e19, 1.0 - _e21), metal::level(0.0));
39
+ return _e24;
40
+ }
41
+
42
+ float rand(
43
+ thread metal::float2& co
44
+ ) {
45
+ metal::float2 _e18 = co;
46
+ return metal::fract(metal::sin(metal::dot(_e18, metal::float2(12.9898, 78.233))) * 43758.547);
47
+ }
48
+
49
+ metal::float4 transition(
50
+ thread metal::float2& uv_2,
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
+ float x = {};
57
+ float local = {};
58
+ float r = {};
59
+ metal::float2 param = {};
60
+ float m = {};
61
+ metal::float2 param_1 = {};
62
+ metal::float2 param_2 = {};
63
+ int _e26 = uniforms.reversed;
64
+ if (_e26 != 0) {
65
+ float _e29 = uv_2[0u];
66
+ local = 1.0 - _e29;
67
+ } else {
68
+ float _e32 = uv_2[0u];
69
+ local = _e32;
70
+ }
71
+ float _e33 = local;
72
+ x = _e33;
73
+ float _e35 = uv_2[1u];
74
+ param = metal::float2(0.0, _e35);
75
+ float _e37 = rand(param);
76
+ r = _e37;
77
+ float _e39 = uniforms.size;
78
+ float _e41 = x;
79
+ float _e43 = uniforms.size;
80
+ float _e47 = uniforms.size;
81
+ float _e48 = r;
82
+ float _e52 = uniforms.progress;
83
+ float _e54 = uniforms.size;
84
+ m = metal::smoothstep(0.0, -(_e39), ((_e41 * (1.0 - _e43)) + (_e47 * _e48)) - (_e52 * (1.0 + _e54)));
85
+ metal::float2 _e59 = uv_2;
86
+ param_1 = _e59;
87
+ metal::float4 _e60 = getFromColor(param_1, _from, _sampler);
88
+ metal::float2 _e61 = uv_2;
89
+ param_2 = _e61;
90
+ metal::float4 _e62 = getToColor(param_2, _sampler, _to);
91
+ float _e63 = m;
92
+ return metal::mix(_e60, _e62, metal::float4(_e63));
93
+ }
94
+
95
+ void main_1(
96
+ metal::texture2d<float, metal::access::sample> _from,
97
+ metal::sampler _sampler,
98
+ metal::texture2d<float, metal::access::sample> _to,
99
+ constant Uniforms& uniforms,
100
+ thread metal::float4& _fragColor,
101
+ thread metal::float2& _uv_1
102
+ ) {
103
+ metal::float2 param_3 = {};
104
+ metal::float2 _e18 = _uv_1;
105
+ param_3 = _e18;
106
+ metal::float4 _e19 = transition(param_3, _from, _sampler, _to, uniforms);
107
+ _fragColor = _e19;
108
+ return;
109
+ }
110
+
111
+ struct main_Input {
112
+ metal::float2 _uv [[user(loc0), center_perspective]];
113
+ };
114
+ struct main_Output {
115
+ metal::float4 member [[color(0)]];
116
+ };
117
+ fragment main_Output main_(
118
+ main_Input varyings [[stage_in]]
119
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
120
+ , metal::sampler _sampler [[sampler(0)]]
121
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
122
+ , constant Uniforms& uniforms [[buffer(0)]]
123
+ ) {
124
+ metal::float4 _fragColor = {};
125
+ metal::float2 _uv_1 = {};
126
+ const auto _uv = varyings._uv;
127
+ _uv_1 = _uv;
128
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
129
+ metal::float4 _e3 = _fragColor;
130
+ return main_Output { _e3 };
131
+ }
@@ -0,0 +1,107 @@
1
+ // windowblinds — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/windowblinds.glsl
2
+ // Author: Fabien Benetou
3
+ // License: MIT
4
+ // Description: A crossfade through horizontal window blinds
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 _e17 = uv[0u];
24
+ float _e19 = uv[1u];
25
+ metal::float4 _e22 = _to.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
26
+ return _e22;
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 _e17 = uv_1[0u];
35
+ float _e19 = uv_1[1u];
36
+ metal::float4 _e22 = _from.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
37
+ return _e22;
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 t = {};
48
+ metal::float2 param = {};
49
+ metal::float2 param_1 = {};
50
+ float _e20 = uniforms.progress;
51
+ t = _e20;
52
+ float _e22 = uv_2[1u];
53
+ float _e25 = uniforms.progress;
54
+ float _e27 = metal::floor((_e22 * 100.0) * _e25);
55
+ if ((_e27 - (metal::floor(_e27 / 2.0) * 2.0)) == 0.0) {
56
+ float _e33 = t;
57
+ t = _e33 * 1.5;
58
+ }
59
+ metal::float2 _e35 = uv_2;
60
+ param = _e35;
61
+ metal::float4 _e36 = getFromColor(param, _from, _sampler);
62
+ metal::float2 _e37 = uv_2;
63
+ param_1 = _e37;
64
+ metal::float4 _e38 = getToColor(param_1, _sampler, _to);
65
+ float _e39 = t;
66
+ float _e41 = uniforms.progress;
67
+ float _e43 = uniforms.progress;
68
+ return metal::mix(_e36, _e38, metal::float4(metal::mix(_e39, _e41, metal::smoothstep(0.8, 1.0, _e43))));
69
+ }
70
+
71
+ void main_1(
72
+ metal::texture2d<float, metal::access::sample> _from,
73
+ metal::sampler _sampler,
74
+ metal::texture2d<float, metal::access::sample> _to,
75
+ constant Uniforms& uniforms,
76
+ thread metal::float4& _fragColor,
77
+ thread metal::float2& _uv_1
78
+ ) {
79
+ metal::float2 param_2 = {};
80
+ metal::float2 _e16 = _uv_1;
81
+ param_2 = _e16;
82
+ metal::float4 _e17 = transition(param_2, _from, _sampler, _to, uniforms);
83
+ _fragColor = _e17;
84
+ return;
85
+ }
86
+
87
+ struct main_Input {
88
+ metal::float2 _uv [[user(loc0), center_perspective]];
89
+ };
90
+ struct main_Output {
91
+ metal::float4 member [[color(0)]];
92
+ };
93
+ fragment main_Output main_(
94
+ main_Input varyings [[stage_in]]
95
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
96
+ , metal::sampler _sampler [[sampler(0)]]
97
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
98
+ , constant Uniforms& uniforms [[buffer(0)]]
99
+ ) {
100
+ metal::float4 _fragColor = {};
101
+ metal::float2 _uv_1 = {};
102
+ const auto _uv = varyings._uv;
103
+ _uv_1 = _uv;
104
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
105
+ metal::float4 _e3 = _fragColor;
106
+ return main_Output { _e3 };
107
+ }
@@ -0,0 +1,108 @@
1
+ // windowslice — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/windowslice.glsl
2
+ // Author: gre
3
+ // License: MIT
4
+ // Description: The incoming image appears through vertical slices that widen
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 count;
17
+ float smoothness;
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 _e15 = uv[0u];
26
+ float _e17 = uv[1u];
27
+ metal::float4 _e20 = _to.sample(_sampler, metal::float2(_e15, 1.0 - _e17), metal::level(0.0));
28
+ return _e20;
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 _e15 = uv_1[0u];
37
+ float _e17 = uv_1[1u];
38
+ metal::float4 _e20 = _from.sample(_sampler, metal::float2(_e15, 1.0 - _e17), metal::level(0.0));
39
+ return _e20;
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
+ float pr = {};
50
+ float s = {};
51
+ metal::float2 param = {};
52
+ metal::float2 param_1 = {};
53
+ float _e19 = uniforms.smoothness;
54
+ float _e22 = p[0u];
55
+ float _e24 = uniforms.progress;
56
+ float _e26 = uniforms.smoothness;
57
+ pr = metal::smoothstep(-(_e19), 0.0, _e22 - (_e24 * (1.0 + _e26)));
58
+ float _e31 = pr;
59
+ float _e33 = uniforms.count;
60
+ float _e35 = p[0u];
61
+ s = metal::step(_e31, metal::fract(_e33 * _e35));
62
+ metal::float2 _e39 = p;
63
+ param = _e39;
64
+ metal::float4 _e40 = getFromColor(param, _from, _sampler);
65
+ metal::float2 _e41 = p;
66
+ param_1 = _e41;
67
+ metal::float4 _e42 = getToColor(param_1, _sampler, _to);
68
+ float _e43 = s;
69
+ return metal::mix(_e40, _e42, metal::float4(_e43));
70
+ }
71
+
72
+ void main_1(
73
+ metal::texture2d<float, metal::access::sample> _from,
74
+ metal::sampler _sampler,
75
+ metal::texture2d<float, metal::access::sample> _to,
76
+ constant Uniforms& uniforms,
77
+ thread metal::float4& _fragColor,
78
+ thread metal::float2& _uv_1
79
+ ) {
80
+ metal::float2 param_2 = {};
81
+ metal::float2 _e14 = _uv_1;
82
+ param_2 = _e14;
83
+ metal::float4 _e15 = transition(param_2, _from, _sampler, _to, uniforms);
84
+ _fragColor = _e15;
85
+ return;
86
+ }
87
+
88
+ struct main_Input {
89
+ metal::float2 _uv [[user(loc0), center_perspective]];
90
+ };
91
+ struct main_Output {
92
+ metal::float4 member [[color(0)]];
93
+ };
94
+ fragment main_Output main_(
95
+ main_Input varyings [[stage_in]]
96
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
97
+ , metal::sampler _sampler [[sampler(0)]]
98
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
99
+ , constant Uniforms& uniforms [[buffer(0)]]
100
+ ) {
101
+ metal::float4 _fragColor = {};
102
+ metal::float2 _uv_1 = {};
103
+ const auto _uv = varyings._uv;
104
+ _uv_1 = _uv;
105
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
106
+ metal::float4 _e3 = _fragColor;
107
+ return main_Output { _e3 };
108
+ }
@@ -0,0 +1,105 @@
1
+ // wipeDown — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/wipeDown.glsl
2
+ // Author: Jake Nelson
3
+ // License: MIT
4
+ // Description: A hard-edged wipe from top to bottom
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 _e14 = uv[0u];
24
+ float _e16 = uv[1u];
25
+ metal::float4 _e19 = _to.sample(_sampler, metal::float2(_e14, 1.0 - _e16), metal::level(0.0));
26
+ return _e19;
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 _e14 = uv_1[0u];
35
+ float _e16 = uv_1[1u];
36
+ metal::float4 _e19 = _from.sample(_sampler, metal::float2(_e14, 1.0 - _e16), metal::level(0.0));
37
+ return _e19;
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
+ metal::float2 p = {};
48
+ metal::float4 a = {};
49
+ metal::float2 param = {};
50
+ metal::float4 b = {};
51
+ metal::float2 param_1 = {};
52
+ metal::float2 _e18 = uv_2;
53
+ p = _e18 / metal::float2(1.0, 1.0);
54
+ metal::float2 _e20 = p;
55
+ param = _e20;
56
+ metal::float4 _e21 = getFromColor(param, _from, _sampler);
57
+ a = _e21;
58
+ metal::float2 _e22 = p;
59
+ param_1 = _e22;
60
+ metal::float4 _e23 = getToColor(param_1, _sampler, _to);
61
+ b = _e23;
62
+ metal::float4 _e24 = a;
63
+ metal::float4 _e25 = b;
64
+ float _e27 = p[1u];
65
+ float _e30 = uniforms.progress;
66
+ return metal::mix(_e24, _e25, metal::float4(metal::step(1.0 - _e27, _e30)));
67
+ }
68
+
69
+ void main_1(
70
+ metal::texture2d<float, metal::access::sample> _from,
71
+ metal::sampler _sampler,
72
+ metal::texture2d<float, metal::access::sample> _to,
73
+ constant Uniforms& uniforms,
74
+ thread metal::float4& _fragColor,
75
+ thread metal::float2& _uv_1
76
+ ) {
77
+ metal::float2 param_2 = {};
78
+ metal::float2 _e13 = _uv_1;
79
+ param_2 = _e13;
80
+ metal::float4 _e14 = transition(param_2, _from, _sampler, _to, uniforms);
81
+ _fragColor = _e14;
82
+ return;
83
+ }
84
+
85
+ struct main_Input {
86
+ metal::float2 _uv [[user(loc0), center_perspective]];
87
+ };
88
+ struct main_Output {
89
+ metal::float4 member [[color(0)]];
90
+ };
91
+ fragment main_Output main_(
92
+ main_Input varyings [[stage_in]]
93
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
94
+ , metal::sampler _sampler [[sampler(0)]]
95
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
96
+ , constant Uniforms& uniforms [[buffer(0)]]
97
+ ) {
98
+ metal::float4 _fragColor = {};
99
+ metal::float2 _uv_1 = {};
100
+ const auto _uv = varyings._uv;
101
+ _uv_1 = _uv;
102
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
103
+ metal::float4 _e3 = _fragColor;
104
+ return main_Output { _e3 };
105
+ }