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,144 @@
|
|
|
1
|
+
// squareswire — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/squareswire.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Squares grow along a diagonal sweep to reveal the incoming image
|
|
5
|
+
// Bindings and uniform layout: see the gl-transitions package README
|
|
6
|
+
|
|
7
|
+
// language: metal1.0
|
|
8
|
+
#include <metal_stdlib>
|
|
9
|
+
#include <simd/simd.h>
|
|
10
|
+
|
|
11
|
+
using metal::uint;
|
|
12
|
+
|
|
13
|
+
struct Uniforms {
|
|
14
|
+
float progress;
|
|
15
|
+
float ratio;
|
|
16
|
+
metal::int2 squares;
|
|
17
|
+
metal::float2 direction;
|
|
18
|
+
float smoothness;
|
|
19
|
+
char _pad5[4];
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
metal::float4 getToColor(
|
|
23
|
+
thread metal::float2& uv,
|
|
24
|
+
metal::sampler _sampler,
|
|
25
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
26
|
+
) {
|
|
27
|
+
float _e19 = uv[0u];
|
|
28
|
+
float _e21 = uv[1u];
|
|
29
|
+
metal::float4 _e24 = _to.sample(_sampler, metal::float2(_e19, 1.0 - _e21), metal::level(0.0));
|
|
30
|
+
return _e24;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
metal::float4 getFromColor(
|
|
34
|
+
thread metal::float2& uv_1,
|
|
35
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
36
|
+
metal::sampler _sampler
|
|
37
|
+
) {
|
|
38
|
+
float _e19 = uv_1[0u];
|
|
39
|
+
float _e21 = uv_1[1u];
|
|
40
|
+
metal::float4 _e24 = _from.sample(_sampler, metal::float2(_e19, 1.0 - _e21), metal::level(0.0));
|
|
41
|
+
return _e24;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
metal::float4 transition(
|
|
45
|
+
thread metal::float2& p,
|
|
46
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
47
|
+
metal::sampler _sampler,
|
|
48
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
49
|
+
constant Uniforms& uniforms
|
|
50
|
+
) {
|
|
51
|
+
metal::float2 v = {};
|
|
52
|
+
float d = {};
|
|
53
|
+
float offset = {};
|
|
54
|
+
float pr = {};
|
|
55
|
+
metal::float2 squarep = {};
|
|
56
|
+
metal::float2 squaremin = {};
|
|
57
|
+
metal::float2 squaremax = {};
|
|
58
|
+
float a = {};
|
|
59
|
+
metal::float2 param = {};
|
|
60
|
+
metal::float2 param_1 = {};
|
|
61
|
+
metal::float2 _e29 = uniforms.direction;
|
|
62
|
+
v = metal::normalize(_e29);
|
|
63
|
+
float _e32 = v[0u];
|
|
64
|
+
float _e35 = v[1u];
|
|
65
|
+
metal::float2 _e38 = v;
|
|
66
|
+
v = _e38 / metal::float2(metal::abs(_e32) + metal::abs(_e35));
|
|
67
|
+
float _e42 = v[0u];
|
|
68
|
+
float _e45 = v[1u];
|
|
69
|
+
d = (_e42 * 0.5) + (_e45 * 0.5);
|
|
70
|
+
float _e49 = uniforms.smoothness;
|
|
71
|
+
offset = _e49;
|
|
72
|
+
float _e50 = offset;
|
|
73
|
+
float _e53 = v[0u];
|
|
74
|
+
float _e55 = p[0u];
|
|
75
|
+
float _e58 = v[1u];
|
|
76
|
+
float _e60 = p[1u];
|
|
77
|
+
float _e63 = d;
|
|
78
|
+
float _e66 = uniforms.progress;
|
|
79
|
+
float _e67 = offset;
|
|
80
|
+
pr = metal::smoothstep(-(_e50), 0.0, ((_e53 * _e55) + (_e58 * _e60)) - ((_e63 - 0.5) + (_e66 * (1.0 + _e67))));
|
|
81
|
+
metal::float2 _e73 = p;
|
|
82
|
+
metal::int2 _e75 = uniforms.squares;
|
|
83
|
+
squarep = metal::fract(_e73 * static_cast<metal::float2>(_e75));
|
|
84
|
+
float _e79 = pr;
|
|
85
|
+
squaremin = metal::float2(_e79 / 2.0);
|
|
86
|
+
float _e82 = pr;
|
|
87
|
+
squaremax = metal::float2(1.0 - (_e82 / 2.0));
|
|
88
|
+
float _e87 = uniforms.progress;
|
|
89
|
+
float _e91 = squaremin[0u];
|
|
90
|
+
float _e93 = squarep[0u];
|
|
91
|
+
float _e97 = squaremin[1u];
|
|
92
|
+
float _e99 = squarep[1u];
|
|
93
|
+
float _e103 = squarep[0u];
|
|
94
|
+
float _e105 = squaremax[0u];
|
|
95
|
+
float _e109 = squarep[1u];
|
|
96
|
+
float _e111 = squaremax[1u];
|
|
97
|
+
a = ((((1.0 - metal::step(_e87, 0.0)) * metal::step(_e91, _e93)) * metal::step(_e97, _e99)) * metal::step(_e103, _e105)) * metal::step(_e109, _e111);
|
|
98
|
+
metal::float2 _e114 = p;
|
|
99
|
+
param = _e114;
|
|
100
|
+
metal::float4 _e115 = getFromColor(param, _from, _sampler);
|
|
101
|
+
metal::float2 _e116 = p;
|
|
102
|
+
param_1 = _e116;
|
|
103
|
+
metal::float4 _e117 = getToColor(param_1, _sampler, _to);
|
|
104
|
+
float _e118 = a;
|
|
105
|
+
return metal::mix(_e115, _e117, metal::float4(_e118));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
void main_1(
|
|
109
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
110
|
+
metal::sampler _sampler,
|
|
111
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
112
|
+
constant Uniforms& uniforms,
|
|
113
|
+
thread metal::float4& _fragColor,
|
|
114
|
+
thread metal::float2& _uv_1
|
|
115
|
+
) {
|
|
116
|
+
metal::float2 param_2 = {};
|
|
117
|
+
metal::float2 _e18 = _uv_1;
|
|
118
|
+
param_2 = _e18;
|
|
119
|
+
metal::float4 _e19 = transition(param_2, _from, _sampler, _to, uniforms);
|
|
120
|
+
_fragColor = _e19;
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
struct main_Input {
|
|
125
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
126
|
+
};
|
|
127
|
+
struct main_Output {
|
|
128
|
+
metal::float4 member [[color(0)]];
|
|
129
|
+
};
|
|
130
|
+
fragment main_Output main_(
|
|
131
|
+
main_Input varyings [[stage_in]]
|
|
132
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
133
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
134
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
135
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
136
|
+
) {
|
|
137
|
+
metal::float4 _fragColor = {};
|
|
138
|
+
metal::float2 _uv_1 = {};
|
|
139
|
+
const auto _uv = varyings._uv;
|
|
140
|
+
_uv_1 = _uv;
|
|
141
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
142
|
+
metal::float4 _e3 = _fragColor;
|
|
143
|
+
return main_Output { _e3 };
|
|
144
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// squeeze — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/squeeze.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image is squeezed into a line with color separation, revealing 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 colorSeparation;
|
|
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 _e17 = uv[0u];
|
|
25
|
+
float _e19 = uv[1u];
|
|
26
|
+
metal::float4 _e22 = _from.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
27
|
+
return _e22;
|
|
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 _e17 = uv_1[0u];
|
|
36
|
+
float _e19 = uv_1[1u];
|
|
37
|
+
metal::float4 _e22 = _to.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& uv_2,
|
|
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
|
+
float y = {};
|
|
49
|
+
metal::float2 param = {};
|
|
50
|
+
metal::float2 fp = {};
|
|
51
|
+
metal::float2 off = {};
|
|
52
|
+
metal::float4 c = {};
|
|
53
|
+
metal::float2 param_1 = {};
|
|
54
|
+
metal::float4 cn = {};
|
|
55
|
+
metal::float2 param_2 = {};
|
|
56
|
+
metal::float4 cp = {};
|
|
57
|
+
metal::float2 param_3 = {};
|
|
58
|
+
float _e27 = uv_2[1u];
|
|
59
|
+
float _e30 = uniforms.progress;
|
|
60
|
+
y = 0.5 + ((_e27 - 0.5) / (1.0 - _e30));
|
|
61
|
+
float _e34 = y;
|
|
62
|
+
float _e36 = y;
|
|
63
|
+
if ((_e34 < 0.0) || (_e36 > 1.0)) {
|
|
64
|
+
metal::float2 _e39 = uv_2;
|
|
65
|
+
param = _e39;
|
|
66
|
+
metal::float4 _e40 = getToColor(param, _sampler, _to);
|
|
67
|
+
return _e40;
|
|
68
|
+
} else {
|
|
69
|
+
float _e42 = uv_2[0u];
|
|
70
|
+
float _e43 = y;
|
|
71
|
+
fp = metal::float2(_e42, _e43);
|
|
72
|
+
float _e46 = uniforms.progress;
|
|
73
|
+
float _e48 = uniforms.colorSeparation;
|
|
74
|
+
off = metal::float2(0.0, _e48) * _e46;
|
|
75
|
+
metal::float2 _e51 = fp;
|
|
76
|
+
param_1 = _e51;
|
|
77
|
+
metal::float4 _e52 = getFromColor(param_1, _from, _sampler);
|
|
78
|
+
c = _e52;
|
|
79
|
+
metal::float2 _e53 = fp;
|
|
80
|
+
metal::float2 _e54 = off;
|
|
81
|
+
param_2 = _e53 - _e54;
|
|
82
|
+
metal::float4 _e56 = getFromColor(param_2, _from, _sampler);
|
|
83
|
+
cn = _e56;
|
|
84
|
+
metal::float2 _e57 = fp;
|
|
85
|
+
metal::float2 _e58 = off;
|
|
86
|
+
param_3 = _e57 + _e58;
|
|
87
|
+
metal::float4 _e60 = getFromColor(param_3, _from, _sampler);
|
|
88
|
+
cp = _e60;
|
|
89
|
+
float _e62 = cn[0u];
|
|
90
|
+
float _e64 = c[1u];
|
|
91
|
+
float _e66 = cp[2u];
|
|
92
|
+
float _e68 = c[3u];
|
|
93
|
+
return metal::float4(_e62, _e64, _e66, _e68);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
void main_1(
|
|
98
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
99
|
+
metal::sampler _sampler,
|
|
100
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
101
|
+
constant Uniforms& uniforms,
|
|
102
|
+
thread metal::float4& _fragColor,
|
|
103
|
+
thread metal::float2& _uv_1
|
|
104
|
+
) {
|
|
105
|
+
metal::float2 param_4 = {};
|
|
106
|
+
metal::float2 _e16 = _uv_1;
|
|
107
|
+
param_4 = _e16;
|
|
108
|
+
metal::float4 _e17 = transition(param_4, _from, _sampler, _to, uniforms);
|
|
109
|
+
_fragColor = _e17;
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
struct main_Input {
|
|
114
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
115
|
+
};
|
|
116
|
+
struct main_Output {
|
|
117
|
+
metal::float4 member [[color(0)]];
|
|
118
|
+
};
|
|
119
|
+
fragment main_Output main_(
|
|
120
|
+
main_Input varyings [[stage_in]]
|
|
121
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
122
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
123
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
124
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
125
|
+
) {
|
|
126
|
+
metal::float4 _fragColor = {};
|
|
127
|
+
metal::float2 _uv_1 = {};
|
|
128
|
+
const auto _uv = varyings._uv;
|
|
129
|
+
_uv_1 = _uv;
|
|
130
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
131
|
+
metal::float4 _e3 = _fragColor;
|
|
132
|
+
return main_Output { _e3 };
|
|
133
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// static_wipe — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/static_wipe.glsl
|
|
2
|
+
// Author: Ben Lucas
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A wipe from top to bottom with a band of TV static at its edge
|
|
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 u_transitionUpToDown;
|
|
17
|
+
float u_max_static_span;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
float rnd(
|
|
21
|
+
thread metal::float2& st
|
|
22
|
+
) {
|
|
23
|
+
metal::float2 _e20 = st;
|
|
24
|
+
return metal::fract(metal::sin(metal::dot(_e20, metal::float2(10.0, 70.0))) * 12345.545);
|
|
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 _e21 = uv[0u];
|
|
33
|
+
float _e23 = uv[1u];
|
|
34
|
+
metal::float4 _e26 = _to.sample(_sampler, metal::float2(_e21, 1.0 - _e23), metal::level(0.0));
|
|
35
|
+
return _e26;
|
|
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 _e21 = uv_1[0u];
|
|
44
|
+
float _e23 = uv_1[1u];
|
|
45
|
+
metal::float4 _e26 = _from.sample(_sampler, metal::float2(_e21, 1.0 - _e23), metal::level(0.0));
|
|
46
|
+
return _e26;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
metal::float4 transition(
|
|
50
|
+
thread metal::float2& uv_2,
|
|
51
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
52
|
+
metal::sampler _sampler,
|
|
53
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
54
|
+
constant Uniforms& uniforms
|
|
55
|
+
) {
|
|
56
|
+
float span = {};
|
|
57
|
+
float transitionEdge = {};
|
|
58
|
+
float local = {};
|
|
59
|
+
float mixRatio = {};
|
|
60
|
+
metal::float4 transitionMix = {};
|
|
61
|
+
metal::float2 param = {};
|
|
62
|
+
metal::float2 param_1 = {};
|
|
63
|
+
float noiseEnvelope = {};
|
|
64
|
+
metal::float4 noise = {};
|
|
65
|
+
metal::float2 param_2 = {};
|
|
66
|
+
float _e31 = uniforms.u_max_static_span;
|
|
67
|
+
float _e33 = uniforms.progress;
|
|
68
|
+
span = _e31 * metal::pow(metal::sin(3.1415927 * _e33), 0.5);
|
|
69
|
+
int _e39 = uniforms.u_transitionUpToDown;
|
|
70
|
+
if (_e39 != 0) {
|
|
71
|
+
float _e42 = uv_2[1u];
|
|
72
|
+
local = 1.0 - _e42;
|
|
73
|
+
} else {
|
|
74
|
+
float _e45 = uv_2[1u];
|
|
75
|
+
local = _e45;
|
|
76
|
+
}
|
|
77
|
+
float _e46 = local;
|
|
78
|
+
transitionEdge = _e46;
|
|
79
|
+
float _e48 = uniforms.progress;
|
|
80
|
+
float _e49 = transitionEdge;
|
|
81
|
+
mixRatio = 1.0 - metal::step(_e48, _e49);
|
|
82
|
+
metal::float2 _e52 = uv_2;
|
|
83
|
+
param = _e52;
|
|
84
|
+
metal::float4 _e53 = getFromColor(param, _from, _sampler);
|
|
85
|
+
metal::float2 _e54 = uv_2;
|
|
86
|
+
param_1 = _e54;
|
|
87
|
+
metal::float4 _e55 = getToColor(param_1, _sampler, _to);
|
|
88
|
+
float _e56 = mixRatio;
|
|
89
|
+
transitionMix = metal::mix(_e53, _e55, metal::float4(_e56));
|
|
90
|
+
float _e60 = uniforms.progress;
|
|
91
|
+
float _e61 = span;
|
|
92
|
+
float _e64 = uniforms.progress;
|
|
93
|
+
float _e65 = transitionEdge;
|
|
94
|
+
float _e68 = uniforms.progress;
|
|
95
|
+
float _e70 = uniforms.progress;
|
|
96
|
+
float _e71 = span;
|
|
97
|
+
float _e73 = transitionEdge;
|
|
98
|
+
noiseEnvelope = metal::smoothstep(_e60 - _e61, _e64, _e65) * (1.0 - metal::smoothstep(_e68, _e70 + _e71, _e73));
|
|
99
|
+
metal::float2 _e77 = uv_2;
|
|
100
|
+
float _e79 = uniforms.progress;
|
|
101
|
+
param_2 = _e77 * (1.0 + _e79);
|
|
102
|
+
float _e82 = rnd(param_2);
|
|
103
|
+
metal::float3 _e83 = metal::float3(_e82);
|
|
104
|
+
noise = metal::float4(_e83.x, _e83.y, _e83.z, 1.0);
|
|
105
|
+
metal::float4 _e88 = transitionMix;
|
|
106
|
+
metal::float4 _e89 = noise;
|
|
107
|
+
float _e90 = noiseEnvelope;
|
|
108
|
+
return metal::mix(_e88, _e89, metal::float4(_e90));
|
|
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 _e20 = _uv_1;
|
|
121
|
+
param_3 = _e20;
|
|
122
|
+
metal::float4 _e21 = transition(param_3, _from, _sampler, _to, uniforms);
|
|
123
|
+
_fragColor = _e21;
|
|
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
|
+
}
|
package/msl/swap.metal
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
// swap — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/swap.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The two images swap places in 3D, with a floor reflection
|
|
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 reflection;
|
|
17
|
+
float perspective;
|
|
18
|
+
float depth;
|
|
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 _e32 = uv[0u];
|
|
27
|
+
float _e34 = uv[1u];
|
|
28
|
+
metal::float4 _e37 = _to.sample(_sampler, metal::float2(_e32, 1.0 - _e34), metal::level(0.0));
|
|
29
|
+
return _e37;
|
|
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 _e32 = uv_1[0u];
|
|
38
|
+
float _e34 = uv_1[1u];
|
|
39
|
+
metal::float4 _e37 = _from.sample(_sampler, metal::float2(_e32, 1.0 - _e34), metal::level(0.0));
|
|
40
|
+
return _e37;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
bool inBounds(
|
|
44
|
+
thread metal::float2& p
|
|
45
|
+
) {
|
|
46
|
+
bool phi_84_ = {};
|
|
47
|
+
metal::float2 _e31 = p;
|
|
48
|
+
bool _e33 = metal::all(metal::float2(0.0, 0.0) < _e31);
|
|
49
|
+
phi_84_ = _e33;
|
|
50
|
+
if (_e33) {
|
|
51
|
+
metal::float2 _e34 = p;
|
|
52
|
+
phi_84_ = metal::all(_e34 < metal::float2(1.0, 1.0));
|
|
53
|
+
}
|
|
54
|
+
bool _e38 = phi_84_;
|
|
55
|
+
return _e38;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
metal::float2 project(
|
|
59
|
+
thread metal::float2& p_1
|
|
60
|
+
) {
|
|
61
|
+
metal::float2 _e31 = p_1;
|
|
62
|
+
return (_e31 * metal::float2(1.0, -1.2)) + metal::float2(0.0, -0.02);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
metal::float4 bgColor(
|
|
66
|
+
thread metal::float2& p_2,
|
|
67
|
+
thread metal::float2& pfr,
|
|
68
|
+
thread metal::float2& pto,
|
|
69
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
70
|
+
metal::sampler _sampler,
|
|
71
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
72
|
+
constant Uniforms& uniforms
|
|
73
|
+
) {
|
|
74
|
+
metal::float4 c = {};
|
|
75
|
+
metal::float2 param = {};
|
|
76
|
+
metal::float2 param_1 = {};
|
|
77
|
+
metal::float2 param_2 = {};
|
|
78
|
+
metal::float2 param_3 = {};
|
|
79
|
+
metal::float2 param_4 = {};
|
|
80
|
+
metal::float2 param_5 = {};
|
|
81
|
+
c = metal::float4(0.0, 0.0, 0.0, 1.0);
|
|
82
|
+
metal::float2 _e40 = pfr;
|
|
83
|
+
param = _e40;
|
|
84
|
+
metal::float2 _e41 = project(param);
|
|
85
|
+
pfr = _e41;
|
|
86
|
+
metal::float2 _e42 = pfr;
|
|
87
|
+
param_1 = _e42;
|
|
88
|
+
bool _e43 = inBounds(param_1);
|
|
89
|
+
if (_e43) {
|
|
90
|
+
metal::float2 _e44 = pfr;
|
|
91
|
+
param_2 = _e44;
|
|
92
|
+
metal::float4 _e45 = getFromColor(param_2, _from, _sampler);
|
|
93
|
+
float _e47 = uniforms.reflection;
|
|
94
|
+
float _e49 = pfr[1u];
|
|
95
|
+
metal::float4 _e54 = c;
|
|
96
|
+
c = _e54 + metal::mix(metal::float4(0.0, 0.0, 0.0, 1.0), _e45, metal::float4(_e47 * metal::mix(1.0, 0.0, _e49)));
|
|
97
|
+
}
|
|
98
|
+
metal::float2 _e56 = pto;
|
|
99
|
+
param_3 = _e56;
|
|
100
|
+
metal::float2 _e57 = project(param_3);
|
|
101
|
+
pto = _e57;
|
|
102
|
+
metal::float2 _e58 = pto;
|
|
103
|
+
param_4 = _e58;
|
|
104
|
+
bool _e59 = inBounds(param_4);
|
|
105
|
+
if (_e59) {
|
|
106
|
+
metal::float2 _e60 = pto;
|
|
107
|
+
param_5 = _e60;
|
|
108
|
+
metal::float4 _e61 = getToColor(param_5, _sampler, _to);
|
|
109
|
+
float _e63 = uniforms.reflection;
|
|
110
|
+
float _e65 = pto[1u];
|
|
111
|
+
metal::float4 _e70 = c;
|
|
112
|
+
c = _e70 + metal::mix(metal::float4(0.0, 0.0, 0.0, 1.0), _e61, metal::float4(_e63 * metal::mix(1.0, 0.0, _e65)));
|
|
113
|
+
}
|
|
114
|
+
metal::float4 _e72 = c;
|
|
115
|
+
return _e72;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
metal::float4 transition(
|
|
119
|
+
thread metal::float2& p_3,
|
|
120
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
121
|
+
metal::sampler _sampler,
|
|
122
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
123
|
+
constant Uniforms& uniforms
|
|
124
|
+
) {
|
|
125
|
+
metal::float2 pto_1 = {};
|
|
126
|
+
float size = {};
|
|
127
|
+
float persp = {};
|
|
128
|
+
metal::float2 pfr_1 = {};
|
|
129
|
+
metal::float2 param_6 = {};
|
|
130
|
+
metal::float2 param_7 = {};
|
|
131
|
+
metal::float2 param_8 = {};
|
|
132
|
+
metal::float2 param_9 = {};
|
|
133
|
+
metal::float2 param_10 = {};
|
|
134
|
+
metal::float2 param_11 = {};
|
|
135
|
+
metal::float2 param_12 = {};
|
|
136
|
+
metal::float2 param_13 = {};
|
|
137
|
+
metal::float2 param_14 = {};
|
|
138
|
+
metal::float2 param_15 = {};
|
|
139
|
+
metal::float2 param_16 = {};
|
|
140
|
+
pto_1 = metal::float2(-1.0, -1.0);
|
|
141
|
+
float _e47 = uniforms.depth;
|
|
142
|
+
float _e49 = uniforms.progress;
|
|
143
|
+
size = metal::mix(1.0, _e47, _e49);
|
|
144
|
+
float _e52 = uniforms.perspective;
|
|
145
|
+
float _e54 = uniforms.progress;
|
|
146
|
+
persp = _e52 * _e54;
|
|
147
|
+
metal::float2 _e56 = p_3;
|
|
148
|
+
float _e58 = size;
|
|
149
|
+
float _e60 = uniforms.perspective;
|
|
150
|
+
float _e62 = uniforms.progress;
|
|
151
|
+
float _e66 = size;
|
|
152
|
+
float _e67 = size;
|
|
153
|
+
float _e68 = persp;
|
|
154
|
+
float _e71 = p_3[0u];
|
|
155
|
+
pfr_1 = ((_e56 + metal::float2(-0.0, -0.5)) * metal::float2(_e58 / (1.0 - (_e60 * _e62)), _e66 / (1.0 - ((_e67 * _e68) * _e71)))) + metal::float2(0.0, 0.5);
|
|
156
|
+
float _e79 = uniforms.depth;
|
|
157
|
+
float _e81 = uniforms.progress;
|
|
158
|
+
size = metal::mix(1.0, _e79, 1.0 - _e81);
|
|
159
|
+
float _e85 = uniforms.perspective;
|
|
160
|
+
float _e87 = uniforms.progress;
|
|
161
|
+
persp = _e85 * (1.0 - _e87);
|
|
162
|
+
metal::float2 _e90 = p_3;
|
|
163
|
+
float _e92 = size;
|
|
164
|
+
float _e94 = uniforms.perspective;
|
|
165
|
+
float _e96 = uniforms.progress;
|
|
166
|
+
float _e101 = size;
|
|
167
|
+
float _e102 = size;
|
|
168
|
+
float _e103 = persp;
|
|
169
|
+
float _e106 = p_3[0u];
|
|
170
|
+
pto_1 = ((_e90 + metal::float2(-1.0, -0.5)) * metal::float2(_e92 / (1.0 - (_e94 * (1.0 - _e96))), _e101 / (1.0 - ((_e102 * _e103) * (0.5 - _e106))))) + metal::float2(1.0, 0.5);
|
|
171
|
+
float _e115 = uniforms.progress;
|
|
172
|
+
if (_e115 < 0.5) {
|
|
173
|
+
metal::float2 _e117 = pfr_1;
|
|
174
|
+
param_6 = _e117;
|
|
175
|
+
bool _e118 = inBounds(param_6);
|
|
176
|
+
if (_e118) {
|
|
177
|
+
metal::float2 _e119 = pfr_1;
|
|
178
|
+
param_7 = _e119;
|
|
179
|
+
metal::float4 _e120 = getFromColor(param_7, _from, _sampler);
|
|
180
|
+
return _e120;
|
|
181
|
+
}
|
|
182
|
+
metal::float2 _e121 = pto_1;
|
|
183
|
+
param_8 = _e121;
|
|
184
|
+
bool _e122 = inBounds(param_8);
|
|
185
|
+
if (_e122) {
|
|
186
|
+
metal::float2 _e123 = pto_1;
|
|
187
|
+
param_9 = _e123;
|
|
188
|
+
metal::float4 _e124 = getToColor(param_9, _sampler, _to);
|
|
189
|
+
return _e124;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
metal::float2 _e125 = pto_1;
|
|
193
|
+
param_10 = _e125;
|
|
194
|
+
bool _e126 = inBounds(param_10);
|
|
195
|
+
if (_e126) {
|
|
196
|
+
metal::float2 _e127 = pto_1;
|
|
197
|
+
param_11 = _e127;
|
|
198
|
+
metal::float4 _e128 = getToColor(param_11, _sampler, _to);
|
|
199
|
+
return _e128;
|
|
200
|
+
}
|
|
201
|
+
metal::float2 _e129 = pfr_1;
|
|
202
|
+
param_12 = _e129;
|
|
203
|
+
bool _e130 = inBounds(param_12);
|
|
204
|
+
if (_e130) {
|
|
205
|
+
metal::float2 _e131 = pfr_1;
|
|
206
|
+
param_13 = _e131;
|
|
207
|
+
metal::float4 _e132 = getFromColor(param_13, _from, _sampler);
|
|
208
|
+
return _e132;
|
|
209
|
+
}
|
|
210
|
+
metal::float2 _e133 = p_3;
|
|
211
|
+
param_14 = _e133;
|
|
212
|
+
metal::float2 _e134 = pfr_1;
|
|
213
|
+
param_15 = _e134;
|
|
214
|
+
metal::float2 _e135 = pto_1;
|
|
215
|
+
param_16 = _e135;
|
|
216
|
+
metal::float4 _e136 = bgColor(param_14, param_15, param_16, _from, _sampler, _to, uniforms);
|
|
217
|
+
return _e136;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
void main_1(
|
|
221
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
222
|
+
metal::sampler _sampler,
|
|
223
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
224
|
+
constant Uniforms& uniforms,
|
|
225
|
+
thread metal::float4& _fragColor,
|
|
226
|
+
thread metal::float2& _uv_1
|
|
227
|
+
) {
|
|
228
|
+
metal::float2 param_17 = {};
|
|
229
|
+
metal::float2 _e31 = _uv_1;
|
|
230
|
+
param_17 = _e31;
|
|
231
|
+
metal::float4 _e32 = transition(param_17, _from, _sampler, _to, uniforms);
|
|
232
|
+
_fragColor = _e32;
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
struct main_Input {
|
|
237
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
238
|
+
};
|
|
239
|
+
struct main_Output {
|
|
240
|
+
metal::float4 member [[color(0)]];
|
|
241
|
+
};
|
|
242
|
+
fragment main_Output main_(
|
|
243
|
+
main_Input varyings [[stage_in]]
|
|
244
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
245
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
246
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
247
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
248
|
+
) {
|
|
249
|
+
metal::float4 _fragColor = {};
|
|
250
|
+
metal::float2 _uv_1 = {};
|
|
251
|
+
const auto _uv = varyings._uv;
|
|
252
|
+
_uv_1 = _uv;
|
|
253
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
254
|
+
metal::float4 _e3 = _fragColor;
|
|
255
|
+
return main_Output { _e3 };
|
|
256
|
+
}
|