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
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// RotateScaleVanish — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/RotateScaleVanish.glsl
|
|
2
|
+
// Author: Mark Craig
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image spins and shrinks away over the incoming one
|
|
5
|
+
// Bindings and uniform layout: see the gl-transitions package README
|
|
6
|
+
|
|
7
|
+
// language: metal1.0
|
|
8
|
+
#include <metal_stdlib>
|
|
9
|
+
#include <simd/simd.h>
|
|
10
|
+
|
|
11
|
+
using metal::uint;
|
|
12
|
+
|
|
13
|
+
struct Uniforms {
|
|
14
|
+
float progress;
|
|
15
|
+
float ratio;
|
|
16
|
+
int FadeInSecond;
|
|
17
|
+
int ReverseEffect;
|
|
18
|
+
int ReverseRotation;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
metal::float4 getToColor(
|
|
22
|
+
thread metal::float2& uv,
|
|
23
|
+
metal::sampler _sampler,
|
|
24
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
25
|
+
) {
|
|
26
|
+
float _e23 = uv[0u];
|
|
27
|
+
float _e25 = uv[1u];
|
|
28
|
+
metal::float4 _e28 = _to.sample(_sampler, metal::float2(_e23, 1.0 - _e25), metal::level(0.0));
|
|
29
|
+
return _e28;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
metal::float4 getFromColor(
|
|
33
|
+
thread metal::float2& uv_1,
|
|
34
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
35
|
+
metal::sampler _sampler
|
|
36
|
+
) {
|
|
37
|
+
float _e23 = uv_1[0u];
|
|
38
|
+
float _e25 = uv_1[1u];
|
|
39
|
+
metal::float4 _e28 = _from.sample(_sampler, metal::float2(_e23, 1.0 - _e25), metal::level(0.0));
|
|
40
|
+
return _e28;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
metal::float4 transition(
|
|
44
|
+
thread metal::float2& uv_2,
|
|
45
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
46
|
+
metal::sampler _sampler,
|
|
47
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
48
|
+
constant Uniforms& uniforms
|
|
49
|
+
) {
|
|
50
|
+
metal::float2 iResolution = {};
|
|
51
|
+
float t = {};
|
|
52
|
+
float local = {};
|
|
53
|
+
float theta = {};
|
|
54
|
+
float local_1 = {};
|
|
55
|
+
float c1_ = {};
|
|
56
|
+
float s1_ = {};
|
|
57
|
+
float rad = {};
|
|
58
|
+
float xc1_ = {};
|
|
59
|
+
float yc1_ = {};
|
|
60
|
+
float xc2_ = {};
|
|
61
|
+
float yc2_ = {};
|
|
62
|
+
metal::float2 uv2_ = {};
|
|
63
|
+
metal::float4 ColorTo = {};
|
|
64
|
+
metal::float4 local_2 = {};
|
|
65
|
+
metal::float2 param = {};
|
|
66
|
+
metal::float2 param_1 = {};
|
|
67
|
+
metal::float4 col3_ = {};
|
|
68
|
+
metal::float4 local_3 = {};
|
|
69
|
+
metal::float2 param_2 = {};
|
|
70
|
+
metal::float2 param_3 = {};
|
|
71
|
+
bool phi_187_ = {};
|
|
72
|
+
bool phi_193_ = {};
|
|
73
|
+
bool phi_201_ = {};
|
|
74
|
+
float _e44 = uniforms.ratio;
|
|
75
|
+
iResolution = metal::float2(_e44, 1.0);
|
|
76
|
+
int _e47 = uniforms.ReverseEffect;
|
|
77
|
+
if (_e47 != 0) {
|
|
78
|
+
float _e50 = uniforms.progress;
|
|
79
|
+
local = 1.0 - _e50;
|
|
80
|
+
} else {
|
|
81
|
+
float _e53 = uniforms.progress;
|
|
82
|
+
local = _e53;
|
|
83
|
+
}
|
|
84
|
+
float _e54 = local;
|
|
85
|
+
t = _e54;
|
|
86
|
+
int _e56 = uniforms.ReverseRotation;
|
|
87
|
+
if (_e56 != 0) {
|
|
88
|
+
float _e58 = t;
|
|
89
|
+
local_1 = 6.2831855 * _e58;
|
|
90
|
+
} else {
|
|
91
|
+
float _e60 = t;
|
|
92
|
+
local_1 = -6.2831855 * _e60;
|
|
93
|
+
}
|
|
94
|
+
float _e62 = local_1;
|
|
95
|
+
theta = _e62;
|
|
96
|
+
float _e63 = theta;
|
|
97
|
+
c1_ = metal::cos(_e63);
|
|
98
|
+
float _e65 = theta;
|
|
99
|
+
s1_ = metal::sin(_e65);
|
|
100
|
+
float _e67 = t;
|
|
101
|
+
rad = metal::max(0.00001, 1.0 - _e67);
|
|
102
|
+
float _e71 = uv_2[0u];
|
|
103
|
+
float _e74 = iResolution[0u];
|
|
104
|
+
xc1_ = (_e71 - 0.5) * _e74;
|
|
105
|
+
float _e77 = uv_2[1u];
|
|
106
|
+
float _e80 = iResolution[1u];
|
|
107
|
+
yc1_ = (_e77 - 0.5) * _e80;
|
|
108
|
+
float _e82 = xc1_;
|
|
109
|
+
float _e83 = c1_;
|
|
110
|
+
float _e85 = yc1_;
|
|
111
|
+
float _e86 = s1_;
|
|
112
|
+
float _e89 = rad;
|
|
113
|
+
xc2_ = ((_e82 * _e83) - (_e85 * _e86)) / _e89;
|
|
114
|
+
float _e91 = xc1_;
|
|
115
|
+
float _e92 = s1_;
|
|
116
|
+
float _e94 = yc1_;
|
|
117
|
+
float _e95 = c1_;
|
|
118
|
+
float _e98 = rad;
|
|
119
|
+
yc2_ = ((_e91 * _e92) + (_e94 * _e95)) / _e98;
|
|
120
|
+
float _e100 = xc2_;
|
|
121
|
+
float _e102 = iResolution[0u];
|
|
122
|
+
float _e105 = yc2_;
|
|
123
|
+
float _e107 = iResolution[1u];
|
|
124
|
+
uv2_ = metal::float2(_e100 + (_e102 / 2.0), _e105 + (_e107 / 2.0));
|
|
125
|
+
int _e112 = uniforms.ReverseEffect;
|
|
126
|
+
if (_e112 != 0) {
|
|
127
|
+
metal::float2 _e114 = uv_2;
|
|
128
|
+
param = _e114;
|
|
129
|
+
metal::float4 _e115 = getFromColor(param, _from, _sampler);
|
|
130
|
+
local_2 = _e115;
|
|
131
|
+
} else {
|
|
132
|
+
metal::float2 _e116 = uv_2;
|
|
133
|
+
param_1 = _e116;
|
|
134
|
+
metal::float4 _e117 = getToColor(param_1, _sampler, _to);
|
|
135
|
+
local_2 = _e117;
|
|
136
|
+
}
|
|
137
|
+
metal::float4 _e118 = local_2;
|
|
138
|
+
ColorTo = _e118;
|
|
139
|
+
float _e120 = uv2_[0u];
|
|
140
|
+
bool _e121 = _e120 >= 0.0;
|
|
141
|
+
phi_187_ = _e121;
|
|
142
|
+
if (_e121) {
|
|
143
|
+
float _e123 = uv2_[0u];
|
|
144
|
+
float _e125 = iResolution[0u];
|
|
145
|
+
phi_187_ = _e123 <= _e125;
|
|
146
|
+
}
|
|
147
|
+
bool _e128 = phi_187_;
|
|
148
|
+
phi_193_ = _e128;
|
|
149
|
+
if (_e128) {
|
|
150
|
+
float _e130 = uv2_[1u];
|
|
151
|
+
phi_193_ = _e130 >= 0.0;
|
|
152
|
+
}
|
|
153
|
+
bool _e133 = phi_193_;
|
|
154
|
+
phi_201_ = _e133;
|
|
155
|
+
if (_e133) {
|
|
156
|
+
float _e135 = uv2_[1u];
|
|
157
|
+
float _e137 = iResolution[1u];
|
|
158
|
+
phi_201_ = _e135 <= _e137;
|
|
159
|
+
}
|
|
160
|
+
bool _e140 = phi_201_;
|
|
161
|
+
if (_e140) {
|
|
162
|
+
metal::float2 _e141 = iResolution;
|
|
163
|
+
metal::float2 _e142 = uv2_;
|
|
164
|
+
uv2_ = _e142 / _e141;
|
|
165
|
+
int _e145 = uniforms.ReverseEffect;
|
|
166
|
+
if (_e145 != 0) {
|
|
167
|
+
metal::float2 _e147 = uv2_;
|
|
168
|
+
param_2 = _e147;
|
|
169
|
+
metal::float4 _e148 = getToColor(param_2, _sampler, _to);
|
|
170
|
+
local_3 = _e148;
|
|
171
|
+
} else {
|
|
172
|
+
metal::float2 _e149 = uv2_;
|
|
173
|
+
param_3 = _e149;
|
|
174
|
+
metal::float4 _e150 = getFromColor(param_3, _from, _sampler);
|
|
175
|
+
local_3 = _e150;
|
|
176
|
+
}
|
|
177
|
+
metal::float4 _e151 = local_3;
|
|
178
|
+
col3_ = _e151;
|
|
179
|
+
} else {
|
|
180
|
+
int _e153 = uniforms.FadeInSecond;
|
|
181
|
+
metal::float4 _e155 = ColorTo;
|
|
182
|
+
col3_ = metal::select(_e155, metal::float4(0.0, 0.0, 0.0, 1.0), metal::bool4(_e153 != 0));
|
|
183
|
+
}
|
|
184
|
+
float _e158 = t;
|
|
185
|
+
metal::float4 _e160 = col3_;
|
|
186
|
+
float _e162 = t;
|
|
187
|
+
metal::float4 _e163 = ColorTo;
|
|
188
|
+
return (_e160 * (1.0 - _e158)) + (_e163 * _e162);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
void main_1(
|
|
192
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
193
|
+
metal::sampler _sampler,
|
|
194
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
195
|
+
constant Uniforms& uniforms,
|
|
196
|
+
thread metal::float4& _fragColor,
|
|
197
|
+
thread metal::float2& _uv_1
|
|
198
|
+
) {
|
|
199
|
+
metal::float2 param_4 = {};
|
|
200
|
+
metal::float2 _e22 = _uv_1;
|
|
201
|
+
param_4 = _e22;
|
|
202
|
+
metal::float4 _e23 = transition(param_4, _from, _sampler, _to, uniforms);
|
|
203
|
+
_fragColor = _e23;
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
struct main_Input {
|
|
208
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
209
|
+
};
|
|
210
|
+
struct main_Output {
|
|
211
|
+
metal::float4 member [[color(0)]];
|
|
212
|
+
};
|
|
213
|
+
fragment main_Output main_(
|
|
214
|
+
main_Input varyings [[stage_in]]
|
|
215
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
216
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
217
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
218
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
219
|
+
) {
|
|
220
|
+
metal::float4 _fragColor = {};
|
|
221
|
+
metal::float2 _uv_1 = {};
|
|
222
|
+
const auto _uv = varyings._uv;
|
|
223
|
+
_uv_1 = _uv;
|
|
224
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
225
|
+
metal::float4 _e3 = _fragColor;
|
|
226
|
+
return main_Output { _e3 };
|
|
227
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// SimpleFlip — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/SimpleFlip.glsl
|
|
2
|
+
// Author: nwoeanhinnogaehr
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image flips around the vertical axis into the incoming one
|
|
5
|
+
// Bindings and uniform layout: see the gl-transitions package README
|
|
6
|
+
|
|
7
|
+
// language: metal1.0
|
|
8
|
+
#include <metal_stdlib>
|
|
9
|
+
#include <simd/simd.h>
|
|
10
|
+
|
|
11
|
+
using metal::uint;
|
|
12
|
+
|
|
13
|
+
struct Uniforms {
|
|
14
|
+
float progress;
|
|
15
|
+
float ratio;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
metal::float4 getToColor(
|
|
19
|
+
thread metal::float2& uv,
|
|
20
|
+
metal::sampler _sampler,
|
|
21
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
22
|
+
) {
|
|
23
|
+
float _e14 = uv[0u];
|
|
24
|
+
float _e16 = uv[1u];
|
|
25
|
+
metal::float4 _e19 = _to.sample(_sampler, metal::float2(_e14, 1.0 - _e16), metal::level(0.0));
|
|
26
|
+
return _e19;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
metal::float4 getFromColor(
|
|
30
|
+
thread metal::float2& uv_1,
|
|
31
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
32
|
+
metal::sampler _sampler
|
|
33
|
+
) {
|
|
34
|
+
float _e14 = uv_1[0u];
|
|
35
|
+
float _e16 = uv_1[1u];
|
|
36
|
+
metal::float4 _e19 = _from.sample(_sampler, metal::float2(_e14, 1.0 - _e16), metal::level(0.0));
|
|
37
|
+
return _e19;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
metal::float4 transition(
|
|
41
|
+
thread metal::float2& uv_2,
|
|
42
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
43
|
+
metal::sampler _sampler,
|
|
44
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
45
|
+
constant Uniforms& uniforms
|
|
46
|
+
) {
|
|
47
|
+
metal::float2 q = {};
|
|
48
|
+
metal::float4 a = {};
|
|
49
|
+
metal::float2 param = {};
|
|
50
|
+
metal::float4 b = {};
|
|
51
|
+
metal::float2 param_1 = {};
|
|
52
|
+
metal::float2 _e18 = uv_2;
|
|
53
|
+
q = _e18;
|
|
54
|
+
float _e20 = uv_2[0u];
|
|
55
|
+
float _e23 = uniforms.progress;
|
|
56
|
+
uv_2[0u] = (((_e20 - 0.5) / metal::abs(_e23 - 0.5)) * 0.5) + 0.5;
|
|
57
|
+
metal::float2 _e30 = uv_2;
|
|
58
|
+
param = _e30;
|
|
59
|
+
metal::float4 _e31 = getFromColor(param, _from, _sampler);
|
|
60
|
+
a = _e31;
|
|
61
|
+
metal::float2 _e32 = uv_2;
|
|
62
|
+
param_1 = _e32;
|
|
63
|
+
metal::float4 _e33 = getToColor(param_1, _sampler, _to);
|
|
64
|
+
b = _e33;
|
|
65
|
+
metal::float4 _e34 = a;
|
|
66
|
+
metal::float4 _e35 = b;
|
|
67
|
+
float _e37 = uniforms.progress;
|
|
68
|
+
float _e43 = q[0u];
|
|
69
|
+
float _e47 = uniforms.progress;
|
|
70
|
+
metal::float3 _e51 = metal::mix(_e34, _e35, metal::float4(metal::step(0.5, _e37))).xyz * metal::step(metal::abs(_e43 - 0.5), metal::abs(_e47 - 0.5));
|
|
71
|
+
return metal::float4(_e51.x, _e51.y, _e51.z, 1.0);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
void main_1(
|
|
75
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
76
|
+
metal::sampler _sampler,
|
|
77
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
78
|
+
constant Uniforms& uniforms,
|
|
79
|
+
thread metal::float4& _fragColor,
|
|
80
|
+
thread metal::float2& _uv_1
|
|
81
|
+
) {
|
|
82
|
+
metal::float2 param_2 = {};
|
|
83
|
+
metal::float2 _e13 = _uv_1;
|
|
84
|
+
param_2 = _e13;
|
|
85
|
+
metal::float4 _e14 = transition(param_2, _from, _sampler, _to, uniforms);
|
|
86
|
+
_fragColor = _e14;
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
struct main_Input {
|
|
91
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
92
|
+
};
|
|
93
|
+
struct main_Output {
|
|
94
|
+
metal::float4 member [[color(0)]];
|
|
95
|
+
};
|
|
96
|
+
fragment main_Output main_(
|
|
97
|
+
main_Input varyings [[stage_in]]
|
|
98
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
99
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
100
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
101
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
102
|
+
) {
|
|
103
|
+
metal::float4 _fragColor = {};
|
|
104
|
+
metal::float2 _uv_1 = {};
|
|
105
|
+
const auto _uv = varyings._uv;
|
|
106
|
+
_uv_1 = _uv;
|
|
107
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
108
|
+
metal::float4 _e3 = _fragColor;
|
|
109
|
+
return main_Output { _e3 };
|
|
110
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// SimpleZoom — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/SimpleZoom.glsl
|
|
2
|
+
// Author: 0gust1
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Zooms into the outgoing image, then fades to the incoming one
|
|
5
|
+
// Bindings and uniform layout: see the gl-transitions package README
|
|
6
|
+
|
|
7
|
+
// language: metal1.0
|
|
8
|
+
#include <metal_stdlib>
|
|
9
|
+
#include <simd/simd.h>
|
|
10
|
+
|
|
11
|
+
using metal::uint;
|
|
12
|
+
|
|
13
|
+
struct Uniforms {
|
|
14
|
+
float progress;
|
|
15
|
+
float ratio;
|
|
16
|
+
float zoom_quickness;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
metal::float4 getToColor(
|
|
20
|
+
thread metal::float2& uv,
|
|
21
|
+
metal::sampler _sampler,
|
|
22
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
23
|
+
) {
|
|
24
|
+
float _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 zoom(
|
|
42
|
+
thread metal::float2& uv_2,
|
|
43
|
+
thread float& amount
|
|
44
|
+
) {
|
|
45
|
+
metal::float2 _e16 = uv_2;
|
|
46
|
+
float _e19 = amount;
|
|
47
|
+
return metal::float2(0.5) + ((_e16 - metal::float2(0.5)) * (1.0 - _e19));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
metal::float4 transition(
|
|
51
|
+
thread metal::float2& uv_3,
|
|
52
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
53
|
+
metal::sampler _sampler,
|
|
54
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
55
|
+
constant Uniforms& uniforms
|
|
56
|
+
) {
|
|
57
|
+
float nQuick = {};
|
|
58
|
+
metal::float2 param = {};
|
|
59
|
+
float param_1 = {};
|
|
60
|
+
metal::float2 param_2 = {};
|
|
61
|
+
metal::float2 param_3 = {};
|
|
62
|
+
float _e21 = uniforms.zoom_quickness;
|
|
63
|
+
nQuick = metal::clamp(_e21, 0.2, 1.0);
|
|
64
|
+
float _e23 = nQuick;
|
|
65
|
+
float _e25 = uniforms.progress;
|
|
66
|
+
metal::float2 _e27 = uv_3;
|
|
67
|
+
param = _e27;
|
|
68
|
+
param_1 = metal::smoothstep(0.0, _e23, _e25);
|
|
69
|
+
metal::float2 _e28 = zoom(param, param_1);
|
|
70
|
+
param_2 = _e28;
|
|
71
|
+
metal::float4 _e29 = getFromColor(param_2, _from, _sampler);
|
|
72
|
+
metal::float2 _e30 = uv_3;
|
|
73
|
+
param_3 = _e30;
|
|
74
|
+
metal::float4 _e31 = getToColor(param_3, _sampler, _to);
|
|
75
|
+
float _e32 = nQuick;
|
|
76
|
+
float _e35 = uniforms.progress;
|
|
77
|
+
return metal::mix(_e29, _e31, metal::float4(metal::smoothstep(_e32 - 0.2, 1.0, _e35)));
|
|
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,127 @@
|
|
|
1
|
+
// SimpleZoomOut — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/SimpleZoomOut.glsl
|
|
2
|
+
// Author: Tianshuo
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image zooms out into place 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
|
+
float zoom_quickness;
|
|
17
|
+
int fade;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
metal::float4 getToColor(
|
|
21
|
+
thread metal::float2& uv,
|
|
22
|
+
metal::sampler _sampler,
|
|
23
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
24
|
+
) {
|
|
25
|
+
float _e17 = uv[0u];
|
|
26
|
+
float _e19 = uv[1u];
|
|
27
|
+
metal::float4 _e22 = _to.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
28
|
+
return _e22;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
metal::float2 zoom(
|
|
32
|
+
thread metal::float2& uv_1,
|
|
33
|
+
thread float& amount
|
|
34
|
+
) {
|
|
35
|
+
metal::float2 _e17 = uv_1;
|
|
36
|
+
float _e20 = amount;
|
|
37
|
+
return metal::float2(0.5) + ((_e17 - metal::float2(0.5)) * (1.0 - _e20));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
metal::float4 getFromColor(
|
|
41
|
+
thread metal::float2& uv_2,
|
|
42
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
43
|
+
metal::sampler _sampler
|
|
44
|
+
) {
|
|
45
|
+
float _e17 = uv_2[0u];
|
|
46
|
+
float _e19 = uv_2[1u];
|
|
47
|
+
metal::float4 _e22 = _from.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
48
|
+
return _e22;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
metal::float4 transition(
|
|
52
|
+
thread metal::float2& uv_3,
|
|
53
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
54
|
+
metal::sampler _sampler,
|
|
55
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
56
|
+
constant Uniforms& uniforms
|
|
57
|
+
) {
|
|
58
|
+
float nQuick = {};
|
|
59
|
+
metal::float2 param = {};
|
|
60
|
+
metal::float2 param_1 = {};
|
|
61
|
+
float param_2 = {};
|
|
62
|
+
metal::float2 param_3 = {};
|
|
63
|
+
float local = {};
|
|
64
|
+
float _e23 = uniforms.zoom_quickness;
|
|
65
|
+
nQuick = metal::clamp(_e23, 0.2, 1.0);
|
|
66
|
+
metal::float2 _e25 = uv_3;
|
|
67
|
+
param = _e25;
|
|
68
|
+
metal::float4 _e26 = getFromColor(param, _from, _sampler);
|
|
69
|
+
float _e27 = nQuick;
|
|
70
|
+
float _e30 = uniforms.progress;
|
|
71
|
+
metal::float2 _e33 = uv_3;
|
|
72
|
+
param_1 = _e33;
|
|
73
|
+
param_2 = 1.0 - metal::smoothstep(1.0 - _e27, 1.0, _e30);
|
|
74
|
+
metal::float2 _e34 = zoom(param_1, param_2);
|
|
75
|
+
param_3 = _e34;
|
|
76
|
+
metal::float4 _e35 = getToColor(param_3, _sampler, _to);
|
|
77
|
+
int _e37 = uniforms.fade;
|
|
78
|
+
if (_e37 != 0) {
|
|
79
|
+
float _e39 = nQuick;
|
|
80
|
+
float _e42 = uniforms.progress;
|
|
81
|
+
local = metal::smoothstep(1.0 - _e39, 1.0, _e42);
|
|
82
|
+
} else {
|
|
83
|
+
float _e45 = uniforms.progress;
|
|
84
|
+
float _e46 = nQuick;
|
|
85
|
+
local = (_e45 < (1.0 - _e46)) ? 0.0 : 1.0;
|
|
86
|
+
}
|
|
87
|
+
float _e50 = local;
|
|
88
|
+
return metal::mix(_e26, _e35, metal::float4(_e50));
|
|
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_4 = {};
|
|
100
|
+
metal::float2 _e16 = _uv_1;
|
|
101
|
+
param_4 = _e16;
|
|
102
|
+
metal::float4 _e17 = transition(param_4, _from, _sampler, _to, uniforms);
|
|
103
|
+
_fragColor = _e17;
|
|
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
|
+
}
|