gl-transitions 1.74.0 → 1.75.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 +77 -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/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,276 @@
|
|
|
1
|
+
// fragment — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/fragment.glsl
|
|
2
|
+
// Author: lbl
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image shatters into fragments that fly away
|
|
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
|
+
struct type_13 {
|
|
18
|
+
metal::float2 inner[10];
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
float random(
|
|
22
|
+
thread metal::float2& par
|
|
23
|
+
) {
|
|
24
|
+
metal::float2 _e25 = par;
|
|
25
|
+
return metal::fract(metal::sin(metal::dot(_e25, metal::float2(12.9898, 78.233))) * 43758.547);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
metal::float2 random2(
|
|
29
|
+
thread metal::float2& par_1
|
|
30
|
+
) {
|
|
31
|
+
float rand = {};
|
|
32
|
+
metal::float2 param = {};
|
|
33
|
+
metal::float2 param_1 = {};
|
|
34
|
+
metal::float2 _e28 = par_1;
|
|
35
|
+
param = _e28;
|
|
36
|
+
float _e29 = random(param);
|
|
37
|
+
rand = _e29;
|
|
38
|
+
float _e30 = rand;
|
|
39
|
+
metal::float2 _e31 = par_1;
|
|
40
|
+
float _e32 = rand;
|
|
41
|
+
param_1 = _e31 + metal::float2(_e32);
|
|
42
|
+
float _e35 = random(param_1);
|
|
43
|
+
return metal::float2(_e30, _e35);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
metal::float4 getToColor(
|
|
47
|
+
thread metal::float2& uv,
|
|
48
|
+
metal::sampler _sampler,
|
|
49
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
50
|
+
) {
|
|
51
|
+
float _e26 = uv[0u];
|
|
52
|
+
float _e28 = uv[1u];
|
|
53
|
+
metal::float4 _e31 = _to.sample(_sampler, metal::float2(_e26, 1.0 - _e28), metal::level(0.0));
|
|
54
|
+
return _e31;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
metal::float4 getFromColor(
|
|
58
|
+
thread metal::float2& uv_1,
|
|
59
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
60
|
+
metal::sampler _sampler
|
|
61
|
+
) {
|
|
62
|
+
float _e26 = uv_1[0u];
|
|
63
|
+
float _e28 = uv_1[1u];
|
|
64
|
+
metal::float4 _e31 = _from.sample(_sampler, metal::float2(_e26, 1.0 - _e28), metal::level(0.0));
|
|
65
|
+
return _e31;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
metal::float4 transition(
|
|
69
|
+
thread metal::float2& uv_2,
|
|
70
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
71
|
+
metal::sampler _sampler,
|
|
72
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
73
|
+
constant Uniforms& uniforms
|
|
74
|
+
) {
|
|
75
|
+
metal::float2 param_2 = {};
|
|
76
|
+
metal::float2 param_3 = {};
|
|
77
|
+
float time = {};
|
|
78
|
+
int i = {};
|
|
79
|
+
type_13 point = {};
|
|
80
|
+
metal::float2 param_4 = {};
|
|
81
|
+
metal::float4 col = {};
|
|
82
|
+
metal::float2 param_5 = {};
|
|
83
|
+
int i_1 = {};
|
|
84
|
+
metal::float2 dir = {};
|
|
85
|
+
metal::float2 param_6 = {};
|
|
86
|
+
float v = {};
|
|
87
|
+
metal::float2 param_7 = {};
|
|
88
|
+
metal::float2 ofst = {};
|
|
89
|
+
metal::float2 U = {};
|
|
90
|
+
float dist_i = {};
|
|
91
|
+
bool closest = {};
|
|
92
|
+
int j = {};
|
|
93
|
+
metal::float2 param_8 = {};
|
|
94
|
+
bool phi_199_ = {};
|
|
95
|
+
bool phi_206_ = {};
|
|
96
|
+
bool phi_213_ = {};
|
|
97
|
+
float _e45 = uniforms.progress;
|
|
98
|
+
if (_e45 <= 0.0) {
|
|
99
|
+
metal::float2 _e47 = uv_2;
|
|
100
|
+
param_2 = _e47;
|
|
101
|
+
metal::float4 _e48 = getFromColor(param_2, _from, _sampler);
|
|
102
|
+
return _e48;
|
|
103
|
+
}
|
|
104
|
+
float _e50 = uniforms.progress;
|
|
105
|
+
if (_e50 >= 1.0) {
|
|
106
|
+
metal::float2 _e52 = uv_2;
|
|
107
|
+
param_3 = _e52;
|
|
108
|
+
metal::float4 _e53 = getToColor(param_3, _sampler, _to);
|
|
109
|
+
return _e53;
|
|
110
|
+
}
|
|
111
|
+
float _e55 = uniforms.progress;
|
|
112
|
+
time = _e55 * 8.0;
|
|
113
|
+
i = 0;
|
|
114
|
+
uint2 loop_bound = uint2(4294967295u);
|
|
115
|
+
bool loop_init = true;
|
|
116
|
+
while(true) {
|
|
117
|
+
if (metal::all(loop_bound == uint2(0u))) { break; }
|
|
118
|
+
loop_bound -= uint2(loop_bound.y == 0u, 1u);
|
|
119
|
+
if (!loop_init) {
|
|
120
|
+
int _e65 = i;
|
|
121
|
+
i = as_type<int>(as_type<uint>(_e65) + as_type<uint>(1));
|
|
122
|
+
}
|
|
123
|
+
loop_init = false;
|
|
124
|
+
int _e57 = i;
|
|
125
|
+
if (_e57 < 10) {
|
|
126
|
+
int _e59 = i;
|
|
127
|
+
int _e60 = i;
|
|
128
|
+
param_4 = metal::float2(static_cast<float>(_e60));
|
|
129
|
+
metal::float2 _e63 = random2(param_4);
|
|
130
|
+
point.inner[_e59] = _e63;
|
|
131
|
+
continue;
|
|
132
|
+
} else {
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
metal::float2 _e67 = uv_2;
|
|
137
|
+
param_5 = _e67;
|
|
138
|
+
metal::float4 _e68 = getToColor(param_5, _sampler, _to);
|
|
139
|
+
col = _e68;
|
|
140
|
+
i_1 = 0;
|
|
141
|
+
uint2 loop_bound_1 = uint2(4294967295u);
|
|
142
|
+
bool loop_init_1 = true;
|
|
143
|
+
while(true) {
|
|
144
|
+
if (metal::all(loop_bound_1 == uint2(0u))) { break; }
|
|
145
|
+
loop_bound_1 -= uint2(loop_bound_1.y == 0u, 1u);
|
|
146
|
+
if (!loop_init_1) {
|
|
147
|
+
int _e134 = i_1;
|
|
148
|
+
i_1 = as_type<int>(as_type<uint>(_e134) + as_type<uint>(1));
|
|
149
|
+
}
|
|
150
|
+
loop_init_1 = false;
|
|
151
|
+
int _e69 = i_1;
|
|
152
|
+
if (_e69 < 10) {
|
|
153
|
+
int _e71 = i_1;
|
|
154
|
+
int _e73 = i_1;
|
|
155
|
+
param_6 = metal::float2(static_cast<float>(_e71), static_cast<float>(_e73) + 11.0);
|
|
156
|
+
metal::float2 _e77 = random2(param_6);
|
|
157
|
+
dir = metal::normalize(_e77);
|
|
158
|
+
metal::float2 _e79 = dir;
|
|
159
|
+
param_7 = _e79;
|
|
160
|
+
float _e80 = random(param_7);
|
|
161
|
+
v = (1.0 + (_e80 * 0.5)) * 0.2;
|
|
162
|
+
metal::float2 _e84 = dir;
|
|
163
|
+
float _e85 = time;
|
|
164
|
+
float _e89 = v;
|
|
165
|
+
ofst = (_e84 * metal::clamp(_e85 - 0.5, 0.0, 8.0)) * _e89;
|
|
166
|
+
metal::float2 _e91 = uv_2;
|
|
167
|
+
metal::float2 _e92 = ofst;
|
|
168
|
+
U = _e91 - _e92;
|
|
169
|
+
float _e95 = U[0u];
|
|
170
|
+
bool _e96 = _e95 < 0.0;
|
|
171
|
+
phi_199_ = _e96;
|
|
172
|
+
if (!(_e96)) {
|
|
173
|
+
float _e99 = U[0u];
|
|
174
|
+
phi_199_ = _e99 > 1.0;
|
|
175
|
+
}
|
|
176
|
+
bool _e102 = phi_199_;
|
|
177
|
+
phi_206_ = _e102;
|
|
178
|
+
if (!(_e102)) {
|
|
179
|
+
float _e105 = U[1u];
|
|
180
|
+
phi_206_ = _e105 < 0.0;
|
|
181
|
+
}
|
|
182
|
+
bool _e108 = phi_206_;
|
|
183
|
+
phi_213_ = _e108;
|
|
184
|
+
if (!(_e108)) {
|
|
185
|
+
float _e111 = U[1u];
|
|
186
|
+
phi_213_ = _e111 > 1.0;
|
|
187
|
+
}
|
|
188
|
+
bool _e114 = phi_213_;
|
|
189
|
+
if (_e114) {
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
metal::float2 _e115 = U;
|
|
193
|
+
int _e116 = i_1;
|
|
194
|
+
metal::float2 _e118 = point.inner[_e116];
|
|
195
|
+
dist_i = metal::distance(_e115, _e118);
|
|
196
|
+
closest = true;
|
|
197
|
+
j = 0;
|
|
198
|
+
uint2 loop_bound_2 = uint2(4294967295u);
|
|
199
|
+
bool loop_init_2 = true;
|
|
200
|
+
while(true) {
|
|
201
|
+
if (metal::all(loop_bound_2 == uint2(0u))) { break; }
|
|
202
|
+
loop_bound_2 -= uint2(loop_bound_2.y == 0u, 1u);
|
|
203
|
+
if (!loop_init_2) {
|
|
204
|
+
int _e129 = j;
|
|
205
|
+
j = as_type<int>(as_type<uint>(_e129) + as_type<uint>(1));
|
|
206
|
+
}
|
|
207
|
+
loop_init_2 = false;
|
|
208
|
+
int _e120 = j;
|
|
209
|
+
if (_e120 < 10) {
|
|
210
|
+
metal::float2 _e122 = U;
|
|
211
|
+
int _e123 = j;
|
|
212
|
+
metal::float2 _e125 = point.inner[_e123];
|
|
213
|
+
float _e127 = dist_i;
|
|
214
|
+
if (metal::distance(_e122, _e125) < _e127) {
|
|
215
|
+
closest = false;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
continue;
|
|
219
|
+
} else {
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
bool _e131 = closest;
|
|
224
|
+
if (_e131) {
|
|
225
|
+
metal::float2 _e132 = U;
|
|
226
|
+
param_8 = _e132;
|
|
227
|
+
metal::float4 _e133 = getFromColor(param_8, _from, _sampler);
|
|
228
|
+
col = _e133;
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
continue;
|
|
232
|
+
} else {
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
metal::float4 _e136 = col;
|
|
237
|
+
return _e136;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
void main_1(
|
|
241
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
242
|
+
metal::sampler _sampler,
|
|
243
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
244
|
+
constant Uniforms& uniforms,
|
|
245
|
+
thread metal::float4& _fragColor,
|
|
246
|
+
thread metal::float2& _uv_1
|
|
247
|
+
) {
|
|
248
|
+
metal::float2 param_9 = {};
|
|
249
|
+
metal::float2 _e25 = _uv_1;
|
|
250
|
+
param_9 = _e25;
|
|
251
|
+
metal::float4 _e26 = transition(param_9, _from, _sampler, _to, uniforms);
|
|
252
|
+
_fragColor = _e26;
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
struct main_Input {
|
|
257
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
258
|
+
};
|
|
259
|
+
struct main_Output {
|
|
260
|
+
metal::float4 member [[color(0)]];
|
|
261
|
+
};
|
|
262
|
+
fragment main_Output main_(
|
|
263
|
+
main_Input varyings [[stage_in]]
|
|
264
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
265
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
266
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
267
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
268
|
+
) {
|
|
269
|
+
metal::float4 _fragColor = {};
|
|
270
|
+
metal::float2 _uv_1 = {};
|
|
271
|
+
const auto _uv = varyings._uv;
|
|
272
|
+
_uv_1 = _uv;
|
|
273
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
274
|
+
metal::float4 _e3 = _fragColor;
|
|
275
|
+
return main_Output { _e3 };
|
|
276
|
+
}
|
package/msl/heart.metal
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// heart — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/heart.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A heart shape grows from the center 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
|
+
};
|
|
17
|
+
|
|
18
|
+
float inHeart(
|
|
19
|
+
thread metal::float2& p,
|
|
20
|
+
thread metal::float2& center,
|
|
21
|
+
thread float& size
|
|
22
|
+
) {
|
|
23
|
+
metal::float2 o = {};
|
|
24
|
+
float a = {};
|
|
25
|
+
float _e21 = size;
|
|
26
|
+
if (_e21 == 0.0) {
|
|
27
|
+
return 0.0;
|
|
28
|
+
}
|
|
29
|
+
metal::float2 _e23 = p;
|
|
30
|
+
metal::float2 _e24 = center;
|
|
31
|
+
float _e26 = size;
|
|
32
|
+
o = (_e23 - _e24) / metal::float2(1.6 * _e26);
|
|
33
|
+
float _e31 = o[0u];
|
|
34
|
+
float _e33 = o[0u];
|
|
35
|
+
float _e36 = o[1u];
|
|
36
|
+
float _e38 = o[1u];
|
|
37
|
+
a = ((_e31 * _e33) + (_e36 * _e38)) - 0.3;
|
|
38
|
+
float _e42 = a;
|
|
39
|
+
float _e43 = a;
|
|
40
|
+
float _e45 = a;
|
|
41
|
+
float _e48 = o[0u];
|
|
42
|
+
float _e50 = o[0u];
|
|
43
|
+
float _e53 = o[1u];
|
|
44
|
+
float _e56 = o[1u];
|
|
45
|
+
float _e59 = o[1u];
|
|
46
|
+
return metal::step((_e42 * _e43) * _e45, (((_e48 * _e50) * _e53) * _e56) * _e59);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
metal::float4 getToColor(
|
|
50
|
+
thread metal::float2& uv,
|
|
51
|
+
metal::sampler _sampler,
|
|
52
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
53
|
+
) {
|
|
54
|
+
float _e18 = uv[0u];
|
|
55
|
+
float _e20 = uv[1u];
|
|
56
|
+
metal::float4 _e23 = _to.sample(_sampler, metal::float2(_e18, 1.0 - _e20), metal::level(0.0));
|
|
57
|
+
return _e23;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
metal::float4 getFromColor(
|
|
61
|
+
thread metal::float2& uv_1,
|
|
62
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
63
|
+
metal::sampler _sampler
|
|
64
|
+
) {
|
|
65
|
+
float _e18 = uv_1[0u];
|
|
66
|
+
float _e20 = uv_1[1u];
|
|
67
|
+
metal::float4 _e23 = _from.sample(_sampler, metal::float2(_e18, 1.0 - _e20), metal::level(0.0));
|
|
68
|
+
return _e23;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
metal::float4 transition(
|
|
72
|
+
thread metal::float2& uv_2,
|
|
73
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
74
|
+
metal::sampler _sampler,
|
|
75
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
76
|
+
constant Uniforms& uniforms
|
|
77
|
+
) {
|
|
78
|
+
metal::float2 param = {};
|
|
79
|
+
metal::float2 param_1 = {};
|
|
80
|
+
metal::float2 param_2 = {};
|
|
81
|
+
metal::float2 param_3 = {};
|
|
82
|
+
float param_4 = {};
|
|
83
|
+
metal::float2 _e22 = uv_2;
|
|
84
|
+
param = _e22;
|
|
85
|
+
metal::float4 _e23 = getFromColor(param, _from, _sampler);
|
|
86
|
+
metal::float2 _e24 = uv_2;
|
|
87
|
+
param_1 = _e24;
|
|
88
|
+
metal::float4 _e25 = getToColor(param_1, _sampler, _to);
|
|
89
|
+
metal::float2 _e26 = uv_2;
|
|
90
|
+
param_2 = _e26;
|
|
91
|
+
param_3 = metal::float2(0.5, 0.4);
|
|
92
|
+
float _e28 = uniforms.progress;
|
|
93
|
+
param_4 = _e28;
|
|
94
|
+
float _e29 = inHeart(param_2, param_3, param_4);
|
|
95
|
+
return metal::mix(_e23, _e25, metal::float4(_e29));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
void main_1(
|
|
99
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
100
|
+
metal::sampler _sampler,
|
|
101
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
102
|
+
constant Uniforms& uniforms,
|
|
103
|
+
thread metal::float4& _fragColor,
|
|
104
|
+
thread metal::float2& _uv_1
|
|
105
|
+
) {
|
|
106
|
+
metal::float2 param_5 = {};
|
|
107
|
+
metal::float2 _e17 = _uv_1;
|
|
108
|
+
param_5 = _e17;
|
|
109
|
+
metal::float4 _e18 = transition(param_5, _from, _sampler, _to, uniforms);
|
|
110
|
+
_fragColor = _e18;
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
struct main_Input {
|
|
115
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
116
|
+
};
|
|
117
|
+
struct main_Output {
|
|
118
|
+
metal::float4 member [[color(0)]];
|
|
119
|
+
};
|
|
120
|
+
fragment main_Output main_(
|
|
121
|
+
main_Input varyings [[stage_in]]
|
|
122
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
123
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
124
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
125
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
126
|
+
) {
|
|
127
|
+
metal::float4 _fragColor = {};
|
|
128
|
+
metal::float2 _uv_1 = {};
|
|
129
|
+
const auto _uv = varyings._uv;
|
|
130
|
+
_uv_1 = _uv;
|
|
131
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
132
|
+
metal::float4 _e3 = _fragColor;
|
|
133
|
+
return main_Output { _e3 };
|
|
134
|
+
}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
// hexagonalize — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/hexagonalize.glsl
|
|
2
|
+
// Author: Fernando Kuteken
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Both images turn into hexagons, crossfade, then sharpen again
|
|
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 Hexagon {
|
|
14
|
+
float q;
|
|
15
|
+
float r;
|
|
16
|
+
float s;
|
|
17
|
+
};
|
|
18
|
+
struct Uniforms {
|
|
19
|
+
float progress;
|
|
20
|
+
float ratio;
|
|
21
|
+
int steps;
|
|
22
|
+
float horizontalHexagons;
|
|
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 _e24 = uv[0u];
|
|
31
|
+
float _e26 = uv[1u];
|
|
32
|
+
metal::float4 _e29 = _to.sample(_sampler, metal::float2(_e24, 1.0 - _e26), metal::level(0.0));
|
|
33
|
+
return _e29;
|
|
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 _e24 = uv_1[0u];
|
|
42
|
+
float _e26 = uv_1[1u];
|
|
43
|
+
metal::float4 _e29 = _from.sample(_sampler, metal::float2(_e24, 1.0 - _e26), metal::level(0.0));
|
|
44
|
+
return _e29;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
metal::float2 pointFromHexagon(
|
|
48
|
+
thread Hexagon& hex,
|
|
49
|
+
thread float& size,
|
|
50
|
+
constant Uniforms& uniforms
|
|
51
|
+
) {
|
|
52
|
+
float x = {};
|
|
53
|
+
float y = {};
|
|
54
|
+
float _e27 = hex.q;
|
|
55
|
+
float _e30 = hex.r;
|
|
56
|
+
float _e33 = size;
|
|
57
|
+
x = (((1.7320508 * _e27) + (0.8660254 * _e30)) * _e33) + 0.5;
|
|
58
|
+
float _e37 = hex.q;
|
|
59
|
+
float _e40 = hex.r;
|
|
60
|
+
float _e43 = size;
|
|
61
|
+
y = (((0.0 * _e37) + (1.5 * _e40)) * _e43) + 0.5;
|
|
62
|
+
float _e46 = x;
|
|
63
|
+
float _e47 = y;
|
|
64
|
+
float _e49 = uniforms.ratio;
|
|
65
|
+
return metal::float2(_e46, _e47 * _e49);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
Hexagon createHexagon(
|
|
69
|
+
thread float& q,
|
|
70
|
+
thread float& r
|
|
71
|
+
) {
|
|
72
|
+
Hexagon hex_1 = {};
|
|
73
|
+
float _e25 = q;
|
|
74
|
+
hex_1.q = _e25;
|
|
75
|
+
float _e27 = r;
|
|
76
|
+
hex_1.r = _e27;
|
|
77
|
+
float _e29 = q;
|
|
78
|
+
float _e31 = r;
|
|
79
|
+
hex_1.s = -(_e29) - _e31;
|
|
80
|
+
Hexagon _e34 = hex_1;
|
|
81
|
+
return _e34;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
Hexagon roundHexagon(
|
|
85
|
+
thread Hexagon& hex_2
|
|
86
|
+
) {
|
|
87
|
+
float q_1 = {};
|
|
88
|
+
float r_1 = {};
|
|
89
|
+
float s = {};
|
|
90
|
+
float deltaQ = {};
|
|
91
|
+
float deltaR = {};
|
|
92
|
+
float deltaS = {};
|
|
93
|
+
float param = {};
|
|
94
|
+
float param_1 = {};
|
|
95
|
+
float _e32 = hex_2.q;
|
|
96
|
+
q_1 = metal::floor(_e32 + 0.5);
|
|
97
|
+
float _e36 = hex_2.r;
|
|
98
|
+
r_1 = metal::floor(_e36 + 0.5);
|
|
99
|
+
float _e40 = hex_2.s;
|
|
100
|
+
s = metal::floor(_e40 + 0.5);
|
|
101
|
+
float _e43 = q_1;
|
|
102
|
+
float _e45 = hex_2.q;
|
|
103
|
+
deltaQ = metal::abs(_e43 - _e45);
|
|
104
|
+
float _e48 = r_1;
|
|
105
|
+
float _e50 = hex_2.r;
|
|
106
|
+
deltaR = metal::abs(_e48 - _e50);
|
|
107
|
+
float _e53 = s;
|
|
108
|
+
float _e55 = hex_2.s;
|
|
109
|
+
deltaS = metal::abs(_e53 - _e55);
|
|
110
|
+
float _e58 = deltaQ;
|
|
111
|
+
float _e59 = deltaR;
|
|
112
|
+
float _e61 = deltaQ;
|
|
113
|
+
float _e62 = deltaS;
|
|
114
|
+
if ((_e58 > _e59) && (_e61 > _e62)) {
|
|
115
|
+
float _e65 = r_1;
|
|
116
|
+
float _e67 = s;
|
|
117
|
+
q_1 = -(_e65) - _e67;
|
|
118
|
+
} else {
|
|
119
|
+
float _e69 = deltaR;
|
|
120
|
+
float _e70 = deltaS;
|
|
121
|
+
if (_e69 > _e70) {
|
|
122
|
+
float _e72 = q_1;
|
|
123
|
+
float _e74 = s;
|
|
124
|
+
r_1 = -(_e72) - _e74;
|
|
125
|
+
} else {
|
|
126
|
+
float _e76 = q_1;
|
|
127
|
+
float _e78 = r_1;
|
|
128
|
+
s = -(_e76) - _e78;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
float _e80 = q_1;
|
|
132
|
+
param = _e80;
|
|
133
|
+
float _e81 = r_1;
|
|
134
|
+
param_1 = _e81;
|
|
135
|
+
Hexagon _e82 = createHexagon(param, param_1);
|
|
136
|
+
return _e82;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
Hexagon hexagonFromPoint(
|
|
140
|
+
thread metal::float2& point,
|
|
141
|
+
thread float& size_1,
|
|
142
|
+
constant Uniforms& uniforms
|
|
143
|
+
) {
|
|
144
|
+
float q_2 = {};
|
|
145
|
+
float r_2 = {};
|
|
146
|
+
Hexagon hex_3 = {};
|
|
147
|
+
float param_2 = {};
|
|
148
|
+
float param_3 = {};
|
|
149
|
+
Hexagon param_4 = {};
|
|
150
|
+
float _e31 = uniforms.ratio;
|
|
151
|
+
float _e33 = point[1u];
|
|
152
|
+
point[1u] = _e33 / _e31;
|
|
153
|
+
metal::float2 _e36 = point;
|
|
154
|
+
float _e39 = size_1;
|
|
155
|
+
point = (_e36 - metal::float2(0.5)) / metal::float2(_e39);
|
|
156
|
+
float _e43 = point[0u];
|
|
157
|
+
float _e46 = point[1u];
|
|
158
|
+
q_2 = (0.57735026 * _e43) + (-0.33333334 * _e46);
|
|
159
|
+
float _e50 = point[0u];
|
|
160
|
+
float _e53 = point[1u];
|
|
161
|
+
r_2 = (0.0 * _e50) + (0.6666667 * _e53);
|
|
162
|
+
float _e56 = q_2;
|
|
163
|
+
param_2 = _e56;
|
|
164
|
+
float _e57 = r_2;
|
|
165
|
+
param_3 = _e57;
|
|
166
|
+
Hexagon _e58 = createHexagon(param_2, param_3);
|
|
167
|
+
hex_3 = _e58;
|
|
168
|
+
Hexagon _e59 = hex_3;
|
|
169
|
+
param_4 = _e59;
|
|
170
|
+
Hexagon _e60 = roundHexagon(param_4);
|
|
171
|
+
return _e60;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
metal::float4 transition(
|
|
175
|
+
thread metal::float2& uv_2,
|
|
176
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
177
|
+
metal::sampler _sampler,
|
|
178
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
179
|
+
constant Uniforms& uniforms
|
|
180
|
+
) {
|
|
181
|
+
float dist = {};
|
|
182
|
+
float local = {};
|
|
183
|
+
float size_2 = {};
|
|
184
|
+
metal::float2 point_1 = {};
|
|
185
|
+
metal::float2 local_1 = {};
|
|
186
|
+
metal::float2 param_5 = {};
|
|
187
|
+
float param_6 = {};
|
|
188
|
+
Hexagon param_7 = {};
|
|
189
|
+
float param_8 = {};
|
|
190
|
+
metal::float2 param_9 = {};
|
|
191
|
+
metal::float2 param_10 = {};
|
|
192
|
+
float _e35 = uniforms.progress;
|
|
193
|
+
float _e37 = uniforms.progress;
|
|
194
|
+
dist = 2.0 * metal::min(_e35, 1.0 - _e37);
|
|
195
|
+
int _e42 = uniforms.steps;
|
|
196
|
+
if (_e42 > 0) {
|
|
197
|
+
float _e44 = dist;
|
|
198
|
+
int _e46 = uniforms.steps;
|
|
199
|
+
int _e51 = uniforms.steps;
|
|
200
|
+
local = metal::ceil(_e44 * static_cast<float>(_e46)) / static_cast<float>(_e51);
|
|
201
|
+
} else {
|
|
202
|
+
float _e54 = dist;
|
|
203
|
+
local = _e54;
|
|
204
|
+
}
|
|
205
|
+
float _e55 = local;
|
|
206
|
+
dist = _e55;
|
|
207
|
+
float _e56 = dist;
|
|
208
|
+
float _e59 = uniforms.horizontalHexagons;
|
|
209
|
+
size_2 = (0.57735026 * _e56) / _e59;
|
|
210
|
+
float _e61 = dist;
|
|
211
|
+
if (_e61 > 0.0) {
|
|
212
|
+
metal::float2 _e63 = uv_2;
|
|
213
|
+
param_5 = _e63;
|
|
214
|
+
float _e64 = size_2;
|
|
215
|
+
param_6 = _e64;
|
|
216
|
+
Hexagon _e65 = hexagonFromPoint(param_5, param_6, uniforms);
|
|
217
|
+
param_7 = _e65;
|
|
218
|
+
float _e66 = size_2;
|
|
219
|
+
param_8 = _e66;
|
|
220
|
+
metal::float2 _e67 = pointFromHexagon(param_7, param_8, uniforms);
|
|
221
|
+
local_1 = _e67;
|
|
222
|
+
} else {
|
|
223
|
+
metal::float2 _e68 = uv_2;
|
|
224
|
+
local_1 = _e68;
|
|
225
|
+
}
|
|
226
|
+
metal::float2 _e69 = local_1;
|
|
227
|
+
point_1 = _e69;
|
|
228
|
+
metal::float2 _e70 = point_1;
|
|
229
|
+
param_9 = _e70;
|
|
230
|
+
metal::float4 _e71 = getFromColor(param_9, _from, _sampler);
|
|
231
|
+
metal::float2 _e72 = point_1;
|
|
232
|
+
param_10 = _e72;
|
|
233
|
+
metal::float4 _e73 = getToColor(param_10, _sampler, _to);
|
|
234
|
+
float _e75 = uniforms.progress;
|
|
235
|
+
return metal::mix(_e71, _e73, metal::float4(_e75));
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
void main_1(
|
|
239
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
240
|
+
metal::sampler _sampler,
|
|
241
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
242
|
+
constant Uniforms& uniforms,
|
|
243
|
+
thread metal::float4& _fragColor,
|
|
244
|
+
thread metal::float2& _uv_1
|
|
245
|
+
) {
|
|
246
|
+
metal::float2 param_11 = {};
|
|
247
|
+
metal::float2 _e23 = _uv_1;
|
|
248
|
+
param_11 = _e23;
|
|
249
|
+
metal::float4 _e24 = transition(param_11, _from, _sampler, _to, uniforms);
|
|
250
|
+
_fragColor = _e24;
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
struct main_Input {
|
|
255
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
256
|
+
};
|
|
257
|
+
struct main_Output {
|
|
258
|
+
metal::float4 member [[color(0)]];
|
|
259
|
+
};
|
|
260
|
+
fragment main_Output main_(
|
|
261
|
+
main_Input varyings [[stage_in]]
|
|
262
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
263
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
264
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
265
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
266
|
+
) {
|
|
267
|
+
metal::float4 _fragColor = {};
|
|
268
|
+
metal::float2 _uv_1 = {};
|
|
269
|
+
const auto _uv = varyings._uv;
|
|
270
|
+
_uv_1 = _uv;
|
|
271
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
272
|
+
metal::float4 _e3 = _fragColor;
|
|
273
|
+
return main_Output { _e3 };
|
|
274
|
+
}
|