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,131 @@
1
+ // morph — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/morph.glsl
2
+ // Author: paniq
3
+ // License: MIT
4
+ // Description: A crossfade in which each image is displaced by the other's colors, like a morph
5
+ // Bindings and uniform layout: see the gl-transitions package README
6
+
7
+ // language: metal1.0
8
+ #include <metal_stdlib>
9
+ #include <simd/simd.h>
10
+
11
+ using metal::uint;
12
+
13
+ struct Uniforms {
14
+ float progress;
15
+ float ratio;
16
+ float strength;
17
+ };
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::float4 transition(
42
+ thread metal::float2& p,
43
+ metal::texture2d<float, metal::access::sample> _from,
44
+ metal::sampler _sampler,
45
+ metal::texture2d<float, metal::access::sample> _to,
46
+ constant Uniforms& uniforms
47
+ ) {
48
+ metal::float4 ca = {};
49
+ metal::float2 param = {};
50
+ metal::float4 cb = {};
51
+ metal::float2 param_1 = {};
52
+ metal::float2 oa = {};
53
+ metal::float2 ob = {};
54
+ metal::float2 oc = {};
55
+ float w0_ = {};
56
+ float w1_ = {};
57
+ metal::float2 param_2 = {};
58
+ metal::float2 param_3 = {};
59
+ metal::float2 _e27 = p;
60
+ param = _e27;
61
+ metal::float4 _e28 = getFromColor(param, _from, _sampler);
62
+ ca = _e28;
63
+ metal::float2 _e29 = p;
64
+ param_1 = _e29;
65
+ metal::float4 _e30 = getToColor(param_1, _sampler, _to);
66
+ cb = _e30;
67
+ metal::float4 _e31 = ca;
68
+ float _e34 = ca[2u];
69
+ oa = (((_e31.xy + metal::float2(_e34)) * 0.5) * 2.0) - metal::float2(1.0);
70
+ metal::float4 _e41 = cb;
71
+ float _e44 = cb[2u];
72
+ ob = (((_e41.xy + metal::float2(_e44)) * 0.5) * 2.0) - metal::float2(1.0);
73
+ metal::float2 _e51 = oa;
74
+ metal::float2 _e52 = ob;
75
+ float _e56 = uniforms.strength;
76
+ oc = metal::mix(_e51, _e52, metal::float2(0.5)) * _e56;
77
+ float _e59 = uniforms.progress;
78
+ w0_ = _e59;
79
+ float _e60 = w0_;
80
+ w1_ = 1.0 - _e60;
81
+ metal::float2 _e62 = p;
82
+ metal::float2 _e63 = oc;
83
+ float _e64 = w0_;
84
+ param_2 = _e62 + (_e63 * _e64);
85
+ metal::float4 _e67 = getFromColor(param_2, _from, _sampler);
86
+ metal::float2 _e68 = p;
87
+ metal::float2 _e69 = oc;
88
+ float _e70 = w1_;
89
+ param_3 = _e68 - (_e69 * _e70);
90
+ metal::float4 _e73 = getToColor(param_3, _sampler, _to);
91
+ float _e75 = uniforms.progress;
92
+ return metal::mix(_e67, _e73, metal::float4(_e75));
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_4 = {};
104
+ metal::float2 _e16 = _uv_1;
105
+ param_4 = _e16;
106
+ metal::float4 _e17 = transition(param_4, _from, _sampler, _to, uniforms);
107
+ _fragColor = _e17;
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,137 @@
1
+ // mosaic_transition — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/mosaic_transition.glsl
2
+ // Author: YueDev
3
+ // License: MIT
4
+ // Description: Both images break into mosaic blocks that blend, then sharpen into 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 mosaicNum;
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 _e16 = uv[0u];
25
+ float _e18 = uv[1u];
26
+ metal::float4 _e21 = _to.sample(_sampler, metal::float2(_e16, 1.0 - _e18), metal::level(0.0));
27
+ return _e21;
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 _e16 = uv_1[0u];
36
+ float _e18 = uv_1[1u];
37
+ metal::float4 _e21 = _from.sample(_sampler, metal::float2(_e16, 1.0 - _e18), metal::level(0.0));
38
+ return _e21;
39
+ }
40
+
41
+ metal::float2 getMosaicUV(
42
+ thread metal::float2& uv_2,
43
+ constant Uniforms& uniforms
44
+ ) {
45
+ float mosaicWidth = {};
46
+ float mX = {};
47
+ float mY = {};
48
+ float _e19 = uniforms.mosaicNum;
49
+ float _e22 = uniforms.progress;
50
+ float _e24 = uniforms.progress;
51
+ mosaicWidth = (2.0 / _e19) * metal::min(_e22, 1.0 - _e24);
52
+ float _e29 = uv_2[0u];
53
+ float _e30 = mosaicWidth;
54
+ mX = metal::floor(_e29 / _e30) + 0.5;
55
+ float _e35 = uv_2[1u];
56
+ float _e36 = mosaicWidth;
57
+ mY = metal::floor(_e35 / _e36) + 0.5;
58
+ float _e40 = mX;
59
+ float _e41 = mosaicWidth;
60
+ float _e43 = mY;
61
+ float _e44 = mosaicWidth;
62
+ return metal::float2(_e40 * _e41, _e43 * _e44);
63
+ }
64
+
65
+ metal::float4 transition(
66
+ thread metal::float2& uv_3,
67
+ metal::texture2d<float, metal::access::sample> _from,
68
+ metal::sampler _sampler,
69
+ metal::texture2d<float, metal::access::sample> _to,
70
+ constant Uniforms& uniforms
71
+ ) {
72
+ metal::float2 mosaicUV = {};
73
+ metal::float2 local = {};
74
+ metal::float2 param = {};
75
+ metal::float2 param_1 = {};
76
+ metal::float2 param_2 = {};
77
+ float _e21 = uniforms.progress;
78
+ float _e23 = uniforms.progress;
79
+ if (metal::min(_e21, 1.0 - _e23) == 0.0) {
80
+ metal::float2 _e27 = uv_3;
81
+ local = _e27;
82
+ } else {
83
+ metal::float2 _e28 = uv_3;
84
+ param = _e28;
85
+ metal::float2 _e29 = getMosaicUV(param, uniforms);
86
+ local = _e29;
87
+ }
88
+ metal::float2 _e30 = local;
89
+ mosaicUV = _e30;
90
+ metal::float2 _e31 = mosaicUV;
91
+ param_1 = _e31;
92
+ metal::float4 _e32 = getFromColor(param_1, _from, _sampler);
93
+ metal::float2 _e33 = mosaicUV;
94
+ param_2 = _e33;
95
+ metal::float4 _e34 = getToColor(param_2, _sampler, _to);
96
+ float _e36 = uniforms.progress;
97
+ float _e38 = uniforms.progress;
98
+ return metal::mix(_e32, _e34, metal::float4(_e36 * _e38));
99
+ }
100
+
101
+ void main_1(
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
+ thread metal::float4& _fragColor,
107
+ thread metal::float2& _uv_1
108
+ ) {
109
+ metal::float2 param_3 = {};
110
+ metal::float2 _e15 = _uv_1;
111
+ param_3 = _e15;
112
+ metal::float4 _e16 = transition(param_3, _from, _sampler, _to, uniforms);
113
+ _fragColor = _e16;
114
+ return;
115
+ }
116
+
117
+ struct main_Input {
118
+ metal::float2 _uv [[user(loc0), center_perspective]];
119
+ };
120
+ struct main_Output {
121
+ metal::float4 member [[color(0)]];
122
+ };
123
+ fragment main_Output main_(
124
+ main_Input varyings [[stage_in]]
125
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
126
+ , metal::sampler _sampler [[sampler(0)]]
127
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
128
+ , constant Uniforms& uniforms [[buffer(0)]]
129
+ ) {
130
+ metal::float4 _fragColor = {};
131
+ metal::float2 _uv_1 = {};
132
+ const auto _uv = varyings._uv;
133
+ _uv_1 = _uv;
134
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
135
+ metal::float4 _e3 = _fragColor;
136
+ return main_Output { _e3 };
137
+ }
@@ -0,0 +1,127 @@
1
+ // multiply_blend — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/multiply_blend.glsl
2
+ // Author: Fernando Kuteken
3
+ // License: MIT
4
+ // Description: A crossfade through the multiplied blend of both images
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 blend(
19
+ thread metal::float4& a,
20
+ thread metal::float4& b
21
+ ) {
22
+ metal::float4 _e15 = a;
23
+ metal::float4 _e16 = b;
24
+ return _e15 * _e16;
25
+ }
26
+
27
+ metal::float4 getToColor(
28
+ thread metal::float2& uv,
29
+ metal::sampler _sampler,
30
+ metal::texture2d<float, metal::access::sample> _to
31
+ ) {
32
+ float _e15 = uv[0u];
33
+ float _e17 = uv[1u];
34
+ metal::float4 _e20 = _to.sample(_sampler, metal::float2(_e15, 1.0 - _e17), metal::level(0.0));
35
+ return _e20;
36
+ }
37
+
38
+ metal::float4 getFromColor(
39
+ thread metal::float2& uv_1,
40
+ metal::texture2d<float, metal::access::sample> _from,
41
+ metal::sampler _sampler
42
+ ) {
43
+ float _e15 = uv_1[0u];
44
+ float _e17 = uv_1[1u];
45
+ metal::float4 _e20 = _from.sample(_sampler, metal::float2(_e15, 1.0 - _e17), metal::level(0.0));
46
+ return _e20;
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
+ metal::float4 blended = {};
57
+ metal::float2 param = {};
58
+ metal::float2 param_1 = {};
59
+ metal::float4 param_2 = {};
60
+ metal::float4 param_3 = {};
61
+ metal::float2 param_4 = {};
62
+ metal::float2 param_5 = {};
63
+ metal::float2 _e21 = uv_2;
64
+ param = _e21;
65
+ metal::float4 _e22 = getFromColor(param, _from, _sampler);
66
+ metal::float2 _e23 = uv_2;
67
+ param_1 = _e23;
68
+ metal::float4 _e24 = getToColor(param_1, _sampler, _to);
69
+ param_2 = _e22;
70
+ param_3 = _e24;
71
+ metal::float4 _e25 = blend(param_2, param_3);
72
+ blended = _e25;
73
+ float _e27 = uniforms.progress;
74
+ if (_e27 < 0.5) {
75
+ metal::float2 _e29 = uv_2;
76
+ param_4 = _e29;
77
+ metal::float4 _e30 = getFromColor(param_4, _from, _sampler);
78
+ metal::float4 _e31 = blended;
79
+ float _e33 = uniforms.progress;
80
+ return metal::mix(_e30, _e31, metal::float4(2.0 * _e33));
81
+ } else {
82
+ metal::float4 _e37 = blended;
83
+ metal::float2 _e38 = uv_2;
84
+ param_5 = _e38;
85
+ metal::float4 _e39 = getToColor(param_5, _sampler, _to);
86
+ float _e41 = uniforms.progress;
87
+ return metal::mix(_e37, _e39, metal::float4((2.0 * _e41) - 1.0));
88
+ }
89
+ }
90
+
91
+ void main_1(
92
+ metal::texture2d<float, metal::access::sample> _from,
93
+ metal::sampler _sampler,
94
+ metal::texture2d<float, metal::access::sample> _to,
95
+ constant Uniforms& uniforms,
96
+ thread metal::float4& _fragColor,
97
+ thread metal::float2& _uv_1
98
+ ) {
99
+ metal::float2 param_6 = {};
100
+ metal::float2 _e14 = _uv_1;
101
+ param_6 = _e14;
102
+ metal::float4 _e15 = transition(param_6, _from, _sampler, _to, uniforms);
103
+ _fragColor = _e15;
104
+ return;
105
+ }
106
+
107
+ struct main_Input {
108
+ metal::float2 _uv [[user(loc0), center_perspective]];
109
+ };
110
+ struct main_Output {
111
+ metal::float4 member [[color(0)]];
112
+ };
113
+ fragment main_Output main_(
114
+ main_Input varyings [[stage_in]]
115
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
116
+ , metal::sampler _sampler [[sampler(0)]]
117
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
118
+ , constant Uniforms& uniforms [[buffer(0)]]
119
+ ) {
120
+ metal::float4 _fragColor = {};
121
+ metal::float2 _uv_1 = {};
122
+ const auto _uv = varyings._uv;
123
+ _uv_1 = _uv;
124
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
125
+ metal::float4 _e3 = _fragColor;
126
+ return main_Output { _e3 };
127
+ }
@@ -0,0 +1,172 @@
1
+ // old_tv_lost_signal — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/old_tv_lost_signal.glsl
2
+ // Author: mernking (gitlab.com/Godswork)
3
+ // License: MIT
4
+ // Description: A crossfade with drifting tracking lines and tearing, like a TV losing its signal
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
+ float hash(
19
+ thread metal::float2& p
20
+ ) {
21
+ metal::float2 _e26 = p;
22
+ return metal::fract(metal::sin(metal::dot(_e26, metal::float2(127.1, 311.7))) * 43758.547);
23
+ }
24
+
25
+ metal::float4 getToColor(
26
+ thread metal::float2& uv,
27
+ metal::sampler _sampler,
28
+ metal::texture2d<float, metal::access::sample> _to
29
+ ) {
30
+ float _e27 = uv[0u];
31
+ float _e29 = uv[1u];
32
+ metal::float4 _e32 = _to.sample(_sampler, metal::float2(_e27, 1.0 - _e29), metal::level(0.0));
33
+ return _e32;
34
+ }
35
+
36
+ metal::float4 getFromColor(
37
+ thread metal::float2& uv_1,
38
+ metal::texture2d<float, metal::access::sample> _from,
39
+ metal::sampler _sampler
40
+ ) {
41
+ float _e27 = uv_1[0u];
42
+ float _e29 = uv_1[1u];
43
+ metal::float4 _e32 = _from.sample(_sampler, metal::float2(_e27, 1.0 - _e29), metal::level(0.0));
44
+ return _e32;
45
+ }
46
+
47
+ metal::float4 transition(
48
+ thread metal::float2& uv_2,
49
+ metal::texture2d<float, metal::access::sample> _from,
50
+ metal::sampler _sampler,
51
+ metal::texture2d<float, metal::access::sample> _to,
52
+ constant Uniforms& uniforms
53
+ ) {
54
+ float p_1 = {};
55
+ float strength = {};
56
+ metal::float2 tv = {};
57
+ metal::float4 fromColor = {};
58
+ metal::float2 param = {};
59
+ metal::float4 toColor = {};
60
+ metal::float2 param_1 = {};
61
+ metal::float4 color = {};
62
+ float lineY = {};
63
+ float noise = {};
64
+ metal::float2 param_2 = {};
65
+ float line = {};
66
+ float drift = {};
67
+ metal::float4 shiftedFrom = {};
68
+ metal::float2 param_3 = {};
69
+ metal::float4 shiftedTo = {};
70
+ metal::float2 param_4 = {};
71
+ metal::float4 lineColor = {};
72
+ float scan = {};
73
+ float _e46 = uniforms.progress;
74
+ p_1 = _e46;
75
+ float _e47 = p_1;
76
+ strength = metal::sin(_e47 * 3.1415927);
77
+ metal::float2 _e50 = uv_2;
78
+ tv = _e50;
79
+ metal::float2 _e51 = tv;
80
+ param = _e51;
81
+ metal::float4 _e52 = getFromColor(param, _from, _sampler);
82
+ fromColor = _e52;
83
+ metal::float2 _e53 = tv;
84
+ param_1 = _e53;
85
+ metal::float4 _e54 = getToColor(param_1, _sampler, _to);
86
+ toColor = _e54;
87
+ metal::float4 _e55 = fromColor;
88
+ metal::float4 _e56 = toColor;
89
+ float _e57 = p_1;
90
+ color = metal::mix(_e55, _e56, metal::float4(_e57));
91
+ float _e61 = tv[1u];
92
+ lineY = metal::floor(_e61 * 120.0);
93
+ float _e64 = lineY;
94
+ float _e65 = p_1;
95
+ param_2 = metal::float2(_e64, _e65 * 20.0);
96
+ float _e68 = hash(param_2);
97
+ noise = _e68;
98
+ float _e69 = noise;
99
+ line = metal::step(0.92, _e69);
100
+ float _e72 = tv[1u];
101
+ float _e74 = p_1;
102
+ float _e79 = strength;
103
+ drift = (metal::sin((_e72 * 30.0) + (_e74 * 10.0)) * 0.02) * _e79;
104
+ metal::float2 _e81 = tv;
105
+ float _e82 = drift;
106
+ param_3 = _e81 + metal::float2(_e82, 0.0);
107
+ metal::float4 _e85 = getFromColor(param_3, _from, _sampler);
108
+ shiftedFrom = _e85;
109
+ metal::float2 _e86 = tv;
110
+ float _e87 = drift;
111
+ param_4 = _e86 + metal::float2(_e87, 0.0);
112
+ metal::float4 _e90 = getToColor(param_4, _sampler, _to);
113
+ shiftedTo = _e90;
114
+ metal::float4 _e91 = shiftedFrom;
115
+ metal::float4 _e92 = shiftedTo;
116
+ float _e93 = p_1;
117
+ lineColor = metal::mix(_e91, _e92, metal::float4(_e93));
118
+ metal::float4 _e96 = color;
119
+ metal::float4 _e97 = lineColor;
120
+ float _e98 = line;
121
+ float _e99 = strength;
122
+ color = metal::mix(_e96, _e97, metal::float4(_e98 * _e99));
123
+ float _e104 = tv[1u];
124
+ scan = metal::sin(_e104 * 900.0) * 0.03;
125
+ float _e108 = scan;
126
+ float _e109 = strength;
127
+ metal::float4 _e111 = color;
128
+ metal::float3 _e114 = _e111.xyz - metal::float3(_e108 * _e109);
129
+ color[0u] = _e114.x;
130
+ color[1u] = _e114.y;
131
+ color[2u] = _e114.z;
132
+ metal::float4 _e121 = color;
133
+ return _e121;
134
+ }
135
+
136
+ void main_1(
137
+ metal::texture2d<float, metal::access::sample> _from,
138
+ metal::sampler _sampler,
139
+ metal::texture2d<float, metal::access::sample> _to,
140
+ constant Uniforms& uniforms,
141
+ thread metal::float4& _fragColor,
142
+ thread metal::float2& _uv_1
143
+ ) {
144
+ metal::float2 param_5 = {};
145
+ metal::float2 _e26 = _uv_1;
146
+ param_5 = _e26;
147
+ metal::float4 _e27 = transition(param_5, _from, _sampler, _to, uniforms);
148
+ _fragColor = _e27;
149
+ return;
150
+ }
151
+
152
+ struct main_Input {
153
+ metal::float2 _uv [[user(loc0), center_perspective]];
154
+ };
155
+ struct main_Output {
156
+ metal::float4 member [[color(0)]];
157
+ };
158
+ fragment main_Output main_(
159
+ main_Input varyings [[stage_in]]
160
+ , metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
161
+ , metal::sampler _sampler [[sampler(0)]]
162
+ , metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
163
+ , constant Uniforms& uniforms [[buffer(0)]]
164
+ ) {
165
+ metal::float4 _fragColor = {};
166
+ metal::float2 _uv_1 = {};
167
+ const auto _uv = varyings._uv;
168
+ _uv_1 = _uv;
169
+ main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
170
+ metal::float4 _e3 = _fragColor;
171
+ return main_Output { _e3 };
172
+ }