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.
- package/README.md +78 -0
- package/compatibility.json +2070 -0
- package/glsl3/AdvancedMosaic.glsl +21 -0
- package/glsl3/BlockDissolve.glsl +16 -0
- package/glsl3/BookFlip.glsl +37 -0
- package/glsl3/Bounce.glsl +35 -0
- package/glsl3/BowTieHorizontal.glsl +123 -0
- package/glsl3/BowTieVertical.glsl +117 -0
- package/glsl3/BowTieWithParameter.glsl +74 -0
- package/glsl3/Box.glsl +33 -0
- package/glsl3/ButterflyWaveScrawler.glsl +33 -0
- package/glsl3/CircleCrop.glsl +20 -0
- package/glsl3/ColourDistance.glsl +19 -0
- package/glsl3/CrazyParametricFun.glsl +20 -0
- package/glsl3/CrossZoom.glsl +68 -0
- package/glsl3/DefocusBlur.glsl +47 -0
- package/glsl3/Directional.glsl +18 -0
- package/glsl3/DirectionalScaled.glsl +35 -0
- package/glsl3/DoomScreenTransition.glsl +62 -0
- package/glsl3/Dreamy.glsl +14 -0
- package/glsl3/DreamyZoom.glsl +43 -0
- package/glsl3/Drop_Zone_Flicker.glsl +159 -0
- package/glsl3/EdgeTransition.glsl +50 -0
- package/glsl3/FilmBurn.glsl +63 -0
- package/glsl3/Fold.glsl +12 -0
- package/glsl3/GlitchDisplace.glsl +78 -0
- package/glsl3/GlitchMemories.glsl +17 -0
- package/glsl3/GridFlip.glsl +77 -0
- package/glsl3/HSVfade.glsl +29 -0
- package/glsl3/HorizontalClose.glsl +16 -0
- package/glsl3/HorizontalOpen.glsl +18 -0
- package/glsl3/InvertedPageCurl.glsl +228 -0
- package/glsl3/LeftRight.glsl +28 -0
- package/glsl3/LinearBlur.glsl +30 -0
- package/glsl3/Mosaic.glsl +45 -0
- package/glsl3/Overexposure.glsl +25 -0
- package/glsl3/PolkaDotsCurtain.glsl +14 -0
- package/glsl3/PuzzleRight.glsl +57 -0
- package/glsl3/Radial.glsl +19 -0
- package/glsl3/Rectangle.glsl +29 -0
- package/glsl3/RectangleCrop.glsl +30 -0
- package/glsl3/Revolve_Left.glsl +98 -0
- package/glsl3/Rolls.glsl +42 -0
- package/glsl3/RotateScaleVanish.glsl +42 -0
- package/glsl3/SimpleFlip.glsl +14 -0
- package/glsl3/SimpleZoom.glsl +20 -0
- package/glsl3/SimpleZoomOut.glsl +23 -0
- package/glsl3/Slides.glsl +41 -0
- package/glsl3/StarWipe.glsl +51 -0
- package/glsl3/StaticFade.glsl +47 -0
- package/glsl3/StereoViewer.glsl +214 -0
- package/glsl3/StripDatamoshGlitch.glsl +187 -0
- package/glsl3/Swirl.glsl +34 -0
- package/glsl3/TVStatic.glsl +29 -0
- package/glsl3/TilesWave.glsl +63 -0
- package/glsl3/TopBottom.glsl +27 -0
- package/glsl3/VerticalClose.glsl +16 -0
- package/glsl3/VerticalOpen.glsl +17 -0
- package/glsl3/WaterDrop.glsl +21 -0
- package/glsl3/ZoomInCircles.glsl +40 -0
- package/glsl3/ZoomLeftWipe.glsl +36 -0
- package/glsl3/ZoomRigthWipe.glsl +36 -0
- package/glsl3/angular.glsl +25 -0
- package/glsl3/burn.glsl +14 -0
- package/glsl3/burn0.glsl +55 -0
- package/glsl3/cannabisleaf.glsl +18 -0
- package/glsl3/chessboard.glsl +28 -0
- package/glsl3/circle.glsl +24 -0
- package/glsl3/circleopen.glsl +18 -0
- package/glsl3/colorphase.glsl +19 -0
- package/glsl3/coord-from-in.glsl +18 -0
- package/glsl3/crosshatch.glsl +20 -0
- package/glsl3/crosswarp.glsl +10 -0
- package/glsl3/cube.glsl +71 -0
- package/glsl3/directional-easing.glsl +19 -0
- package/glsl3/directionalwarp.glsl +20 -0
- package/glsl3/directionalwipe.glsl +22 -0
- package/glsl3/displacement.glsl +26 -0
- package/glsl3/dissolve.glsl +54 -0
- package/glsl3/doorway.glsl +55 -0
- package/glsl3/fade.glsl +13 -0
- package/glsl3/fadecolor.glsl +15 -0
- package/glsl3/fadegrayscale.glsl +21 -0
- package/glsl3/flyeye.glsl +20 -0
- package/glsl3/fragment.glsl +54 -0
- package/glsl3/heart.glsl +19 -0
- package/glsl3/hexagonalize.glsl +78 -0
- package/glsl3/kaleidoscope.glsl +25 -0
- package/glsl3/luma.glsl +15 -0
- package/glsl3/luminance_melt.glsl +131 -0
- package/glsl3/morph.glsl +20 -0
- package/glsl3/mosaic_transition.glsl +20 -0
- package/glsl3/multiply_blend.glsl +19 -0
- package/glsl3/old_tv_lost_signal.glsl +51 -0
- package/glsl3/parametric_glitch.glsl +29 -0
- package/glsl3/perlin.glsl +66 -0
- package/glsl3/pinwheel.glsl +20 -0
- package/glsl3/pixelize.glsl +21 -0
- package/glsl3/polar_function.glsl +24 -0
- package/glsl3/powerKaleido.glsl +57 -0
- package/glsl3/randomNoisex.glsl +15 -0
- package/glsl3/randomsquares.glsl +20 -0
- package/glsl3/ripple.glsl +20 -0
- package/glsl3/rotateTransition.glsl +22 -0
- package/glsl3/rotate_scale_fade.glsl +39 -0
- package/glsl3/scale-in.glsl +18 -0
- package/glsl3/splitSlideInHorizontal.glsl +26 -0
- package/glsl3/splitSlideInOutHorizontal.glsl +23 -0
- package/glsl3/splitSlideInOutVertical.glsl +23 -0
- package/glsl3/splitSlideInVertical.glsl +24 -0
- package/glsl3/splitSlideOutHorizontal.glsl +22 -0
- package/glsl3/splitSlideOutVertical.glsl +22 -0
- package/glsl3/squareswire.glsl +26 -0
- package/glsl3/squeeze.glsl +23 -0
- package/glsl3/static_wipe.glsl +39 -0
- package/glsl3/swap.glsl +64 -0
- package/glsl3/tangentMotionBlur.glsl +139 -0
- package/glsl3/undulatingBurnOut.glsl +56 -0
- package/glsl3/wind.glsl +25 -0
- package/glsl3/windowblinds.glsl +18 -0
- package/glsl3/windowslice.glsl +16 -0
- package/glsl3/wipeDown.glsl +12 -0
- package/glsl3/wipeLeft.glsl +12 -0
- package/glsl3/wipeRight.glsl +12 -0
- package/glsl3/wipeUp.glsl +12 -0
- package/glsl3/x_axis_translation.glsl +21 -0
- package/glsl3/zoomInOut.glsl +20 -0
- package/index.d.ts +61 -0
- package/layouts.json +2956 -0
- package/llms-full.txt +1707 -0
- package/llms.txt +153 -0
- package/msl/AdvancedMosaic.metal +136 -0
- package/msl/BlockDissolve.metal +108 -0
- package/msl/BookFlip.metal +191 -0
- package/msl/Bounce.metal +128 -0
- package/msl/BowTieHorizontal.metal +375 -0
- package/msl/BowTieVertical.metal +375 -0
- package/msl/BowTieWithParameter.metal +361 -0
- package/msl/Box.metal +204 -0
- package/msl/ButterflyWaveScrawler.metal +190 -0
- package/msl/CircleCrop.metal +117 -0
- package/msl/ColourDistance.metal +110 -0
- package/msl/CrazyParametricFun.metal +139 -0
- package/msl/CrossZoom.metal +274 -0
- package/msl/DefocusBlur.metal +297 -0
- package/msl/Directional.metal +107 -0
- package/msl/DirectionalScaled.metal +147 -0
- package/msl/DoomScreenTransition.metal +212 -0
- package/msl/Dreamy.metal +133 -0
- package/msl/DreamyZoom.metal +182 -0
- package/msl/Drop_Zone_Flicker.metal +561 -0
- package/msl/EdgeTransition.metal +277 -0
- package/msl/FilmBurn.metal +425 -0
- package/msl/Fold.metal +110 -0
- package/msl/GlitchDisplace.metal +374 -0
- package/msl/GlitchMemories.metal +146 -0
- package/msl/GridFlip.metal +285 -0
- package/msl/HSVfade.metal +161 -0
- package/msl/HorizontalClose.metal +100 -0
- package/msl/HorizontalOpen.metal +103 -0
- package/msl/InvertedPageCurl.metal +762 -0
- package/msl/LeftRight.metal +138 -0
- package/msl/LinearBlur.metal +169 -0
- package/msl/Mosaic.metal +212 -0
- package/msl/Overexposure.metal +130 -0
- package/msl/PolkaDotsCurtain.metal +112 -0
- package/msl/PuzzleRight.metal +262 -0
- package/msl/Radial.metal +102 -0
- package/msl/Rectangle.metal +129 -0
- package/msl/RectangleCrop.metal +127 -0
- package/msl/Revolve_Left.metal +363 -0
- package/msl/Rolls.metal +209 -0
- package/msl/RotateScaleVanish.metal +227 -0
- package/msl/SimpleFlip.metal +110 -0
- package/msl/SimpleZoom.metal +116 -0
- package/msl/SimpleZoomOut.metal +127 -0
- package/msl/Slides.metal +244 -0
- package/msl/StarWipe.metal +204 -0
- package/msl/StaticFade.metal +193 -0
- package/msl/StereoViewer.metal +707 -0
- package/msl/StripDatamoshGlitch.metal +828 -0
- package/msl/Swirl.metal +152 -0
- package/msl/TVStatic.metal +136 -0
- package/msl/TilesWave.metal +290 -0
- package/msl/TopBottom.metal +138 -0
- package/msl/VerticalClose.metal +100 -0
- package/msl/VerticalOpen.metal +103 -0
- package/msl/WaterDrop.metal +126 -0
- package/msl/ZoomInCircles.metal +169 -0
- package/msl/ZoomLeftWipe.metal +152 -0
- package/msl/ZoomRigthWipe.metal +152 -0
- package/msl/angular.metal +111 -0
- package/msl/burn.metal +103 -0
- package/msl/burn0.metal +236 -0
- package/msl/cannabisleaf.metal +120 -0
- package/msl/chessboard.metal +144 -0
- package/msl/circle.metal +115 -0
- package/msl/circleopen.metal +124 -0
- package/msl/colorphase.metal +106 -0
- package/msl/coord-from-in.metal +111 -0
- package/msl/crosshatch.metal +126 -0
- package/msl/crosswarp.metal +103 -0
- package/msl/cube.metal +259 -0
- package/msl/directional-easing.metal +111 -0
- package/msl/directionalwarp.metal +121 -0
- package/msl/directionalwipe.metal +120 -0
- package/msl/displacement.metal +129 -0
- package/msl/dissolve.metal +146 -0
- package/msl/doorway.metal +210 -0
- package/msl/fade.metal +95 -0
- package/msl/fadecolor.metal +104 -0
- package/msl/fadegrayscale.metal +123 -0
- package/msl/flyeye.metal +133 -0
- package/msl/fragment.metal +276 -0
- package/msl/heart.metal +134 -0
- package/msl/hexagonalize.metal +274 -0
- package/msl/kaleidoscope.metal +157 -0
- package/msl/luma.metal +113 -0
- package/msl/luminance_melt.metal +337 -0
- package/msl/morph.metal +131 -0
- package/msl/mosaic_transition.metal +137 -0
- package/msl/multiply_blend.metal +127 -0
- package/msl/old_tv_lost_signal.metal +172 -0
- package/msl/parametric_glitch.metal +152 -0
- package/msl/perlin.metal +206 -0
- package/msl/pinwheel.metal +112 -0
- package/msl/pixelize.metal +134 -0
- package/msl/polar_function.metal +116 -0
- package/msl/powerKaleido.metal +304 -0
- package/msl/randomNoisex.metal +115 -0
- package/msl/randomsquares.metal +118 -0
- package/msl/ripple.metal +113 -0
- package/msl/rotateTransition.metal +116 -0
- package/msl/rotate_scale_fade.metal +167 -0
- package/msl/scale-in.metal +111 -0
- package/msl/splitSlideInHorizontal.metal +147 -0
- package/msl/splitSlideInOutHorizontal.metal +138 -0
- package/msl/splitSlideInOutVertical.metal +138 -0
- package/msl/splitSlideInVertical.metal +144 -0
- package/msl/splitSlideOutHorizontal.metal +131 -0
- package/msl/splitSlideOutVertical.metal +131 -0
- package/msl/squareswire.metal +144 -0
- package/msl/squeeze.metal +133 -0
- package/msl/static_wipe.metal +147 -0
- package/msl/swap.metal +256 -0
- package/msl/tangentMotionBlur.metal +583 -0
- package/msl/undulatingBurnOut.metal +217 -0
- package/msl/wind.metal +131 -0
- package/msl/windowblinds.metal +107 -0
- package/msl/windowslice.metal +108 -0
- package/msl/wipeDown.metal +105 -0
- package/msl/wipeLeft.metal +105 -0
- package/msl/wipeRight.metal +105 -0
- package/msl/wipeUp.metal +105 -0
- package/msl/x_axis_translation.metal +110 -0
- package/msl/zoomInOut.metal +125 -0
- package/package.json +1 -1
- package/skills/gl-transitions/SKILL.md +46 -0
- package/skills/gl-transitions/references/catalog.md +224 -0
- package/skills/gl-transitions/references/skia.md +118 -0
- package/skills/gl-transitions/references/video.md +71 -0
- package/skills/gl-transitions/references/webgl.md +122 -0
- package/sksl/index.d.ts +4 -0
- package/sksl/index.js +1 -0
- package/wgsl/AdvancedMosaic.wgsl +108 -0
- package/wgsl/BlockDissolve.wgsl +78 -0
- package/wgsl/BookFlip.wgsl +157 -0
- package/wgsl/Bounce.wgsl +98 -0
- package/wgsl/BowTieHorizontal.wgsl +331 -0
- package/wgsl/BowTieVertical.wgsl +331 -0
- package/wgsl/BowTieWithParameter.wgsl +313 -0
- package/wgsl/Box.wgsl +176 -0
- package/wgsl/ButterflyWaveScrawler.wgsl +158 -0
- package/wgsl/CircleCrop.wgsl +88 -0
- package/wgsl/ColourDistance.wgsl +82 -0
- package/wgsl/CrazyParametricFun.wgsl +111 -0
- package/wgsl/CrossZoom.wgsl +219 -0
- package/wgsl/DefocusBlur.wgsl +269 -0
- package/wgsl/Directional.wgsl +79 -0
- package/wgsl/DirectionalScaled.wgsl +117 -0
- package/wgsl/DoomScreenTransition.wgsl +171 -0
- package/wgsl/Dreamy.wgsl +102 -0
- package/wgsl/DreamyZoom.wgsl +154 -0
- package/wgsl/Drop_Zone_Flicker.wgsl +513 -0
- package/wgsl/EdgeTransition.wgsl +216 -0
- package/wgsl/FilmBurn.wgsl +361 -0
- package/wgsl/Fold.wgsl +82 -0
- package/wgsl/GlitchDisplace.wgsl +327 -0
- package/wgsl/GlitchMemories.wgsl +118 -0
- package/wgsl/GridFlip.wgsl +250 -0
- package/wgsl/HSVfade.wgsl +131 -0
- package/wgsl/HorizontalClose.wgsl +72 -0
- package/wgsl/HorizontalOpen.wgsl +75 -0
- package/wgsl/InvertedPageCurl.wgsl +690 -0
- package/wgsl/LeftRight.wgsl +109 -0
- package/wgsl/LinearBlur.wgsl +131 -0
- package/wgsl/Mosaic.wgsl +174 -0
- package/wgsl/Overexposure.wgsl +102 -0
- package/wgsl/PolkaDotsCurtain.wgsl +83 -0
- package/wgsl/PuzzleRight.wgsl +230 -0
- package/wgsl/Radial.wgsl +74 -0
- package/wgsl/Rectangle.wgsl +100 -0
- package/wgsl/RectangleCrop.wgsl +98 -0
- package/wgsl/Revolve_Left.wgsl +314 -0
- package/wgsl/Rolls.wgsl +181 -0
- package/wgsl/RotateScaleVanish.wgsl +199 -0
- package/wgsl/SimpleFlip.wgsl +82 -0
- package/wgsl/SimpleZoom.wgsl +85 -0
- package/wgsl/SimpleZoomOut.wgsl +96 -0
- package/wgsl/Slides.wgsl +216 -0
- package/wgsl/StarWipe.wgsl +169 -0
- package/wgsl/StaticFade.wgsl +159 -0
- package/wgsl/StereoViewer.wgsl +625 -0
- package/wgsl/StripDatamoshGlitch.wgsl +755 -0
- package/wgsl/Swirl.wgsl +124 -0
- package/wgsl/TVStatic.wgsl +106 -0
- package/wgsl/TilesWave.wgsl +262 -0
- package/wgsl/TopBottom.wgsl +109 -0
- package/wgsl/VerticalClose.wgsl +72 -0
- package/wgsl/VerticalOpen.wgsl +75 -0
- package/wgsl/WaterDrop.wgsl +98 -0
- package/wgsl/ZoomInCircles.wgsl +138 -0
- package/wgsl/ZoomLeftWipe.wgsl +121 -0
- package/wgsl/ZoomRigthWipe.wgsl +121 -0
- package/wgsl/angular.wgsl +83 -0
- package/wgsl/burn.wgsl +74 -0
- package/wgsl/burn0.wgsl +198 -0
- package/wgsl/cannabisleaf.wgsl +92 -0
- package/wgsl/chessboard.wgsl +116 -0
- package/wgsl/circle.wgsl +87 -0
- package/wgsl/circleopen.wgsl +96 -0
- package/wgsl/colorphase.wgsl +77 -0
- package/wgsl/coord-from-in.wgsl +83 -0
- package/wgsl/crosshatch.wgsl +96 -0
- package/wgsl/crosswarp.wgsl +75 -0
- package/wgsl/cube.wgsl +217 -0
- package/wgsl/directional-easing.wgsl +83 -0
- package/wgsl/directionalwarp.wgsl +92 -0
- package/wgsl/directionalwipe.wgsl +91 -0
- package/wgsl/displacement.wgsl +96 -0
- package/wgsl/dissolve.wgsl +116 -0
- package/wgsl/doorway.wgsl +174 -0
- package/wgsl/fade.wgsl +67 -0
- package/wgsl/fadecolor.wgsl +75 -0
- package/wgsl/fadegrayscale.wgsl +93 -0
- package/wgsl/flyeye.wgsl +105 -0
- package/wgsl/fragment.wgsl +227 -0
- package/wgsl/heart.wgsl +103 -0
- package/wgsl/hexagonalize.wgsl +238 -0
- package/wgsl/kaleidoscope.wgsl +124 -0
- package/wgsl/luma.wgsl +80 -0
- package/wgsl/luminance_melt.wgsl +299 -0
- package/wgsl/morph.wgsl +103 -0
- package/wgsl/mosaic_transition.wgsl +107 -0
- package/wgsl/multiply_blend.wgsl +96 -0
- package/wgsl/old_tv_lost_signal.wgsl +142 -0
- package/wgsl/parametric_glitch.wgsl +124 -0
- package/wgsl/perlin.wgsl +174 -0
- package/wgsl/pinwheel.wgsl +84 -0
- package/wgsl/pixelize.wgsl +105 -0
- package/wgsl/polar_function.wgsl +88 -0
- package/wgsl/powerKaleido.wgsl +254 -0
- package/wgsl/randomNoisex.wgsl +85 -0
- package/wgsl/randomsquares.wgsl +87 -0
- package/wgsl/ripple.wgsl +85 -0
- package/wgsl/rotateTransition.wgsl +85 -0
- package/wgsl/rotate_scale_fade.wgsl +138 -0
- package/wgsl/scale-in.wgsl +79 -0
- package/wgsl/splitSlideInHorizontal.wgsl +118 -0
- package/wgsl/splitSlideInOutHorizontal.wgsl +109 -0
- package/wgsl/splitSlideInOutVertical.wgsl +109 -0
- package/wgsl/splitSlideInVertical.wgsl +115 -0
- package/wgsl/splitSlideOutHorizontal.wgsl +102 -0
- package/wgsl/splitSlideOutVertical.wgsl +102 -0
- package/wgsl/squareswire.wgsl +115 -0
- package/wgsl/squeeze.wgsl +105 -0
- package/wgsl/static_wipe.wgsl +117 -0
- package/wgsl/swap.wgsl +218 -0
- package/wgsl/tangentMotionBlur.wgsl +503 -0
- package/wgsl/undulatingBurnOut.wgsl +181 -0
- package/wgsl/wind.wgsl +101 -0
- package/wgsl/windowblinds.wgsl +79 -0
- package/wgsl/windowslice.wgsl +80 -0
- package/wgsl/wipeDown.wgsl +77 -0
- package/wgsl/wipeLeft.wgsl +77 -0
- package/wgsl/wipeRight.wgsl +77 -0
- package/wgsl/wipeUp.wgsl +77 -0
- package/wgsl/x_axis_translation.wgsl +82 -0
- package/wgsl/zoomInOut.wgsl +94 -0
package/msl/ripple.metal
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// ripple — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/ripple.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Ripples spread from the center while crossfading
|
|
5
|
+
// Bindings and uniform layout: see the gl-transitions package README
|
|
6
|
+
|
|
7
|
+
// language: metal1.0
|
|
8
|
+
#include <metal_stdlib>
|
|
9
|
+
#include <simd/simd.h>
|
|
10
|
+
|
|
11
|
+
using metal::uint;
|
|
12
|
+
|
|
13
|
+
struct Uniforms {
|
|
14
|
+
float progress;
|
|
15
|
+
float ratio;
|
|
16
|
+
float amplitude;
|
|
17
|
+
float speed;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
metal::float4 getToColor(
|
|
21
|
+
thread metal::float2& uv,
|
|
22
|
+
metal::sampler _sampler,
|
|
23
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
24
|
+
) {
|
|
25
|
+
float _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
|
+
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 dir = {};
|
|
50
|
+
float dist = {};
|
|
51
|
+
metal::float2 offset = {};
|
|
52
|
+
metal::float2 param = {};
|
|
53
|
+
metal::float2 param_1 = {};
|
|
54
|
+
metal::float2 _e23 = uv_2;
|
|
55
|
+
dir = _e23 - metal::float2(0.5, 0.5);
|
|
56
|
+
metal::float2 _e25 = dir;
|
|
57
|
+
dist = metal::length(_e25);
|
|
58
|
+
metal::float2 _e27 = dir;
|
|
59
|
+
float _e29 = uniforms.progress;
|
|
60
|
+
float _e30 = dist;
|
|
61
|
+
float _e33 = uniforms.amplitude;
|
|
62
|
+
float _e36 = uniforms.progress;
|
|
63
|
+
float _e38 = uniforms.speed;
|
|
64
|
+
float _e47 = uniforms.progress;
|
|
65
|
+
offset = ((_e27 * (metal::sin(((_e29 * _e30) * _e33) - (_e36 * _e38)) + 0.5)) / metal::float2(30.0)) * _e47;
|
|
66
|
+
metal::float2 _e49 = uv_2;
|
|
67
|
+
metal::float2 _e50 = offset;
|
|
68
|
+
param = _e49 + _e50;
|
|
69
|
+
metal::float4 _e52 = getFromColor(param, _from, _sampler);
|
|
70
|
+
metal::float2 _e53 = uv_2;
|
|
71
|
+
param_1 = _e53;
|
|
72
|
+
metal::float4 _e54 = getToColor(param_1, _sampler, _to);
|
|
73
|
+
float _e56 = uniforms.progress;
|
|
74
|
+
return metal::mix(_e52, _e54, metal::float4(metal::smoothstep(0.2, 1.0, _e56)));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
void main_1(
|
|
78
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
79
|
+
metal::sampler _sampler,
|
|
80
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
81
|
+
constant Uniforms& uniforms,
|
|
82
|
+
thread metal::float4& _fragColor,
|
|
83
|
+
thread metal::float2& _uv_1
|
|
84
|
+
) {
|
|
85
|
+
metal::float2 param_2 = {};
|
|
86
|
+
metal::float2 _e18 = _uv_1;
|
|
87
|
+
param_2 = _e18;
|
|
88
|
+
metal::float4 _e19 = transition(param_2, _from, _sampler, _to, uniforms);
|
|
89
|
+
_fragColor = _e19;
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
struct main_Input {
|
|
94
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
95
|
+
};
|
|
96
|
+
struct main_Output {
|
|
97
|
+
metal::float4 member [[color(0)]];
|
|
98
|
+
};
|
|
99
|
+
fragment main_Output main_(
|
|
100
|
+
main_Input varyings [[stage_in]]
|
|
101
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
102
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
103
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
104
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
105
|
+
) {
|
|
106
|
+
metal::float4 _fragColor = {};
|
|
107
|
+
metal::float2 _uv_1 = {};
|
|
108
|
+
const auto _uv = varyings._uv;
|
|
109
|
+
_uv_1 = _uv;
|
|
110
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
111
|
+
metal::float4 _e3 = _fragColor;
|
|
112
|
+
return main_Output { _e3 };
|
|
113
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// rotateTransition — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/rotateTransition.glsl
|
|
2
|
+
// Author: haiyoucuv
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The images spin around the center while crossfading
|
|
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 _e16 = uv[0u];
|
|
24
|
+
float _e18 = uv[1u];
|
|
25
|
+
metal::float4 _e21 = _to.sample(_sampler, metal::float2(_e16, 1.0 - _e18), metal::level(0.0));
|
|
26
|
+
return _e21;
|
|
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 _e16 = uv_1[0u];
|
|
35
|
+
float _e18 = uv_1[1u];
|
|
36
|
+
metal::float4 _e21 = _from.sample(_sampler, metal::float2(_e16, 1.0 - _e18), metal::level(0.0));
|
|
37
|
+
return _e21;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
metal::float2 rotate2D(
|
|
41
|
+
thread metal::float2& uv_2,
|
|
42
|
+
thread float& angle
|
|
43
|
+
) {
|
|
44
|
+
metal::float2 _e16 = uv_2;
|
|
45
|
+
float _e17 = angle;
|
|
46
|
+
float _e19 = angle;
|
|
47
|
+
float _e22 = angle;
|
|
48
|
+
float _e24 = angle;
|
|
49
|
+
return _e16 * metal::float2x2(metal::float2(metal::cos(_e17), -(metal::sin(_e19))), metal::float2(metal::sin(_e22), metal::cos(_e24)));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
metal::float4 transition(
|
|
53
|
+
thread metal::float2& uv_3,
|
|
54
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
55
|
+
metal::sampler _sampler,
|
|
56
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
57
|
+
constant Uniforms& uniforms
|
|
58
|
+
) {
|
|
59
|
+
metal::float2 p = {};
|
|
60
|
+
metal::float2 param = {};
|
|
61
|
+
float param_1 = {};
|
|
62
|
+
metal::float2 param_2 = {};
|
|
63
|
+
metal::float2 param_3 = {};
|
|
64
|
+
metal::float2 _e20 = uv_3;
|
|
65
|
+
float _e24 = uniforms.progress;
|
|
66
|
+
param = _e20 - metal::float2(0.5);
|
|
67
|
+
param_1 = (_e24 * 3.1415925) * 2.0;
|
|
68
|
+
metal::float2 _e27 = rotate2D(param, param_1);
|
|
69
|
+
p = metal::fract(_e27 + metal::float2(0.5));
|
|
70
|
+
metal::float2 _e31 = p;
|
|
71
|
+
param_2 = _e31;
|
|
72
|
+
metal::float4 _e32 = getFromColor(param_2, _from, _sampler);
|
|
73
|
+
metal::float2 _e33 = p;
|
|
74
|
+
param_3 = _e33;
|
|
75
|
+
metal::float4 _e34 = getToColor(param_3, _sampler, _to);
|
|
76
|
+
float _e36 = uniforms.progress;
|
|
77
|
+
return metal::mix(_e32, _e34, metal::float4(_e36));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
void main_1(
|
|
81
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
82
|
+
metal::sampler _sampler,
|
|
83
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
84
|
+
constant Uniforms& uniforms,
|
|
85
|
+
thread metal::float4& _fragColor,
|
|
86
|
+
thread metal::float2& _uv_1
|
|
87
|
+
) {
|
|
88
|
+
metal::float2 param_4 = {};
|
|
89
|
+
metal::float2 _e15 = _uv_1;
|
|
90
|
+
param_4 = _e15;
|
|
91
|
+
metal::float4 _e16 = transition(param_4, _from, _sampler, _to, uniforms);
|
|
92
|
+
_fragColor = _e16;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
struct main_Input {
|
|
97
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
98
|
+
};
|
|
99
|
+
struct main_Output {
|
|
100
|
+
metal::float4 member [[color(0)]];
|
|
101
|
+
};
|
|
102
|
+
fragment main_Output main_(
|
|
103
|
+
main_Input varyings [[stage_in]]
|
|
104
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
105
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
106
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
107
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
108
|
+
) {
|
|
109
|
+
metal::float4 _fragColor = {};
|
|
110
|
+
metal::float2 _uv_1 = {};
|
|
111
|
+
const auto _uv = varyings._uv;
|
|
112
|
+
_uv_1 = _uv;
|
|
113
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
114
|
+
metal::float4 _e3 = _fragColor;
|
|
115
|
+
return main_Output { _e3 };
|
|
116
|
+
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// rotate_scale_fade — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/rotate_scale_fade.glsl
|
|
2
|
+
// Author: Fernando Kuteken
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image spins and zooms while fading to the incoming one, over a background color
|
|
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
|
+
metal::float2 center;
|
|
17
|
+
float rotations;
|
|
18
|
+
float scale;
|
|
19
|
+
char _pad5[8];
|
|
20
|
+
metal::float4 backColor;
|
|
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 _e20 = uv[0u];
|
|
29
|
+
float _e22 = uv[1u];
|
|
30
|
+
metal::float4 _e25 = _to.sample(_sampler, metal::float2(_e20, 1.0 - _e22), metal::level(0.0));
|
|
31
|
+
return _e25;
|
|
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 _e20 = uv_1[0u];
|
|
40
|
+
float _e22 = uv_1[1u];
|
|
41
|
+
metal::float4 _e25 = _from.sample(_sampler, metal::float2(_e20, 1.0 - _e22), metal::level(0.0));
|
|
42
|
+
return _e25;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
metal::float4 transition(
|
|
46
|
+
thread metal::float2& uv_2,
|
|
47
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
48
|
+
metal::sampler _sampler,
|
|
49
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
50
|
+
constant Uniforms& uniforms
|
|
51
|
+
) {
|
|
52
|
+
metal::float2 difference = {};
|
|
53
|
+
metal::float2 dir = {};
|
|
54
|
+
float dist = {};
|
|
55
|
+
float angle = {};
|
|
56
|
+
float c = {};
|
|
57
|
+
float s = {};
|
|
58
|
+
float currentScale = {};
|
|
59
|
+
metal::float2 rotatedDir = {};
|
|
60
|
+
metal::float2 rotatedUv = {};
|
|
61
|
+
metal::float2 param = {};
|
|
62
|
+
metal::float2 param_1 = {};
|
|
63
|
+
bool phi_144_ = {};
|
|
64
|
+
bool phi_151_ = {};
|
|
65
|
+
bool phi_158_ = {};
|
|
66
|
+
metal::float2 _e30 = uv_2;
|
|
67
|
+
metal::float2 _e32 = uniforms.center;
|
|
68
|
+
difference = _e30 - _e32;
|
|
69
|
+
metal::float2 _e34 = difference;
|
|
70
|
+
dir = metal::normalize(_e34);
|
|
71
|
+
metal::float2 _e36 = difference;
|
|
72
|
+
dist = metal::length(_e36);
|
|
73
|
+
float _e39 = uniforms.rotations;
|
|
74
|
+
float _e42 = uniforms.progress;
|
|
75
|
+
angle = (6.2831855 * _e39) * _e42;
|
|
76
|
+
float _e44 = angle;
|
|
77
|
+
c = metal::cos(_e44);
|
|
78
|
+
float _e46 = angle;
|
|
79
|
+
s = metal::sin(_e46);
|
|
80
|
+
float _e49 = uniforms.scale;
|
|
81
|
+
float _e51 = uniforms.progress;
|
|
82
|
+
currentScale = metal::mix(_e49, 1.0, 2.0 * metal::abs(_e51 - 0.5));
|
|
83
|
+
float _e57 = dir[0u];
|
|
84
|
+
float _e58 = c;
|
|
85
|
+
float _e61 = dir[1u];
|
|
86
|
+
float _e62 = s;
|
|
87
|
+
float _e66 = dir[0u];
|
|
88
|
+
float _e67 = s;
|
|
89
|
+
float _e70 = dir[1u];
|
|
90
|
+
float _e71 = c;
|
|
91
|
+
rotatedDir = metal::float2((_e57 * _e58) - (_e61 * _e62), (_e66 * _e67) + (_e70 * _e71));
|
|
92
|
+
metal::float2 _e76 = uniforms.center;
|
|
93
|
+
metal::float2 _e77 = rotatedDir;
|
|
94
|
+
float _e78 = dist;
|
|
95
|
+
float _e80 = currentScale;
|
|
96
|
+
rotatedUv = _e76 + ((_e77 * _e78) / metal::float2(_e80));
|
|
97
|
+
float _e85 = rotatedUv[0u];
|
|
98
|
+
bool _e86 = _e85 < 0.0;
|
|
99
|
+
phi_144_ = _e86;
|
|
100
|
+
if (!(_e86)) {
|
|
101
|
+
float _e89 = rotatedUv[0u];
|
|
102
|
+
phi_144_ = _e89 > 1.0;
|
|
103
|
+
}
|
|
104
|
+
bool _e92 = phi_144_;
|
|
105
|
+
phi_151_ = _e92;
|
|
106
|
+
if (!(_e92)) {
|
|
107
|
+
float _e95 = rotatedUv[1u];
|
|
108
|
+
phi_151_ = _e95 < 0.0;
|
|
109
|
+
}
|
|
110
|
+
bool _e98 = phi_151_;
|
|
111
|
+
phi_158_ = _e98;
|
|
112
|
+
if (!(_e98)) {
|
|
113
|
+
float _e101 = rotatedUv[1u];
|
|
114
|
+
phi_158_ = _e101 > 1.0;
|
|
115
|
+
}
|
|
116
|
+
bool _e104 = phi_158_;
|
|
117
|
+
if (_e104) {
|
|
118
|
+
metal::float4 _e106 = uniforms.backColor;
|
|
119
|
+
return _e106;
|
|
120
|
+
}
|
|
121
|
+
metal::float2 _e107 = rotatedUv;
|
|
122
|
+
param = _e107;
|
|
123
|
+
metal::float4 _e108 = getFromColor(param, _from, _sampler);
|
|
124
|
+
metal::float2 _e109 = rotatedUv;
|
|
125
|
+
param_1 = _e109;
|
|
126
|
+
metal::float4 _e110 = getToColor(param_1, _sampler, _to);
|
|
127
|
+
float _e112 = uniforms.progress;
|
|
128
|
+
return metal::mix(_e108, _e110, metal::float4(_e112));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
void main_1(
|
|
132
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
133
|
+
metal::sampler _sampler,
|
|
134
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
135
|
+
constant Uniforms& uniforms,
|
|
136
|
+
thread metal::float4& _fragColor,
|
|
137
|
+
thread metal::float2& _uv_1
|
|
138
|
+
) {
|
|
139
|
+
metal::float2 param_2 = {};
|
|
140
|
+
metal::float2 _e19 = _uv_1;
|
|
141
|
+
param_2 = _e19;
|
|
142
|
+
metal::float4 _e20 = transition(param_2, _from, _sampler, _to, uniforms);
|
|
143
|
+
_fragColor = _e20;
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
struct main_Input {
|
|
148
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
149
|
+
};
|
|
150
|
+
struct main_Output {
|
|
151
|
+
metal::float4 member [[color(0)]];
|
|
152
|
+
};
|
|
153
|
+
fragment main_Output main_(
|
|
154
|
+
main_Input varyings [[stage_in]]
|
|
155
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
156
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
157
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
158
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
159
|
+
) {
|
|
160
|
+
metal::float4 _fragColor = {};
|
|
161
|
+
metal::float2 _uv_1 = {};
|
|
162
|
+
const auto _uv = varyings._uv;
|
|
163
|
+
_uv_1 = _uv;
|
|
164
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
165
|
+
metal::float4 _e3 = _fragColor;
|
|
166
|
+
return main_Output { _e3 };
|
|
167
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// scale-in — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/scale-in.glsl
|
|
2
|
+
// Author: haiyoucuv
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image scales in from the center while fading in
|
|
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 scale(
|
|
30
|
+
thread metal::float2& uv_1,
|
|
31
|
+
metal::sampler _sampler,
|
|
32
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
33
|
+
constant Uniforms& uniforms
|
|
34
|
+
) {
|
|
35
|
+
metal::float2 param = {};
|
|
36
|
+
metal::float2 _e14 = uv_1;
|
|
37
|
+
float _e18 = uniforms.progress;
|
|
38
|
+
uv_1 = metal::float2(0.5) + ((_e14 - metal::float2(0.5)) * _e18);
|
|
39
|
+
metal::float2 _e22 = uv_1;
|
|
40
|
+
param = _e22;
|
|
41
|
+
metal::float4 _e23 = getToColor(param, _sampler, _to);
|
|
42
|
+
return _e23;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
metal::float4 getFromColor(
|
|
46
|
+
thread metal::float2& uv_2,
|
|
47
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
48
|
+
metal::sampler _sampler
|
|
49
|
+
) {
|
|
50
|
+
float _e14 = uv_2[0u];
|
|
51
|
+
float _e16 = uv_2[1u];
|
|
52
|
+
metal::float4 _e19 = _from.sample(_sampler, metal::float2(_e14, 1.0 - _e16), metal::level(0.0));
|
|
53
|
+
return _e19;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
metal::float4 transition(
|
|
57
|
+
thread metal::float2& uv_3,
|
|
58
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
59
|
+
metal::sampler _sampler,
|
|
60
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
61
|
+
constant Uniforms& uniforms
|
|
62
|
+
) {
|
|
63
|
+
metal::float2 param_1 = {};
|
|
64
|
+
metal::float2 param_2 = {};
|
|
65
|
+
metal::float2 _e15 = uv_3;
|
|
66
|
+
param_1 = _e15;
|
|
67
|
+
metal::float4 _e16 = getFromColor(param_1, _from, _sampler);
|
|
68
|
+
metal::float2 _e17 = uv_3;
|
|
69
|
+
param_2 = _e17;
|
|
70
|
+
metal::float4 _e18 = scale(param_2, _sampler, _to, uniforms);
|
|
71
|
+
float _e20 = uniforms.progress;
|
|
72
|
+
return metal::mix(_e16, _e18, metal::float4(_e20));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
void main_1(
|
|
76
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
77
|
+
metal::sampler _sampler,
|
|
78
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
79
|
+
constant Uniforms& uniforms,
|
|
80
|
+
thread metal::float4& _fragColor,
|
|
81
|
+
thread metal::float2& _uv_1
|
|
82
|
+
) {
|
|
83
|
+
metal::float2 param_3 = {};
|
|
84
|
+
metal::float2 _e13 = _uv_1;
|
|
85
|
+
param_3 = _e13;
|
|
86
|
+
metal::float4 _e14 = transition(param_3, _from, _sampler, _to, uniforms);
|
|
87
|
+
_fragColor = _e14;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
struct main_Input {
|
|
92
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
93
|
+
};
|
|
94
|
+
struct main_Output {
|
|
95
|
+
metal::float4 member [[color(0)]];
|
|
96
|
+
};
|
|
97
|
+
fragment main_Output main_(
|
|
98
|
+
main_Input varyings [[stage_in]]
|
|
99
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
100
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
101
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
102
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
103
|
+
) {
|
|
104
|
+
metal::float4 _fragColor = {};
|
|
105
|
+
metal::float2 _uv_1 = {};
|
|
106
|
+
const auto _uv = varyings._uv;
|
|
107
|
+
_uv_1 = _uv;
|
|
108
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
109
|
+
metal::float4 _e3 = _fragColor;
|
|
110
|
+
return main_Output { _e3 };
|
|
111
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// splitSlideInHorizontal — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/splitSlideInHorizontal.glsl
|
|
2
|
+
// Author: OllyOllyOlly
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image slides in as two halves moving horizontally in opposite directions
|
|
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 reverse;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
metal::float4 getFromColor(
|
|
20
|
+
thread metal::float2& uv,
|
|
21
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
22
|
+
metal::sampler _sampler
|
|
23
|
+
) {
|
|
24
|
+
float _e18 = uv[0u];
|
|
25
|
+
float _e20 = uv[1u];
|
|
26
|
+
metal::float4 _e23 = _from.sample(_sampler, metal::float2(_e18, 1.0 - _e20), metal::level(0.0));
|
|
27
|
+
return _e23;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
metal::float4 getToColor(
|
|
31
|
+
thread metal::float2& uv_1,
|
|
32
|
+
metal::sampler _sampler,
|
|
33
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
34
|
+
) {
|
|
35
|
+
float _e18 = uv_1[0u];
|
|
36
|
+
float _e20 = uv_1[1u];
|
|
37
|
+
metal::float4 _e23 = _to.sample(_sampler, metal::float2(_e18, 1.0 - _e20), metal::level(0.0));
|
|
38
|
+
return _e23;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
bool inBounds(
|
|
42
|
+
thread metal::float2& p
|
|
43
|
+
) {
|
|
44
|
+
bool phi_74_ = {};
|
|
45
|
+
metal::float2 _e17 = p;
|
|
46
|
+
bool _e19 = metal::all(metal::float2(0.0, 0.0) < _e17);
|
|
47
|
+
phi_74_ = _e19;
|
|
48
|
+
if (_e19) {
|
|
49
|
+
metal::float2 _e20 = p;
|
|
50
|
+
phi_74_ = metal::all(_e20 < metal::float2(1.0, 1.0));
|
|
51
|
+
}
|
|
52
|
+
bool _e24 = phi_74_;
|
|
53
|
+
return _e24;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
metal::float4 transition(
|
|
57
|
+
thread metal::float2& uv_2,
|
|
58
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
59
|
+
metal::sampler _sampler,
|
|
60
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
61
|
+
constant Uniforms& uniforms
|
|
62
|
+
) {
|
|
63
|
+
float modifier = {};
|
|
64
|
+
metal::float2 toP = {};
|
|
65
|
+
metal::float2 local = {};
|
|
66
|
+
metal::float2 fromP = {};
|
|
67
|
+
metal::float2 param = {};
|
|
68
|
+
metal::float4 local_1 = {};
|
|
69
|
+
metal::float2 param_1 = {};
|
|
70
|
+
metal::float2 param_2 = {};
|
|
71
|
+
int _e26 = uniforms.reverse;
|
|
72
|
+
modifier = (_e26 != 0) ? -1.0 : 1.0;
|
|
73
|
+
float _e30 = uv_2[1u];
|
|
74
|
+
if (_e30 > 0.5) {
|
|
75
|
+
float _e33 = uv_2[0u];
|
|
76
|
+
float _e35 = uniforms.progress;
|
|
77
|
+
float _e36 = modifier;
|
|
78
|
+
float _e39 = modifier;
|
|
79
|
+
float _e42 = uv_2[1u];
|
|
80
|
+
local = metal::float2((_e33 - (_e35 * _e36)) + _e39, _e42);
|
|
81
|
+
} else {
|
|
82
|
+
float _e45 = uv_2[0u];
|
|
83
|
+
float _e47 = uniforms.progress;
|
|
84
|
+
float _e48 = modifier;
|
|
85
|
+
float _e51 = modifier;
|
|
86
|
+
float _e54 = uv_2[1u];
|
|
87
|
+
local = metal::float2((_e45 + (_e47 * _e48)) - _e51, _e54);
|
|
88
|
+
}
|
|
89
|
+
metal::float2 _e56 = local;
|
|
90
|
+
toP = _e56;
|
|
91
|
+
metal::float2 _e57 = uv_2;
|
|
92
|
+
fromP = _e57;
|
|
93
|
+
metal::float2 _e58 = toP;
|
|
94
|
+
param = _e58;
|
|
95
|
+
bool _e59 = inBounds(param);
|
|
96
|
+
if (_e59) {
|
|
97
|
+
metal::float2 _e60 = toP;
|
|
98
|
+
param_1 = _e60;
|
|
99
|
+
metal::float4 _e61 = getToColor(param_1, _sampler, _to);
|
|
100
|
+
local_1 = _e61;
|
|
101
|
+
} else {
|
|
102
|
+
metal::float2 _e62 = fromP;
|
|
103
|
+
param_2 = _e62;
|
|
104
|
+
metal::float4 _e63 = getFromColor(param_2, _from, _sampler);
|
|
105
|
+
local_1 = _e63;
|
|
106
|
+
}
|
|
107
|
+
metal::float4 _e64 = local_1;
|
|
108
|
+
return _e64;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
void main_1(
|
|
112
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
113
|
+
metal::sampler _sampler,
|
|
114
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
115
|
+
constant Uniforms& uniforms,
|
|
116
|
+
thread metal::float4& _fragColor,
|
|
117
|
+
thread metal::float2& _uv_1
|
|
118
|
+
) {
|
|
119
|
+
metal::float2 param_3 = {};
|
|
120
|
+
metal::float2 _e17 = _uv_1;
|
|
121
|
+
param_3 = _e17;
|
|
122
|
+
metal::float4 _e18 = transition(param_3, _from, _sampler, _to, uniforms);
|
|
123
|
+
_fragColor = _e18;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
struct main_Input {
|
|
128
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
129
|
+
};
|
|
130
|
+
struct main_Output {
|
|
131
|
+
metal::float4 member [[color(0)]];
|
|
132
|
+
};
|
|
133
|
+
fragment main_Output main_(
|
|
134
|
+
main_Input varyings [[stage_in]]
|
|
135
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
136
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
137
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
138
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
139
|
+
) {
|
|
140
|
+
metal::float4 _fragColor = {};
|
|
141
|
+
metal::float2 _uv_1 = {};
|
|
142
|
+
const auto _uv = varyings._uv;
|
|
143
|
+
_uv_1 = _uv;
|
|
144
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
145
|
+
metal::float4 _e3 = _fragColor;
|
|
146
|
+
return main_Output { _e3 };
|
|
147
|
+
}
|