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,152 @@
|
|
|
1
|
+
// ZoomRigthWipe — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/ZoomRigthWipe.glsl
|
|
2
|
+
// Author: Handk
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Zooms into the outgoing image, then the incoming one wipes in from left to right
|
|
5
|
+
// Bindings and uniform layout: see the gl-transitions package README
|
|
6
|
+
|
|
7
|
+
// language: metal1.0
|
|
8
|
+
#include <metal_stdlib>
|
|
9
|
+
#include <simd/simd.h>
|
|
10
|
+
|
|
11
|
+
using metal::uint;
|
|
12
|
+
|
|
13
|
+
struct Uniforms {
|
|
14
|
+
float progress;
|
|
15
|
+
float ratio;
|
|
16
|
+
float zoom_quickness;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
metal::float4 getToColor(
|
|
20
|
+
thread metal::float2& uv,
|
|
21
|
+
metal::sampler _sampler,
|
|
22
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
23
|
+
) {
|
|
24
|
+
float _e17 = uv[0u];
|
|
25
|
+
float _e19 = uv[1u];
|
|
26
|
+
metal::float4 _e22 = _to.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
27
|
+
return _e22;
|
|
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 _e17 = uv_1[0u];
|
|
36
|
+
float _e19 = uv_1[1u];
|
|
37
|
+
metal::float4 _e22 = _from.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
38
|
+
return _e22;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
metal::float2 zoom(
|
|
42
|
+
thread metal::float2& uv_2,
|
|
43
|
+
thread float& amount
|
|
44
|
+
) {
|
|
45
|
+
float _e17 = amount;
|
|
46
|
+
if (_e17 < 0.5) {
|
|
47
|
+
metal::float2 _e19 = uv_2;
|
|
48
|
+
float _e22 = amount;
|
|
49
|
+
return metal::float2(0.5) + ((_e19 - metal::float2(0.5)) * (1.0 - _e22));
|
|
50
|
+
} else {
|
|
51
|
+
metal::float2 _e27 = uv_2;
|
|
52
|
+
float _e30 = amount;
|
|
53
|
+
return metal::float2(0.5) + ((_e27 - metal::float2(0.5)) * _e30);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
metal::float4 transition(
|
|
58
|
+
thread metal::float2& uv_3,
|
|
59
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
60
|
+
metal::sampler _sampler,
|
|
61
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
62
|
+
constant Uniforms& uniforms
|
|
63
|
+
) {
|
|
64
|
+
float nQuick = {};
|
|
65
|
+
metal::float4 c = {};
|
|
66
|
+
metal::float2 param = {};
|
|
67
|
+
float param_1 = {};
|
|
68
|
+
metal::float2 param_2 = {};
|
|
69
|
+
metal::float2 param_3 = {};
|
|
70
|
+
metal::float2 p = {};
|
|
71
|
+
metal::float4 d = {};
|
|
72
|
+
metal::float2 param_4 = {};
|
|
73
|
+
metal::float4 e = {};
|
|
74
|
+
metal::float2 param_5 = {};
|
|
75
|
+
metal::float4 f = {};
|
|
76
|
+
float _e29 = uniforms.zoom_quickness;
|
|
77
|
+
nQuick = metal::clamp(_e29, 0.0, 0.5);
|
|
78
|
+
float _e32 = uniforms.progress;
|
|
79
|
+
if (_e32 < 0.5) {
|
|
80
|
+
float _e34 = nQuick;
|
|
81
|
+
float _e36 = uniforms.progress;
|
|
82
|
+
metal::float2 _e38 = uv_3;
|
|
83
|
+
param = _e38;
|
|
84
|
+
param_1 = metal::smoothstep(0.0, _e34, _e36);
|
|
85
|
+
metal::float2 _e39 = zoom(param, param_1);
|
|
86
|
+
param_2 = _e39;
|
|
87
|
+
metal::float4 _e40 = getFromColor(param_2, _from, _sampler);
|
|
88
|
+
metal::float2 _e41 = uv_3;
|
|
89
|
+
param_3 = _e41;
|
|
90
|
+
metal::float4 _e42 = getToColor(param_3, _sampler, _to);
|
|
91
|
+
float _e44 = uniforms.progress;
|
|
92
|
+
c = metal::mix(_e40, _e42, metal::float4(metal::step(0.5, _e44)));
|
|
93
|
+
metal::float4 _e48 = c;
|
|
94
|
+
return _e48;
|
|
95
|
+
} else {
|
|
96
|
+
metal::float2 _e49 = uv_3;
|
|
97
|
+
p = _e49 / metal::float2(1.0, 1.0);
|
|
98
|
+
metal::float2 _e51 = p;
|
|
99
|
+
param_4 = _e51;
|
|
100
|
+
metal::float4 _e52 = getFromColor(param_4, _from, _sampler);
|
|
101
|
+
d = _e52;
|
|
102
|
+
metal::float2 _e53 = p;
|
|
103
|
+
param_5 = _e53;
|
|
104
|
+
metal::float4 _e54 = getToColor(param_5, _sampler, _to);
|
|
105
|
+
e = _e54;
|
|
106
|
+
metal::float4 _e55 = d;
|
|
107
|
+
metal::float4 _e56 = e;
|
|
108
|
+
float _e58 = p[0u];
|
|
109
|
+
float _e61 = uniforms.progress;
|
|
110
|
+
f = metal::mix(_e55, _e56, metal::float4(metal::step(0.0 + _e58, (_e61 - 0.5) * 2.0)));
|
|
111
|
+
metal::float4 _e67 = f;
|
|
112
|
+
return _e67;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
void main_1(
|
|
117
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
118
|
+
metal::sampler _sampler,
|
|
119
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
120
|
+
constant Uniforms& uniforms,
|
|
121
|
+
thread metal::float4& _fragColor,
|
|
122
|
+
thread metal::float2& _uv_1
|
|
123
|
+
) {
|
|
124
|
+
metal::float2 param_6 = {};
|
|
125
|
+
metal::float2 _e16 = _uv_1;
|
|
126
|
+
param_6 = _e16;
|
|
127
|
+
metal::float4 _e17 = transition(param_6, _from, _sampler, _to, uniforms);
|
|
128
|
+
_fragColor = _e17;
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
struct main_Input {
|
|
133
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
134
|
+
};
|
|
135
|
+
struct main_Output {
|
|
136
|
+
metal::float4 member [[color(0)]];
|
|
137
|
+
};
|
|
138
|
+
fragment main_Output main_(
|
|
139
|
+
main_Input varyings [[stage_in]]
|
|
140
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
141
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
142
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
143
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
144
|
+
) {
|
|
145
|
+
metal::float4 _fragColor = {};
|
|
146
|
+
metal::float2 _uv_1 = {};
|
|
147
|
+
const auto _uv = varyings._uv;
|
|
148
|
+
_uv_1 = _uv;
|
|
149
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
150
|
+
metal::float4 _e3 = _fragColor;
|
|
151
|
+
return main_Output { _e3 };
|
|
152
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// angular — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/angular.glsl
|
|
2
|
+
// Author: Fernando Kuteken
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A wipe that sweeps around the center from a starting angle
|
|
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 startingAngle;
|
|
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 _e18 = uv[0u];
|
|
25
|
+
float _e20 = uv[1u];
|
|
26
|
+
metal::float4 _e23 = _to.sample(_sampler, metal::float2(_e18, 1.0 - _e20), metal::level(0.0));
|
|
27
|
+
return _e23;
|
|
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 _e18 = uv_1[0u];
|
|
36
|
+
float _e20 = uv_1[1u];
|
|
37
|
+
metal::float4 _e23 = _from.sample(_sampler, metal::float2(_e18, 1.0 - _e20), metal::level(0.0));
|
|
38
|
+
return _e23;
|
|
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 offset = {};
|
|
49
|
+
float angle = {};
|
|
50
|
+
float normalizedAngle = {};
|
|
51
|
+
metal::float2 param = {};
|
|
52
|
+
metal::float2 param_1 = {};
|
|
53
|
+
float _e23 = uniforms.startingAngle;
|
|
54
|
+
offset = (_e23 * 3.1415927) / 180.0;
|
|
55
|
+
float _e27 = uv_2[1u];
|
|
56
|
+
float _e30 = uv_2[0u];
|
|
57
|
+
float _e33 = offset;
|
|
58
|
+
angle = metal::atan2(_e27 - 0.5, _e30 - 0.5) + _e33;
|
|
59
|
+
float _e35 = angle;
|
|
60
|
+
normalizedAngle = (_e35 + 3.1415927) / 6.2831855;
|
|
61
|
+
float _e38 = normalizedAngle;
|
|
62
|
+
float _e39 = normalizedAngle;
|
|
63
|
+
normalizedAngle = _e38 - metal::floor(_e39);
|
|
64
|
+
metal::float2 _e42 = uv_2;
|
|
65
|
+
param = _e42;
|
|
66
|
+
metal::float4 _e43 = getFromColor(param, _from, _sampler);
|
|
67
|
+
metal::float2 _e44 = uv_2;
|
|
68
|
+
param_1 = _e44;
|
|
69
|
+
metal::float4 _e45 = getToColor(param_1, _sampler, _to);
|
|
70
|
+
float _e46 = normalizedAngle;
|
|
71
|
+
float _e48 = uniforms.progress;
|
|
72
|
+
return metal::mix(_e43, _e45, metal::float4(metal::step(_e46, _e48)));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
void main_1(
|
|
76
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
77
|
+
metal::sampler _sampler,
|
|
78
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
79
|
+
constant Uniforms& uniforms,
|
|
80
|
+
thread metal::float4& _fragColor,
|
|
81
|
+
thread metal::float2& _uv_1
|
|
82
|
+
) {
|
|
83
|
+
metal::float2 param_2 = {};
|
|
84
|
+
metal::float2 _e17 = _uv_1;
|
|
85
|
+
param_2 = _e17;
|
|
86
|
+
metal::float4 _e18 = transition(param_2, _from, _sampler, _to, uniforms);
|
|
87
|
+
_fragColor = _e18;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
struct main_Input {
|
|
92
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
93
|
+
};
|
|
94
|
+
struct main_Output {
|
|
95
|
+
metal::float4 member [[color(0)]];
|
|
96
|
+
};
|
|
97
|
+
fragment main_Output main_(
|
|
98
|
+
main_Input varyings [[stage_in]]
|
|
99
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
100
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
101
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
102
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
103
|
+
) {
|
|
104
|
+
metal::float4 _fragColor = {};
|
|
105
|
+
metal::float2 _uv_1 = {};
|
|
106
|
+
const auto _uv = varyings._uv;
|
|
107
|
+
_uv_1 = _uv;
|
|
108
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
109
|
+
metal::float4 _e3 = _fragColor;
|
|
110
|
+
return main_Output { _e3 };
|
|
111
|
+
}
|
package/msl/burn.metal
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// burn — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/burn.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A crossfade that brightens toward a color in the middle
|
|
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
|
+
char _pad2[8];
|
|
17
|
+
metal::float3 color;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
metal::float4 getToColor(
|
|
21
|
+
thread metal::float2& uv,
|
|
22
|
+
metal::sampler _sampler,
|
|
23
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
24
|
+
) {
|
|
25
|
+
float _e14 = uv[0u];
|
|
26
|
+
float _e16 = uv[1u];
|
|
27
|
+
metal::float4 _e19 = _to.sample(_sampler, metal::float2(_e14, 1.0 - _e16), metal::level(0.0));
|
|
28
|
+
return _e19;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
metal::float4 getFromColor(
|
|
32
|
+
thread metal::float2& uv_1,
|
|
33
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
34
|
+
metal::sampler _sampler
|
|
35
|
+
) {
|
|
36
|
+
float _e14 = uv_1[0u];
|
|
37
|
+
float _e16 = uv_1[1u];
|
|
38
|
+
metal::float4 _e19 = _from.sample(_sampler, metal::float2(_e14, 1.0 - _e16), metal::level(0.0));
|
|
39
|
+
return _e19;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
metal::float4 transition(
|
|
43
|
+
thread metal::float2& uv_2,
|
|
44
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
45
|
+
metal::sampler _sampler,
|
|
46
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
47
|
+
constant Uniforms& uniforms
|
|
48
|
+
) {
|
|
49
|
+
metal::float2 param = {};
|
|
50
|
+
metal::float2 param_1 = {};
|
|
51
|
+
metal::float2 _e15 = uv_2;
|
|
52
|
+
param = _e15;
|
|
53
|
+
metal::float4 _e16 = getFromColor(param, _from, _sampler);
|
|
54
|
+
float _e18 = uniforms.progress;
|
|
55
|
+
metal::float3 _e20 = uniforms.color;
|
|
56
|
+
metal::float3 _e21 = _e20 * _e18;
|
|
57
|
+
metal::float2 _e27 = uv_2;
|
|
58
|
+
param_1 = _e27;
|
|
59
|
+
metal::float4 _e28 = getToColor(param_1, _sampler, _to);
|
|
60
|
+
float _e30 = uniforms.progress;
|
|
61
|
+
metal::float3 _e33 = uniforms.color;
|
|
62
|
+
metal::float3 _e34 = _e33 * (1.0 - _e30);
|
|
63
|
+
float _e41 = uniforms.progress;
|
|
64
|
+
return metal::mix(_e16 + metal::float4(_e21.x, _e21.y, _e21.z, 1.0), _e28 + metal::float4(_e34.x, _e34.y, _e34.z, 1.0), metal::float4(_e41));
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
void main_1(
|
|
68
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
69
|
+
metal::sampler _sampler,
|
|
70
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
71
|
+
constant Uniforms& uniforms,
|
|
72
|
+
thread metal::float4& _fragColor,
|
|
73
|
+
thread metal::float2& _uv_1
|
|
74
|
+
) {
|
|
75
|
+
metal::float2 param_2 = {};
|
|
76
|
+
metal::float2 _e13 = _uv_1;
|
|
77
|
+
param_2 = _e13;
|
|
78
|
+
metal::float4 _e14 = transition(param_2, _from, _sampler, _to, uniforms);
|
|
79
|
+
_fragColor = _e14;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
struct main_Input {
|
|
84
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
85
|
+
};
|
|
86
|
+
struct main_Output {
|
|
87
|
+
metal::float4 member [[color(0)]];
|
|
88
|
+
};
|
|
89
|
+
fragment main_Output main_(
|
|
90
|
+
main_Input varyings [[stage_in]]
|
|
91
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
92
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
93
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
94
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
95
|
+
) {
|
|
96
|
+
metal::float4 _fragColor = {};
|
|
97
|
+
metal::float2 _uv_1 = {};
|
|
98
|
+
const auto _uv = varyings._uv;
|
|
99
|
+
_uv_1 = _uv;
|
|
100
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
101
|
+
metal::float4 _e3 = _fragColor;
|
|
102
|
+
return main_Output { _e3 };
|
|
103
|
+
}
|
package/msl/burn0.metal
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
// burn0 — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/burn0.glsl
|
|
2
|
+
// Author: liubailin2020@gmail.com
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image burns away in noisy, glowing patches
|
|
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
|
+
char _pad2[8];
|
|
17
|
+
metal::float3 burnColor;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
float random(
|
|
21
|
+
thread metal::float2& st
|
|
22
|
+
) {
|
|
23
|
+
metal::float2 _e28 = st;
|
|
24
|
+
return metal::fract(metal::sin(metal::dot(_e28, metal::float2(12.9898, 78.233))) * 43758.547);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
float noise(
|
|
28
|
+
thread metal::float2& st_1
|
|
29
|
+
) {
|
|
30
|
+
metal::float2 i = {};
|
|
31
|
+
metal::float2 f = {};
|
|
32
|
+
float a = {};
|
|
33
|
+
metal::float2 param = {};
|
|
34
|
+
float b = {};
|
|
35
|
+
metal::float2 param_1 = {};
|
|
36
|
+
float c = {};
|
|
37
|
+
metal::float2 param_2 = {};
|
|
38
|
+
float d = {};
|
|
39
|
+
metal::float2 param_3 = {};
|
|
40
|
+
metal::float2 u = {};
|
|
41
|
+
metal::float2 _e39 = st_1;
|
|
42
|
+
i = metal::floor(_e39);
|
|
43
|
+
metal::float2 _e41 = st_1;
|
|
44
|
+
f = metal::fract(_e41);
|
|
45
|
+
metal::float2 _e43 = i;
|
|
46
|
+
param = _e43;
|
|
47
|
+
float _e44 = random(param);
|
|
48
|
+
a = _e44;
|
|
49
|
+
metal::float2 _e45 = i;
|
|
50
|
+
param_1 = _e45 + metal::float2(1.0, 0.0);
|
|
51
|
+
float _e47 = random(param_1);
|
|
52
|
+
b = _e47;
|
|
53
|
+
metal::float2 _e48 = i;
|
|
54
|
+
param_2 = _e48 + metal::float2(0.0, 1.0);
|
|
55
|
+
float _e50 = random(param_2);
|
|
56
|
+
c = _e50;
|
|
57
|
+
metal::float2 _e51 = i;
|
|
58
|
+
param_3 = _e51 + metal::float2(1.0, 1.0);
|
|
59
|
+
float _e53 = random(param_3);
|
|
60
|
+
d = _e53;
|
|
61
|
+
metal::float2 _e54 = f;
|
|
62
|
+
metal::float2 _e55 = f;
|
|
63
|
+
metal::float2 _e57 = f;
|
|
64
|
+
u = (_e54 * _e55) * (metal::float2(3.0) - (_e57 * 2.0));
|
|
65
|
+
float _e62 = a;
|
|
66
|
+
float _e63 = b;
|
|
67
|
+
float _e65 = u[0u];
|
|
68
|
+
float _e67 = c;
|
|
69
|
+
float _e68 = a;
|
|
70
|
+
float _e71 = u[1u];
|
|
71
|
+
float _e74 = u[0u];
|
|
72
|
+
float _e78 = d;
|
|
73
|
+
float _e79 = b;
|
|
74
|
+
float _e82 = u[0u];
|
|
75
|
+
float _e85 = u[1u];
|
|
76
|
+
return (metal::mix(_e62, _e63, _e65) + (((_e67 - _e68) * _e71) * (1.0 - _e74))) + (((_e78 - _e79) * _e82) * _e85);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
float fbm(
|
|
80
|
+
thread metal::float2& st_2
|
|
81
|
+
) {
|
|
82
|
+
float value = {};
|
|
83
|
+
float amplitude = {};
|
|
84
|
+
int i_1 = {};
|
|
85
|
+
metal::float2 param_4 = {};
|
|
86
|
+
value = 0.0;
|
|
87
|
+
amplitude = 0.5;
|
|
88
|
+
i_1 = 0;
|
|
89
|
+
uint2 loop_bound = uint2(4294967295u);
|
|
90
|
+
bool loop_init = true;
|
|
91
|
+
while(true) {
|
|
92
|
+
if (metal::all(loop_bound == uint2(0u))) { break; }
|
|
93
|
+
loop_bound -= uint2(loop_bound.y == 0u, 1u);
|
|
94
|
+
if (!loop_init) {
|
|
95
|
+
int _e44 = i_1;
|
|
96
|
+
i_1 = as_type<int>(as_type<uint>(_e44) + as_type<uint>(1));
|
|
97
|
+
}
|
|
98
|
+
loop_init = false;
|
|
99
|
+
int _e32 = i_1;
|
|
100
|
+
if (_e32 < 4) {
|
|
101
|
+
float _e34 = amplitude;
|
|
102
|
+
metal::float2 _e35 = st_2;
|
|
103
|
+
param_4 = _e35;
|
|
104
|
+
float _e36 = noise(param_4);
|
|
105
|
+
float _e38 = value;
|
|
106
|
+
value = _e38 + (_e34 * _e36);
|
|
107
|
+
metal::float2 _e40 = st_2;
|
|
108
|
+
st_2 = _e40 * 2.0;
|
|
109
|
+
float _e42 = amplitude;
|
|
110
|
+
amplitude = _e42 * 0.5;
|
|
111
|
+
continue;
|
|
112
|
+
} else {
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
float _e46 = value;
|
|
117
|
+
return _e46;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
metal::float4 getToColor(
|
|
121
|
+
thread metal::float2& uv,
|
|
122
|
+
metal::sampler _sampler,
|
|
123
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
124
|
+
) {
|
|
125
|
+
float _e29 = uv[0u];
|
|
126
|
+
float _e31 = uv[1u];
|
|
127
|
+
metal::float4 _e34 = _to.sample(_sampler, metal::float2(_e29, 1.0 - _e31), metal::level(0.0));
|
|
128
|
+
return _e34;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
metal::float4 getFromColor(
|
|
132
|
+
thread metal::float2& uv_1,
|
|
133
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
134
|
+
metal::sampler _sampler
|
|
135
|
+
) {
|
|
136
|
+
float _e29 = uv_1[0u];
|
|
137
|
+
float _e31 = uv_1[1u];
|
|
138
|
+
metal::float4 _e34 = _from.sample(_sampler, metal::float2(_e29, 1.0 - _e31), metal::level(0.0));
|
|
139
|
+
return _e34;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
metal::float4 transition(
|
|
143
|
+
thread metal::float2& uv_2,
|
|
144
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
145
|
+
metal::sampler _sampler,
|
|
146
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
147
|
+
constant Uniforms& uniforms
|
|
148
|
+
) {
|
|
149
|
+
metal::float2 param_5 = {};
|
|
150
|
+
metal::float2 param_6 = {};
|
|
151
|
+
metal::float4 from = {};
|
|
152
|
+
metal::float2 param_7 = {};
|
|
153
|
+
metal::float4 to = {};
|
|
154
|
+
metal::float2 param_8 = {};
|
|
155
|
+
float n = {};
|
|
156
|
+
metal::float2 param_9 = {};
|
|
157
|
+
float l = {};
|
|
158
|
+
float edge = {};
|
|
159
|
+
float _e39 = uniforms.progress;
|
|
160
|
+
if (_e39 <= 0.0) {
|
|
161
|
+
metal::float2 _e41 = uv_2;
|
|
162
|
+
param_5 = _e41;
|
|
163
|
+
metal::float4 _e42 = getFromColor(param_5, _from, _sampler);
|
|
164
|
+
return _e42;
|
|
165
|
+
}
|
|
166
|
+
float _e44 = uniforms.progress;
|
|
167
|
+
if (_e44 >= 1.0) {
|
|
168
|
+
metal::float2 _e46 = uv_2;
|
|
169
|
+
param_6 = _e46;
|
|
170
|
+
metal::float4 _e47 = getToColor(param_6, _sampler, _to);
|
|
171
|
+
return _e47;
|
|
172
|
+
}
|
|
173
|
+
metal::float2 _e48 = uv_2;
|
|
174
|
+
param_7 = _e48;
|
|
175
|
+
metal::float4 _e49 = getFromColor(param_7, _from, _sampler);
|
|
176
|
+
from = _e49;
|
|
177
|
+
metal::float2 _e50 = uv_2;
|
|
178
|
+
param_8 = _e50;
|
|
179
|
+
metal::float4 _e51 = getToColor(param_8, _sampler, _to);
|
|
180
|
+
to = _e51;
|
|
181
|
+
metal::float2 _e52 = uv_2;
|
|
182
|
+
param_9 = _e52 * 4.0;
|
|
183
|
+
float _e54 = fbm(param_9);
|
|
184
|
+
n = _e54;
|
|
185
|
+
float _e56 = uniforms.progress;
|
|
186
|
+
float _e58 = uniforms.progress;
|
|
187
|
+
float _e60 = n;
|
|
188
|
+
l = metal::smoothstep(_e56, _e58 + 0.05, _e60);
|
|
189
|
+
float _e62 = l;
|
|
190
|
+
float _e64 = l;
|
|
191
|
+
edge = ((1.0 - _e62) * _e64) * 5.0;
|
|
192
|
+
metal::float4 _e67 = to;
|
|
193
|
+
metal::float4 _e68 = from;
|
|
194
|
+
float _e69 = l;
|
|
195
|
+
metal::float3 _e73 = uniforms.burnColor;
|
|
196
|
+
float _e78 = edge;
|
|
197
|
+
return metal::mix(_e67, _e68, metal::float4(_e69)) + (metal::float4(_e73.x, _e73.y, _e73.z, 0.0) * _e78);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
void main_1(
|
|
201
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
202
|
+
metal::sampler _sampler,
|
|
203
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
204
|
+
constant Uniforms& uniforms,
|
|
205
|
+
thread metal::float4& _fragColor,
|
|
206
|
+
thread metal::float2& _uv_1
|
|
207
|
+
) {
|
|
208
|
+
metal::float2 param_10 = {};
|
|
209
|
+
metal::float2 _e28 = _uv_1;
|
|
210
|
+
param_10 = _e28;
|
|
211
|
+
metal::float4 _e29 = transition(param_10, _from, _sampler, _to, uniforms);
|
|
212
|
+
_fragColor = _e29;
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
struct main_Input {
|
|
217
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
218
|
+
};
|
|
219
|
+
struct main_Output {
|
|
220
|
+
metal::float4 member [[color(0)]];
|
|
221
|
+
};
|
|
222
|
+
fragment main_Output main_(
|
|
223
|
+
main_Input varyings [[stage_in]]
|
|
224
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
225
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
226
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
227
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
228
|
+
) {
|
|
229
|
+
metal::float4 _fragColor = {};
|
|
230
|
+
metal::float2 _uv_1 = {};
|
|
231
|
+
const auto _uv = varyings._uv;
|
|
232
|
+
_uv_1 = _uv;
|
|
233
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
234
|
+
metal::float4 _e3 = _fragColor;
|
|
235
|
+
return main_Output { _e3 };
|
|
236
|
+
}
|