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,116 @@
|
|
|
1
|
+
// polar_function — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/polar_function.glsl
|
|
2
|
+
// Author: Fernando Kuteken
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A flower shape with several petals grows 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
|
+
int segments;
|
|
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 _e20 = uv[0u];
|
|
25
|
+
float _e22 = uv[1u];
|
|
26
|
+
metal::float4 _e25 = _to.sample(_sampler, metal::float2(_e20, 1.0 - _e22), metal::level(0.0));
|
|
27
|
+
return _e25;
|
|
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 _e20 = uv_1[0u];
|
|
36
|
+
float _e22 = uv_1[1u];
|
|
37
|
+
metal::float4 _e25 = _from.sample(_sampler, metal::float2(_e20, 1.0 - _e22), metal::level(0.0));
|
|
38
|
+
return _e25;
|
|
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 angle = {};
|
|
49
|
+
float normalized = {};
|
|
50
|
+
float radius = {};
|
|
51
|
+
float difference = {};
|
|
52
|
+
metal::float2 param = {};
|
|
53
|
+
metal::float2 param_1 = {};
|
|
54
|
+
float _e26 = uv_2[1u];
|
|
55
|
+
float _e29 = uv_2[0u];
|
|
56
|
+
angle = metal::atan2(_e26 - 0.5, _e29 - 0.5) - 1.5707964;
|
|
57
|
+
float _e33 = angle;
|
|
58
|
+
normalized = (_e33 + 4.712389) * 6.2831855;
|
|
59
|
+
int _e37 = uniforms.segments;
|
|
60
|
+
float _e39 = angle;
|
|
61
|
+
radius = (metal::cos(static_cast<float>(_e37) * _e39) + 4.0) / 4.0;
|
|
62
|
+
metal::float2 _e44 = uv_2;
|
|
63
|
+
difference = metal::length(_e44 - metal::float2(0.5, 0.5));
|
|
64
|
+
float _e47 = difference;
|
|
65
|
+
float _e48 = radius;
|
|
66
|
+
float _e50 = uniforms.progress;
|
|
67
|
+
if (_e47 > (_e48 * _e50)) {
|
|
68
|
+
metal::float2 _e53 = uv_2;
|
|
69
|
+
param = _e53;
|
|
70
|
+
metal::float4 _e54 = getFromColor(param, _from, _sampler);
|
|
71
|
+
return _e54;
|
|
72
|
+
} else {
|
|
73
|
+
metal::float2 _e55 = uv_2;
|
|
74
|
+
param_1 = _e55;
|
|
75
|
+
metal::float4 _e56 = getToColor(param_1, _sampler, _to);
|
|
76
|
+
return _e56;
|
|
77
|
+
}
|
|
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_2 = {};
|
|
89
|
+
metal::float2 _e19 = _uv_1;
|
|
90
|
+
param_2 = _e19;
|
|
91
|
+
metal::float4 _e20 = transition(param_2, _from, _sampler, _to, uniforms);
|
|
92
|
+
_fragColor = _e20;
|
|
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,304 @@
|
|
|
1
|
+
// powerKaleido — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/powerKaleido.glsl
|
|
2
|
+
// Author: Boundless
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The image folds into an animated kaleidoscope before 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 scale;
|
|
17
|
+
float z;
|
|
18
|
+
float speed;
|
|
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 _e28 = uv[0u];
|
|
27
|
+
float _e30 = uv[1u];
|
|
28
|
+
metal::float4 _e33 = _to.sample(_sampler, metal::float2(_e28, 1.0 - _e30), metal::level(0.0));
|
|
29
|
+
return _e33;
|
|
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 _e28 = uv_1[0u];
|
|
38
|
+
float _e30 = uv_1[1u];
|
|
39
|
+
metal::float4 _e33 = _from.sample(_sampler, metal::float2(_e28, 1.0 - _e30), metal::level(0.0));
|
|
40
|
+
return _e33;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
metal::float2 refl(
|
|
44
|
+
thread metal::float2& p,
|
|
45
|
+
thread metal::float2& o,
|
|
46
|
+
thread metal::float2& n
|
|
47
|
+
) {
|
|
48
|
+
metal::float2 _e29 = o;
|
|
49
|
+
metal::float2 _e31 = n;
|
|
50
|
+
metal::float2 _e33 = p;
|
|
51
|
+
metal::float2 _e34 = o;
|
|
52
|
+
metal::float2 _e36 = n;
|
|
53
|
+
metal::float2 _e40 = p;
|
|
54
|
+
return ((_e29 * 2.0) + ((_e31 * 2.0) * metal::dot(_e33 - _e34, _e36))) - _e40;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
metal::float2 rot(
|
|
58
|
+
thread metal::float2& p_1,
|
|
59
|
+
thread metal::float2& o_1,
|
|
60
|
+
thread float& a
|
|
61
|
+
) {
|
|
62
|
+
float s = {};
|
|
63
|
+
float c = {};
|
|
64
|
+
float _e31 = a;
|
|
65
|
+
s = metal::sin(_e31);
|
|
66
|
+
float _e33 = a;
|
|
67
|
+
c = metal::cos(_e33);
|
|
68
|
+
metal::float2 _e35 = o_1;
|
|
69
|
+
float _e36 = c;
|
|
70
|
+
float _e37 = s;
|
|
71
|
+
float _e39 = s;
|
|
72
|
+
float _e40 = c;
|
|
73
|
+
metal::float2 _e44 = p_1;
|
|
74
|
+
metal::float2 _e45 = o_1;
|
|
75
|
+
return _e35 + (metal::float2x2(metal::float2(_e36, -(_e37)), metal::float2(_e39, _e40)) * (_e44 - _e45));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
metal::float4 mainImage(
|
|
79
|
+
thread metal::float2& uv_2,
|
|
80
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
81
|
+
metal::sampler _sampler,
|
|
82
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
83
|
+
constant Uniforms& uniforms
|
|
84
|
+
) {
|
|
85
|
+
float dist = {};
|
|
86
|
+
metal::float2 uv0_ = {};
|
|
87
|
+
metal::float2 param = {};
|
|
88
|
+
metal::float2 param_1 = {};
|
|
89
|
+
float param_2 = {};
|
|
90
|
+
float theta = {};
|
|
91
|
+
int iter = {};
|
|
92
|
+
float i = {};
|
|
93
|
+
float ts = {};
|
|
94
|
+
metal::float2 param_3 = {};
|
|
95
|
+
metal::float2 param_4 = {};
|
|
96
|
+
metal::float2 param_5 = {};
|
|
97
|
+
metal::float2 param_6 = {};
|
|
98
|
+
metal::float2 param_7 = {};
|
|
99
|
+
float param_8 = {};
|
|
100
|
+
metal::float2 uvMix = {};
|
|
101
|
+
metal::float4 color = {};
|
|
102
|
+
metal::float2 param_9 = {};
|
|
103
|
+
metal::float2 param_10 = {};
|
|
104
|
+
bool phi_209_ = {};
|
|
105
|
+
bool phi_235_ = {};
|
|
106
|
+
bool phi_236_ = {};
|
|
107
|
+
float _e47 = uniforms.scale;
|
|
108
|
+
dist = _e47 / 10.0;
|
|
109
|
+
metal::float2 _e49 = uv_2;
|
|
110
|
+
uv0_ = _e49;
|
|
111
|
+
metal::float2 _e50 = uv_2;
|
|
112
|
+
uv_2 = _e50 - metal::float2(0.5);
|
|
113
|
+
float _e54 = uniforms.ratio;
|
|
114
|
+
float _e56 = uv_2[0u];
|
|
115
|
+
uv_2[0u] = _e56 * _e54;
|
|
116
|
+
float _e60 = uniforms.z;
|
|
117
|
+
metal::float2 _e61 = uv_2;
|
|
118
|
+
uv_2 = _e61 * _e60;
|
|
119
|
+
float _e64 = uniforms.progress;
|
|
120
|
+
float _e66 = uniforms.speed;
|
|
121
|
+
metal::float2 _e68 = uv_2;
|
|
122
|
+
param = _e68;
|
|
123
|
+
param_1 = metal::float2(0.0, 0.0);
|
|
124
|
+
param_2 = _e64 * _e66;
|
|
125
|
+
metal::float2 _e69 = rot(param, param_1, param_2);
|
|
126
|
+
uv_2 = _e69;
|
|
127
|
+
float _e71 = uniforms.progress;
|
|
128
|
+
theta = (_e71 * 6.0) + 6.2831855;
|
|
129
|
+
iter = 0;
|
|
130
|
+
uint2 loop_bound = uint2(4294967295u);
|
|
131
|
+
bool loop_init = true;
|
|
132
|
+
while(true) {
|
|
133
|
+
if (metal::all(loop_bound == uint2(0u))) { break; }
|
|
134
|
+
loop_bound -= uint2(loop_bound.y == 0u, 1u);
|
|
135
|
+
if (!loop_init) {
|
|
136
|
+
int _e156 = iter;
|
|
137
|
+
iter = as_type<int>(as_type<uint>(_e156) + as_type<uint>(1));
|
|
138
|
+
}
|
|
139
|
+
loop_init = false;
|
|
140
|
+
int _e74 = iter;
|
|
141
|
+
if (_e74 < 10) {
|
|
142
|
+
i = 0.0;
|
|
143
|
+
uint2 loop_bound_1 = uint2(4294967295u);
|
|
144
|
+
bool loop_init_1 = true;
|
|
145
|
+
while(true) {
|
|
146
|
+
if (metal::all(loop_bound_1 == uint2(0u))) { break; }
|
|
147
|
+
loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u);
|
|
148
|
+
if (!loop_init_1) {
|
|
149
|
+
float _e154 = i;
|
|
150
|
+
i = _e154 + 2.0943952;
|
|
151
|
+
}
|
|
152
|
+
loop_init_1 = false;
|
|
153
|
+
float _e76 = i;
|
|
154
|
+
if (_e76 < 6.2831855) {
|
|
155
|
+
float _e78 = i;
|
|
156
|
+
ts = (metal::sign(metal::asin(metal::cos(_e78))) == 1.0) ? 1.0 : 0.0;
|
|
157
|
+
float _e84 = ts;
|
|
158
|
+
bool _e85 = _e84 == 1.0;
|
|
159
|
+
phi_209_ = _e85;
|
|
160
|
+
if (_e85) {
|
|
161
|
+
float _e87 = uv_2[1u];
|
|
162
|
+
float _e88 = dist;
|
|
163
|
+
float _e89 = i;
|
|
164
|
+
float _e93 = i;
|
|
165
|
+
float _e96 = uv_2[0u];
|
|
166
|
+
float _e97 = dist;
|
|
167
|
+
float _e98 = i;
|
|
168
|
+
phi_209_ = (_e87 - (_e88 * metal::cos(_e89))) > (metal::tan(_e93) * (_e96 + (_e97 * metal::sin(_e98))));
|
|
169
|
+
}
|
|
170
|
+
bool _e105 = phi_209_;
|
|
171
|
+
phi_236_ = _e105;
|
|
172
|
+
if (!(_e105)) {
|
|
173
|
+
float _e107 = ts;
|
|
174
|
+
bool _e108 = _e107 == 0.0;
|
|
175
|
+
phi_235_ = _e108;
|
|
176
|
+
if (_e108) {
|
|
177
|
+
float _e110 = uv_2[1u];
|
|
178
|
+
float _e111 = dist;
|
|
179
|
+
float _e112 = i;
|
|
180
|
+
float _e116 = i;
|
|
181
|
+
float _e119 = uv_2[0u];
|
|
182
|
+
float _e120 = dist;
|
|
183
|
+
float _e121 = i;
|
|
184
|
+
phi_235_ = (_e110 - (_e111 * metal::cos(_e112))) < (metal::tan(_e116) * (_e119 + (_e120 * metal::sin(_e121))));
|
|
185
|
+
}
|
|
186
|
+
bool _e128 = phi_235_;
|
|
187
|
+
phi_236_ = _e128;
|
|
188
|
+
}
|
|
189
|
+
bool _e130 = phi_236_;
|
|
190
|
+
if (_e130) {
|
|
191
|
+
float _e132 = uv_2[0u];
|
|
192
|
+
float _e133 = i;
|
|
193
|
+
float _e135 = dist;
|
|
194
|
+
float _e140 = uv_2[1u];
|
|
195
|
+
float _e141 = i;
|
|
196
|
+
float _e143 = dist;
|
|
197
|
+
float _e148 = i;
|
|
198
|
+
float _e150 = i;
|
|
199
|
+
param_3 = metal::float2(_e132 + ((metal::sin(_e133) * _e135) * 2.0), _e140 - ((metal::cos(_e141) * _e143) * 2.0));
|
|
200
|
+
param_4 = metal::float2(0.0, 0.0);
|
|
201
|
+
param_5 = metal::float2(metal::cos(_e148), metal::sin(_e150));
|
|
202
|
+
metal::float2 _e153 = refl(param_3, param_4, param_5);
|
|
203
|
+
uv_2 = _e153;
|
|
204
|
+
}
|
|
205
|
+
continue;
|
|
206
|
+
} else {
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
continue;
|
|
211
|
+
} else {
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
metal::float2 _e158 = uv_2;
|
|
216
|
+
uv_2 = _e158 + metal::float2(0.5);
|
|
217
|
+
float _e162 = uniforms.progress;
|
|
218
|
+
float _e164 = uniforms.speed;
|
|
219
|
+
metal::float2 _e167 = uv_2;
|
|
220
|
+
param_6 = _e167;
|
|
221
|
+
param_7 = metal::float2(0.5, 0.5);
|
|
222
|
+
param_8 = _e162 * -(_e164);
|
|
223
|
+
metal::float2 _e168 = rot(param_6, param_7, param_8);
|
|
224
|
+
uv_2 = _e168;
|
|
225
|
+
metal::float2 _e169 = uv_2;
|
|
226
|
+
uv_2 = _e169 - metal::float2(0.5);
|
|
227
|
+
float _e173 = uniforms.ratio;
|
|
228
|
+
float _e175 = uv_2[0u];
|
|
229
|
+
uv_2[0u] = _e175 / _e173;
|
|
230
|
+
metal::float2 _e178 = uv_2;
|
|
231
|
+
uv_2 = _e178 + metal::float2(0.5);
|
|
232
|
+
metal::float2 _e181 = uv_2;
|
|
233
|
+
metal::float2 _e184 = uv_2;
|
|
234
|
+
uv_2 = metal::abs((_e181 / metal::float2(2.0)) - metal::floor((_e184 / metal::float2(2.0)) + metal::float2(0.5))) * 2.0;
|
|
235
|
+
metal::float2 _e193 = uv_2;
|
|
236
|
+
metal::float2 _e194 = uv0_;
|
|
237
|
+
float _e196 = uniforms.progress;
|
|
238
|
+
uvMix = metal::mix(_e193, _e194, metal::float2((metal::cos((_e196 * 3.1415927) * 2.0) / 2.0) + 0.5));
|
|
239
|
+
metal::float2 _e204 = uvMix;
|
|
240
|
+
param_9 = _e204;
|
|
241
|
+
metal::float4 _e205 = getFromColor(param_9, _from, _sampler);
|
|
242
|
+
metal::float2 _e206 = uvMix;
|
|
243
|
+
param_10 = _e206;
|
|
244
|
+
metal::float4 _e207 = getToColor(param_10, _sampler, _to);
|
|
245
|
+
float _e209 = uniforms.progress;
|
|
246
|
+
color = metal::mix(_e205, _e207, metal::float4((metal::cos((_e209 - 1.0) * 3.1415927) / 2.0) + 0.5));
|
|
247
|
+
metal::float4 _e217 = color;
|
|
248
|
+
return _e217;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
metal::float4 transition(
|
|
252
|
+
thread metal::float2& uv_3,
|
|
253
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
254
|
+
metal::sampler _sampler,
|
|
255
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
256
|
+
constant Uniforms& uniforms
|
|
257
|
+
) {
|
|
258
|
+
metal::float4 color_1 = {};
|
|
259
|
+
metal::float2 param_11 = {};
|
|
260
|
+
metal::float2 _e29 = uv_3;
|
|
261
|
+
param_11 = _e29;
|
|
262
|
+
metal::float4 _e30 = mainImage(param_11, _from, _sampler, _to, uniforms);
|
|
263
|
+
color_1 = _e30;
|
|
264
|
+
metal::float4 _e31 = color_1;
|
|
265
|
+
return _e31;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
void main_1(
|
|
269
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
270
|
+
metal::sampler _sampler,
|
|
271
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
272
|
+
constant Uniforms& uniforms,
|
|
273
|
+
thread metal::float4& _fragColor,
|
|
274
|
+
thread metal::float2& _uv_1
|
|
275
|
+
) {
|
|
276
|
+
metal::float2 param_12 = {};
|
|
277
|
+
metal::float2 _e27 = _uv_1;
|
|
278
|
+
param_12 = _e27;
|
|
279
|
+
metal::float4 _e28 = transition(param_12, _from, _sampler, _to, uniforms);
|
|
280
|
+
_fragColor = _e28;
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
struct main_Input {
|
|
285
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
286
|
+
};
|
|
287
|
+
struct main_Output {
|
|
288
|
+
metal::float4 member [[color(0)]];
|
|
289
|
+
};
|
|
290
|
+
fragment main_Output main_(
|
|
291
|
+
main_Input varyings [[stage_in]]
|
|
292
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
293
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
294
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
295
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
296
|
+
) {
|
|
297
|
+
metal::float4 _fragColor = {};
|
|
298
|
+
metal::float2 _uv_1 = {};
|
|
299
|
+
const auto _uv = varyings._uv;
|
|
300
|
+
_uv_1 = _uv;
|
|
301
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
302
|
+
metal::float4 _e3 = _fragColor;
|
|
303
|
+
return main_Output { _e3 };
|
|
304
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// randomNoisex — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/randomNoisex.glsl
|
|
2
|
+
// Author: towrabbit
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image appears pixel by pixel in random noise
|
|
5
|
+
// Bindings and uniform layout: see the gl-transitions package README
|
|
6
|
+
|
|
7
|
+
// language: metal1.0
|
|
8
|
+
#include <metal_stdlib>
|
|
9
|
+
#include <simd/simd.h>
|
|
10
|
+
|
|
11
|
+
using metal::uint;
|
|
12
|
+
|
|
13
|
+
struct Uniforms {
|
|
14
|
+
float progress;
|
|
15
|
+
float ratio;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
float random(
|
|
19
|
+
thread metal::float2& st
|
|
20
|
+
) {
|
|
21
|
+
metal::float2 _e16 = st;
|
|
22
|
+
return metal::fract(metal::sin(metal::dot(_e16, metal::float2(12.9898, 78.233))) * 43758.547);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
metal::float4 getToColor(
|
|
26
|
+
thread metal::float2& uv,
|
|
27
|
+
metal::sampler _sampler,
|
|
28
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
29
|
+
) {
|
|
30
|
+
float _e17 = uv[0u];
|
|
31
|
+
float _e19 = uv[1u];
|
|
32
|
+
metal::float4 _e22 = _to.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
33
|
+
return _e22;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
metal::float4 getFromColor(
|
|
37
|
+
thread metal::float2& uv_1,
|
|
38
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
39
|
+
metal::sampler _sampler
|
|
40
|
+
) {
|
|
41
|
+
float _e17 = uv_1[0u];
|
|
42
|
+
float _e19 = uv_1[1u];
|
|
43
|
+
metal::float4 _e22 = _from.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
44
|
+
return _e22;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
metal::float4 transition(
|
|
48
|
+
thread metal::float2& uv_2,
|
|
49
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
50
|
+
metal::sampler _sampler,
|
|
51
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
52
|
+
constant Uniforms& uniforms
|
|
53
|
+
) {
|
|
54
|
+
metal::float4 leftSide = {};
|
|
55
|
+
metal::float2 param = {};
|
|
56
|
+
metal::float4 rightSide = {};
|
|
57
|
+
metal::float2 param_1 = {};
|
|
58
|
+
float uvz = {};
|
|
59
|
+
metal::float2 param_2 = {};
|
|
60
|
+
metal::float2 _e22 = uv_2;
|
|
61
|
+
param = _e22;
|
|
62
|
+
metal::float4 _e23 = getFromColor(param, _from, _sampler);
|
|
63
|
+
leftSide = _e23;
|
|
64
|
+
metal::float2 _e24 = uv_2;
|
|
65
|
+
param_1 = _e24;
|
|
66
|
+
metal::float4 _e25 = getToColor(param_1, _sampler, _to);
|
|
67
|
+
rightSide = _e25;
|
|
68
|
+
metal::float2 _e26 = uv_2;
|
|
69
|
+
param_2 = _e26;
|
|
70
|
+
float _e27 = random(param_2);
|
|
71
|
+
float _e29 = uniforms.progress;
|
|
72
|
+
uvz = metal::floor(_e27 + _e29);
|
|
73
|
+
metal::float4 _e32 = leftSide;
|
|
74
|
+
metal::float4 _e33 = rightSide;
|
|
75
|
+
float _e34 = uvz;
|
|
76
|
+
return metal::mix(_e32, _e33, metal::float4(_e34));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
void main_1(
|
|
80
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
81
|
+
metal::sampler _sampler,
|
|
82
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
83
|
+
constant Uniforms& uniforms,
|
|
84
|
+
thread metal::float4& _fragColor,
|
|
85
|
+
thread metal::float2& _uv_1
|
|
86
|
+
) {
|
|
87
|
+
metal::float2 param_3 = {};
|
|
88
|
+
metal::float2 _e16 = _uv_1;
|
|
89
|
+
param_3 = _e16;
|
|
90
|
+
metal::float4 _e17 = transition(param_3, _from, _sampler, _to, uniforms);
|
|
91
|
+
_fragColor = _e17;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
struct main_Input {
|
|
96
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
97
|
+
};
|
|
98
|
+
struct main_Output {
|
|
99
|
+
metal::float4 member [[color(0)]];
|
|
100
|
+
};
|
|
101
|
+
fragment main_Output main_(
|
|
102
|
+
main_Input varyings [[stage_in]]
|
|
103
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
104
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
105
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
106
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
107
|
+
) {
|
|
108
|
+
metal::float4 _fragColor = {};
|
|
109
|
+
metal::float2 _uv_1 = {};
|
|
110
|
+
const auto _uv = varyings._uv;
|
|
111
|
+
_uv_1 = _uv;
|
|
112
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
113
|
+
metal::float4 _e3 = _fragColor;
|
|
114
|
+
return main_Output { _e3 };
|
|
115
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// randomsquares — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/randomsquares.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image appears in random squares
|
|
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 size;
|
|
17
|
+
float smoothness;
|
|
18
|
+
char _pad4[4];
|
|
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 _e19 = uv[0u];
|
|
27
|
+
float _e21 = uv[1u];
|
|
28
|
+
metal::float4 _e24 = _to.sample(_sampler, metal::float2(_e19, 1.0 - _e21), metal::level(0.0));
|
|
29
|
+
return _e24;
|
|
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 _e19 = uv_1[0u];
|
|
38
|
+
float _e21 = uv_1[1u];
|
|
39
|
+
metal::float4 _e24 = _from.sample(_sampler, metal::float2(_e19, 1.0 - _e21), metal::level(0.0));
|
|
40
|
+
return _e24;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
float rand(
|
|
44
|
+
thread metal::float2& co
|
|
45
|
+
) {
|
|
46
|
+
metal::float2 _e18 = co;
|
|
47
|
+
return metal::fract(metal::sin(metal::dot(_e18, metal::float2(12.9898, 78.233))) * 43758.547);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
metal::float4 transition(
|
|
51
|
+
thread metal::float2& p,
|
|
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 r = {};
|
|
58
|
+
metal::float2 param = {};
|
|
59
|
+
float m = {};
|
|
60
|
+
metal::float2 param_1 = {};
|
|
61
|
+
metal::float2 param_2 = {};
|
|
62
|
+
metal::int2 _e24 = uniforms.size;
|
|
63
|
+
metal::float2 _e26 = p;
|
|
64
|
+
param = metal::floor(static_cast<metal::float2>(_e24) * _e26);
|
|
65
|
+
float _e29 = rand(param);
|
|
66
|
+
r = _e29;
|
|
67
|
+
float _e31 = uniforms.smoothness;
|
|
68
|
+
float _e33 = r;
|
|
69
|
+
float _e35 = uniforms.progress;
|
|
70
|
+
float _e37 = uniforms.smoothness;
|
|
71
|
+
m = metal::smoothstep(0.0, -(_e31), _e33 - (_e35 * (1.0 + _e37)));
|
|
72
|
+
metal::float2 _e42 = p;
|
|
73
|
+
param_1 = _e42;
|
|
74
|
+
metal::float4 _e43 = getFromColor(param_1, _from, _sampler);
|
|
75
|
+
metal::float2 _e44 = p;
|
|
76
|
+
param_2 = _e44;
|
|
77
|
+
metal::float4 _e45 = getToColor(param_2, _sampler, _to);
|
|
78
|
+
float _e46 = m;
|
|
79
|
+
return metal::mix(_e43, _e45, metal::float4(_e46));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
void main_1(
|
|
83
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
84
|
+
metal::sampler _sampler,
|
|
85
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
86
|
+
constant Uniforms& uniforms,
|
|
87
|
+
thread metal::float4& _fragColor,
|
|
88
|
+
thread metal::float2& _uv_1
|
|
89
|
+
) {
|
|
90
|
+
metal::float2 param_3 = {};
|
|
91
|
+
metal::float2 _e18 = _uv_1;
|
|
92
|
+
param_3 = _e18;
|
|
93
|
+
metal::float4 _e19 = transition(param_3, _from, _sampler, _to, uniforms);
|
|
94
|
+
_fragColor = _e19;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
struct main_Input {
|
|
99
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
100
|
+
};
|
|
101
|
+
struct main_Output {
|
|
102
|
+
metal::float4 member [[color(0)]];
|
|
103
|
+
};
|
|
104
|
+
fragment main_Output main_(
|
|
105
|
+
main_Input varyings [[stage_in]]
|
|
106
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
107
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
108
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
109
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
110
|
+
) {
|
|
111
|
+
metal::float4 _fragColor = {};
|
|
112
|
+
metal::float2 _uv_1 = {};
|
|
113
|
+
const auto _uv = varyings._uv;
|
|
114
|
+
_uv_1 = _uv;
|
|
115
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
116
|
+
metal::float4 _e3 = _fragColor;
|
|
117
|
+
return main_Output { _e3 };
|
|
118
|
+
}
|