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,244 @@
1
+ // Slides — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/Slides.glsl
2
+ // Author: Mark Craig
3
+ // License: MIT
4
+ // Description: The outgoing image slides out, or the incoming one slides in, toward an edge, a corner or the center
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
+ int type;
17
+ int In;
18
+ };
19
+
20
+ metal::float4 getFromColor(
21
+ thread metal::float2& uv,
22
+ metal::texture2d<float, metal::access::sample> _from,
23
+ metal::sampler _sampler
24
+ ) {
25
+ float _e23 = uv[0u];
26
+ float _e25 = uv[1u];
27
+ metal::float4 _e28 = _from.sample(_sampler, metal::float2(_e23, 1.0 - _e25), metal::level(0.0));
28
+ return _e28;
29
+ }
30
+
31
+ metal::float4 getToColor(
32
+ thread metal::float2& uv_1,
33
+ metal::sampler _sampler,
34
+ metal::texture2d<float, metal::access::sample> _to
35
+ ) {
36
+ float _e23 = uv_1[0u];
37
+ float _e25 = uv_1[1u];
38
+ metal::float4 _e28 = _to.sample(_sampler, metal::float2(_e23, 1.0 - _e25), metal::level(0.0));
39
+ return _e28;
40
+ }
41
+
42
+ metal::float4 transition(
43
+ thread metal::float2& uv_2,
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 uv0_ = {};
50
+ float rad = {};
51
+ float local = {};
52
+ float xc1_ = {};
53
+ float yc1_ = {};
54
+ metal::float2 uv2_ = {};
55
+ metal::float4 local_1 = {};
56
+ metal::float2 param = {};
57
+ metal::float2 param_1 = {};
58
+ metal::float4 local_2 = {};
59
+ metal::float2 param_2 = {};
60
+ metal::float2 param_3 = {};
61
+ bool phi_193_ = {};
62
+ bool phi_200_ = {};
63
+ bool phi_209_ = {};
64
+ metal::float2 _e34 = uv_2;
65
+ uv0_ = _e34;
66
+ int _e36 = uniforms.In;
67
+ if (_e36 != 0) {
68
+ float _e39 = uniforms.progress;
69
+ local = _e39;
70
+ } else {
71
+ float _e41 = uniforms.progress;
72
+ local = 1.0 - _e41;
73
+ }
74
+ float _e43 = local;
75
+ rad = _e43;
76
+ int _e45 = uniforms.type;
77
+ if (_e45 == 0) {
78
+ float _e47 = rad;
79
+ xc1_ = 0.5 - (_e47 / 2.0);
80
+ yc1_ = 0.0;
81
+ } else {
82
+ int _e51 = uniforms.type;
83
+ if (_e51 == 1) {
84
+ float _e53 = rad;
85
+ xc1_ = 1.0 - _e53;
86
+ float _e55 = rad;
87
+ yc1_ = 0.5 - (_e55 / 2.0);
88
+ } else {
89
+ int _e59 = uniforms.type;
90
+ if (_e59 == 2) {
91
+ float _e61 = rad;
92
+ xc1_ = 0.5 - (_e61 / 2.0);
93
+ float _e64 = rad;
94
+ yc1_ = 1.0 - _e64;
95
+ } else {
96
+ int _e67 = uniforms.type;
97
+ if (_e67 == 3) {
98
+ xc1_ = 0.0;
99
+ float _e69 = rad;
100
+ yc1_ = 0.5 - (_e69 / 2.0);
101
+ } else {
102
+ int _e73 = uniforms.type;
103
+ if (_e73 == 4) {
104
+ float _e75 = rad;
105
+ xc1_ = 1.0 - _e75;
106
+ yc1_ = 0.0;
107
+ } else {
108
+ int _e78 = uniforms.type;
109
+ if (_e78 == 5) {
110
+ float _e80 = rad;
111
+ xc1_ = 1.0 - _e80;
112
+ float _e82 = rad;
113
+ yc1_ = 1.0 - _e82;
114
+ } else {
115
+ int _e85 = uniforms.type;
116
+ if (_e85 == 6) {
117
+ xc1_ = 0.0;
118
+ float _e87 = rad;
119
+ yc1_ = 1.0 - _e87;
120
+ } else {
121
+ int _e90 = uniforms.type;
122
+ if (_e90 == 7) {
123
+ xc1_ = 0.0;
124
+ yc1_ = 0.0;
125
+ } else {
126
+ int _e93 = uniforms.type;
127
+ if (_e93 == 8) {
128
+ float _e95 = rad;
129
+ xc1_ = 0.5 - (_e95 / 2.0);
130
+ float _e98 = rad;
131
+ yc1_ = 0.5 - (_e98 / 2.0);
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ float _e102 = uv_2[1u];
142
+ uv_2[1u] = 1.0 - _e102;
143
+ float _e106 = uv_2[0u];
144
+ float _e107 = xc1_;
145
+ bool _e108 = _e106 >= _e107;
146
+ phi_193_ = _e108;
147
+ if (_e108) {
148
+ float _e110 = uv_2[0u];
149
+ float _e111 = xc1_;
150
+ float _e112 = rad;
151
+ phi_193_ = _e110 <= (_e111 + _e112);
152
+ }
153
+ bool _e116 = phi_193_;
154
+ phi_200_ = _e116;
155
+ if (_e116) {
156
+ float _e118 = uv_2[1u];
157
+ float _e119 = yc1_;
158
+ phi_200_ = _e118 >= _e119;
159
+ }
160
+ bool _e122 = phi_200_;
161
+ phi_209_ = _e122;
162
+ if (_e122) {
163
+ float _e124 = uv_2[1u];
164
+ float _e125 = yc1_;
165
+ float _e126 = rad;
166
+ phi_209_ = _e124 <= (_e125 + _e126);
167
+ }
168
+ bool _e130 = phi_209_;
169
+ if (_e130) {
170
+ float _e132 = uv_2[0u];
171
+ float _e133 = xc1_;
172
+ float _e135 = rad;
173
+ float _e138 = uv_2[1u];
174
+ float _e139 = yc1_;
175
+ float _e141 = rad;
176
+ uv2_ = metal::float2((_e132 - _e133) / _e135, 1.0 - ((_e138 - _e139) / _e141));
177
+ int _e146 = uniforms.In;
178
+ if (_e146 != 0) {
179
+ metal::float2 _e148 = uv2_;
180
+ param = _e148;
181
+ metal::float4 _e149 = getToColor(param, _sampler, _to);
182
+ local_1 = _e149;
183
+ } else {
184
+ metal::float2 _e150 = uv2_;
185
+ param_1 = _e150;
186
+ metal::float4 _e151 = getFromColor(param_1, _from, _sampler);
187
+ local_1 = _e151;
188
+ }
189
+ metal::float4 _e152 = local_1;
190
+ return _e152;
191
+ }
192
+ int _e154 = uniforms.In;
193
+ if (_e154 != 0) {
194
+ metal::float2 _e156 = uv0_;
195
+ param_2 = _e156;
196
+ metal::float4 _e157 = getFromColor(param_2, _from, _sampler);
197
+ local_2 = _e157;
198
+ } else {
199
+ metal::float2 _e158 = uv0_;
200
+ param_3 = _e158;
201
+ metal::float4 _e159 = getToColor(param_3, _sampler, _to);
202
+ local_2 = _e159;
203
+ }
204
+ metal::float4 _e160 = local_2;
205
+ return _e160;
206
+ }
207
+
208
+ void main_1(
209
+ metal::texture2d<float, metal::access::sample> _from,
210
+ metal::sampler _sampler,
211
+ metal::texture2d<float, metal::access::sample> _to,
212
+ constant Uniforms& uniforms,
213
+ thread metal::float4& _fragColor,
214
+ thread metal::float2& _uv_1
215
+ ) {
216
+ metal::float2 param_4 = {};
217
+ metal::float2 _e22 = _uv_1;
218
+ param_4 = _e22;
219
+ metal::float4 _e23 = transition(param_4, _from, _sampler, _to, uniforms);
220
+ _fragColor = _e23;
221
+ return;
222
+ }
223
+
224
+ struct main_Input {
225
+ metal::float2 _uv [[user(loc0), center_perspective]];
226
+ };
227
+ struct main_Output {
228
+ metal::float4 member [[color(0)]];
229
+ };
230
+ fragment main_Output main_(
231
+ main_Input varyings [[stage_in]]
232
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
233
+ , metal::sampler _sampler [[sampler(0)]]
234
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
235
+ , constant Uniforms& uniforms [[buffer(0)]]
236
+ ) {
237
+ metal::float4 _fragColor = {};
238
+ metal::float2 _uv_1 = {};
239
+ const auto _uv = varyings._uv;
240
+ _uv_1 = _uv;
241
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
242
+ metal::float4 _e3 = _fragColor;
243
+ return main_Output { _e3 };
244
+ }
@@ -0,0 +1,204 @@
1
+ // StarWipe — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/StarWipe.glsl
2
+ // Author: Ben Lucas
3
+ // License: MIT
4
+ // Description: A growing star reveals 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 border_thickness;
17
+ float star_rotation;
18
+ metal::float4 border_color;
19
+ metal::float2 star_center;
20
+ char _pad6[8];
21
+ };
22
+
23
+ metal::float4 getFromColor(
24
+ thread metal::float2& uv,
25
+ metal::texture2d<float, metal::access::sample> _from,
26
+ metal::sampler _sampler
27
+ ) {
28
+ float _e23 = uv[0u];
29
+ float _e25 = uv[1u];
30
+ metal::float4 _e28 = _from.sample(_sampler, metal::float2(_e23, 1.0 - _e25), metal::level(0.0));
31
+ return _e28;
32
+ }
33
+
34
+ metal::float4 getToColor(
35
+ thread metal::float2& uv_1,
36
+ metal::sampler _sampler,
37
+ metal::texture2d<float, metal::access::sample> _to
38
+ ) {
39
+ float _e23 = uv_1[0u];
40
+ float _e25 = uv_1[1u];
41
+ metal::float4 _e28 = _to.sample(_sampler, metal::float2(_e23, 1.0 - _e25), metal::level(0.0));
42
+ return _e28;
43
+ }
44
+
45
+ metal::float2 rotate(
46
+ thread metal::float2& v,
47
+ thread float& theta
48
+ ) {
49
+ float cosTheta = {};
50
+ float sinTheta = {};
51
+ float _e25 = theta;
52
+ cosTheta = metal::cos(_e25);
53
+ float _e27 = theta;
54
+ sinTheta = metal::sin(_e27);
55
+ float _e29 = cosTheta;
56
+ float _e31 = v[0u];
57
+ float _e33 = sinTheta;
58
+ float _e35 = v[1u];
59
+ float _e38 = sinTheta;
60
+ float _e40 = v[0u];
61
+ float _e42 = cosTheta;
62
+ float _e44 = v[1u];
63
+ return metal::float2((_e29 * _e31) - (_e33 * _e35), (_e38 * _e40) + (_e42 * _e44));
64
+ }
65
+
66
+ bool inStar(
67
+ thread metal::float2& uv_2,
68
+ thread metal::float2& center,
69
+ thread float& radius,
70
+ constant Uniforms& uniforms
71
+ ) {
72
+ metal::float2 uv_centered = {};
73
+ metal::float2 param = {};
74
+ float param_1 = {};
75
+ float theta_1 = {};
76
+ metal::float2 uv_rotated = {};
77
+ metal::float2 param_2 = {};
78
+ float param_3 = {};
79
+ float slope = {};
80
+ metal::float2 _e32 = uv_2;
81
+ metal::float2 _e33 = center;
82
+ uv_centered = _e32 - _e33;
83
+ float _e36 = uniforms.star_rotation;
84
+ metal::float2 _e38 = uv_centered;
85
+ param = _e38;
86
+ param_1 = _e36 * 1.2566371;
87
+ metal::float2 _e39 = rotate(param, param_1);
88
+ uv_centered = _e39;
89
+ float _e41 = uv_centered[1u];
90
+ float _e43 = uv_centered[0u];
91
+ theta_1 = metal::atan2(_e41, _e43) + 3.1415927;
92
+ float _e46 = theta_1;
93
+ metal::float2 _e51 = uv_centered;
94
+ param_2 = _e51;
95
+ param_3 = -1.2566371 * (metal::floor(_e46 / 1.2566371) + 0.5);
96
+ metal::float2 _e52 = rotate(param_2, param_3);
97
+ uv_rotated = _e52;
98
+ slope = 0.3;
99
+ float _e54 = uv_rotated[1u];
100
+ if (_e54 > 0.0) {
101
+ float _e56 = radius;
102
+ float _e58 = uv_rotated[0u];
103
+ float _e59 = slope;
104
+ float _e63 = uv_rotated[1u];
105
+ return (_e56 + (_e58 * _e59)) > _e63;
106
+ } else {
107
+ float _e65 = radius;
108
+ float _e68 = uv_rotated[0u];
109
+ float _e69 = slope;
110
+ float _e73 = uv_rotated[1u];
111
+ return (-(_e65) - (_e68 * _e69)) < _e73;
112
+ }
113
+ }
114
+
115
+ metal::float4 transition(
116
+ thread metal::float2& uv_3,
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
+ ) {
122
+ float progressScaled = {};
123
+ metal::float2 param_4 = {};
124
+ metal::float2 param_5 = {};
125
+ float param_6 = {};
126
+ metal::float2 param_7 = {};
127
+ metal::float2 param_8 = {};
128
+ metal::float2 param_9 = {};
129
+ float param_10 = {};
130
+ metal::float2 param_11 = {};
131
+ float _e32 = uniforms.border_thickness;
132
+ float _e36 = uniforms.progress;
133
+ float _e39 = uniforms.border_thickness;
134
+ progressScaled = (((2.0 * _e32) + 1.0) * _e36) - _e39;
135
+ metal::float2 _e41 = uv_3;
136
+ param_4 = _e41;
137
+ metal::float2 _e43 = uniforms.star_center;
138
+ param_5 = _e43;
139
+ float _e44 = progressScaled;
140
+ param_6 = _e44;
141
+ bool _e45 = inStar(param_4, param_5, param_6, uniforms);
142
+ if (_e45) {
143
+ metal::float2 _e46 = uv_3;
144
+ param_7 = _e46;
145
+ metal::float4 _e47 = getToColor(param_7, _sampler, _to);
146
+ return _e47;
147
+ } else {
148
+ float _e48 = progressScaled;
149
+ float _e50 = uniforms.border_thickness;
150
+ metal::float2 _e52 = uv_3;
151
+ param_8 = _e52;
152
+ metal::float2 _e54 = uniforms.star_center;
153
+ param_9 = _e54;
154
+ param_10 = _e48 + _e50;
155
+ bool _e55 = inStar(param_8, param_9, param_10, uniforms);
156
+ if (_e55) {
157
+ metal::float4 _e57 = uniforms.border_color;
158
+ return _e57;
159
+ } else {
160
+ metal::float2 _e58 = uv_3;
161
+ param_11 = _e58;
162
+ metal::float4 _e59 = getFromColor(param_11, _from, _sampler);
163
+ return _e59;
164
+ }
165
+ }
166
+ }
167
+
168
+ void main_1(
169
+ metal::texture2d<float, metal::access::sample> _from,
170
+ metal::sampler _sampler,
171
+ metal::texture2d<float, metal::access::sample> _to,
172
+ constant Uniforms& uniforms,
173
+ thread metal::float4& _fragColor,
174
+ thread metal::float2& _uv_1
175
+ ) {
176
+ metal::float2 param_12 = {};
177
+ metal::float2 _e22 = _uv_1;
178
+ param_12 = _e22;
179
+ metal::float4 _e23 = transition(param_12, _from, _sampler, _to, uniforms);
180
+ _fragColor = _e23;
181
+ return;
182
+ }
183
+
184
+ struct main_Input {
185
+ metal::float2 _uv [[user(loc0), center_perspective]];
186
+ };
187
+ struct main_Output {
188
+ metal::float4 member [[color(0)]];
189
+ };
190
+ fragment main_Output main_(
191
+ main_Input varyings [[stage_in]]
192
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
193
+ , metal::sampler _sampler [[sampler(0)]]
194
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
195
+ , constant Uniforms& uniforms [[buffer(0)]]
196
+ ) {
197
+ metal::float4 _fragColor = {};
198
+ metal::float2 _uv_1 = {};
199
+ const auto _uv = varyings._uv;
200
+ _uv_1 = _uv;
201
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
202
+ metal::float4 _e3 = _fragColor;
203
+ return main_Output { _e3 };
204
+ }
@@ -0,0 +1,193 @@
1
+ // StaticFade — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/StaticFade.glsl
2
+ // Author: Ben Lucas
3
+ // License: MIT
4
+ // Description: Cuts to the incoming image halfway, hidden behind a burst of TV static
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 n_noise_pixels;
17
+ float static_luminosity;
18
+ };
19
+
20
+ float rnd(
21
+ thread metal::float2& st
22
+ ) {
23
+ metal::float2 _e25 = st;
24
+ return metal::fract(metal::sin(metal::dot(_e25, metal::float2(10.530234, 70.23493))) * 12345.545);
25
+ }
26
+
27
+ float staticIntensity(
28
+ thread float& t
29
+ ) {
30
+ float transitionProgress = {};
31
+ float transformedThreshold = {};
32
+ float _e27 = t;
33
+ transitionProgress = metal::abs(2.0 * (_e27 - 0.5));
34
+ float _e31 = transitionProgress;
35
+ transformedThreshold = (1.2 * (1.0 - _e31)) - 0.1;
36
+ float _e35 = transformedThreshold;
37
+ return metal::min(1.0, _e35);
38
+ }
39
+
40
+ metal::float4 staticNoise(
41
+ thread metal::float2& st_1,
42
+ thread float& offset,
43
+ thread float& luminosity
44
+ ) {
45
+ float staticR = {};
46
+ metal::float2 param = {};
47
+ float staticG = {};
48
+ metal::float2 param_1 = {};
49
+ float staticB = {};
50
+ metal::float2 param_2 = {};
51
+ float _e33 = luminosity;
52
+ metal::float2 _e34 = st_1;
53
+ float _e35 = offset;
54
+ float _e37 = offset;
55
+ param = _e34 * metal::float2(_e35 * 2.0, _e37 * 3.0);
56
+ float _e41 = rnd(param);
57
+ staticR = _e33 * _e41;
58
+ float _e43 = luminosity;
59
+ metal::float2 _e44 = st_1;
60
+ float _e45 = offset;
61
+ float _e47 = offset;
62
+ param_1 = _e44 * metal::float2(_e45 * 3.0, _e47 * 5.0);
63
+ float _e51 = rnd(param_1);
64
+ staticG = _e43 * _e51;
65
+ float _e53 = luminosity;
66
+ metal::float2 _e54 = st_1;
67
+ float _e55 = offset;
68
+ float _e57 = offset;
69
+ param_2 = _e54 * metal::float2(_e55 * 5.0, _e57 * 7.0);
70
+ float _e61 = rnd(param_2);
71
+ staticB = _e53 * _e61;
72
+ float _e63 = staticR;
73
+ float _e64 = staticG;
74
+ float _e65 = staticB;
75
+ return metal::float4(_e63, _e64, _e65, 1.0);
76
+ }
77
+
78
+ metal::float4 getToColor(
79
+ thread metal::float2& uv,
80
+ metal::sampler _sampler,
81
+ metal::texture2d<float, metal::access::sample> _to
82
+ ) {
83
+ float _e26 = uv[0u];
84
+ float _e28 = uv[1u];
85
+ metal::float4 _e31 = _to.sample(_sampler, metal::float2(_e26, 1.0 - _e28), metal::level(0.0));
86
+ return _e31;
87
+ }
88
+
89
+ metal::float4 getFromColor(
90
+ thread metal::float2& uv_1,
91
+ metal::texture2d<float, metal::access::sample> _from,
92
+ metal::sampler _sampler
93
+ ) {
94
+ float _e26 = uv_1[0u];
95
+ float _e28 = uv_1[1u];
96
+ metal::float4 _e31 = _from.sample(_sampler, metal::float2(_e26, 1.0 - _e28), metal::level(0.0));
97
+ return _e31;
98
+ }
99
+
100
+ metal::float4 transition(
101
+ thread metal::float2& uv_2,
102
+ metal::texture2d<float, metal::access::sample> _from,
103
+ metal::sampler _sampler,
104
+ metal::texture2d<float, metal::access::sample> _to,
105
+ constant Uniforms& uniforms
106
+ ) {
107
+ float baseMix = {};
108
+ metal::float4 transitionMix = {};
109
+ metal::float2 param_3 = {};
110
+ metal::float2 param_4 = {};
111
+ metal::float2 uvStatic = {};
112
+ metal::float4 staticColor = {};
113
+ metal::float2 param_5 = {};
114
+ float param_6 = {};
115
+ float param_7 = {};
116
+ float staticThresh = {};
117
+ float param_8 = {};
118
+ float staticMix = {};
119
+ metal::float2 param_9 = {};
120
+ float _e39 = uniforms.progress;
121
+ baseMix = metal::step(0.5, _e39);
122
+ metal::float2 _e41 = uv_2;
123
+ param_3 = _e41;
124
+ metal::float4 _e42 = getFromColor(param_3, _from, _sampler);
125
+ metal::float2 _e43 = uv_2;
126
+ param_4 = _e43;
127
+ metal::float4 _e44 = getToColor(param_4, _sampler, _to);
128
+ float _e45 = baseMix;
129
+ transitionMix = metal::mix(_e42, _e44, metal::float4(_e45));
130
+ metal::float2 _e48 = uv_2;
131
+ float _e50 = uniforms.n_noise_pixels;
132
+ float _e54 = uniforms.n_noise_pixels;
133
+ uvStatic = metal::floor(_e48 * _e50) / metal::float2(_e54);
134
+ metal::float2 _e57 = uvStatic;
135
+ param_5 = _e57;
136
+ float _e59 = uniforms.progress;
137
+ param_6 = _e59;
138
+ float _e61 = uniforms.static_luminosity;
139
+ param_7 = _e61;
140
+ metal::float4 _e62 = staticNoise(param_5, param_6, param_7);
141
+ staticColor = _e62;
142
+ float _e64 = uniforms.progress;
143
+ param_8 = _e64;
144
+ float _e65 = staticIntensity(param_8);
145
+ staticThresh = _e65;
146
+ metal::float2 _e66 = uvStatic;
147
+ param_9 = _e66;
148
+ float _e67 = rnd(param_9);
149
+ float _e68 = staticThresh;
150
+ staticMix = metal::step(_e67, _e68);
151
+ metal::float4 _e70 = transitionMix;
152
+ metal::float4 _e71 = staticColor;
153
+ float _e72 = staticMix;
154
+ return metal::mix(_e70, _e71, metal::float4(_e72));
155
+ }
156
+
157
+ void main_1(
158
+ metal::texture2d<float, metal::access::sample> _from,
159
+ metal::sampler _sampler,
160
+ metal::texture2d<float, metal::access::sample> _to,
161
+ constant Uniforms& uniforms,
162
+ thread metal::float4& _fragColor,
163
+ thread metal::float2& _uv_1
164
+ ) {
165
+ metal::float2 param_10 = {};
166
+ metal::float2 _e25 = _uv_1;
167
+ param_10 = _e25;
168
+ metal::float4 _e26 = transition(param_10, _from, _sampler, _to, uniforms);
169
+ _fragColor = _e26;
170
+ return;
171
+ }
172
+
173
+ struct main_Input {
174
+ metal::float2 _uv [[user(loc0), center_perspective]];
175
+ };
176
+ struct main_Output {
177
+ metal::float4 member [[color(0)]];
178
+ };
179
+ fragment main_Output main_(
180
+ main_Input varyings [[stage_in]]
181
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
182
+ , metal::sampler _sampler [[sampler(0)]]
183
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
184
+ , constant Uniforms& uniforms [[buffer(0)]]
185
+ ) {
186
+ metal::float4 _fragColor = {};
187
+ metal::float2 _uv_1 = {};
188
+ const auto _uv = varyings._uv;
189
+ _uv_1 = _uv;
190
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
191
+ metal::float4 _e3 = _fragColor;
192
+ return main_Output { _e3 };
193
+ }