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,361 @@
|
|
|
1
|
+
// BowTieWithParameter — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/BowTieWithParameter.glsl
|
|
2
|
+
// Author: KMojek
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A bow-tie wipe with an adjustable shape that can run in reverse
|
|
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 adjust;
|
|
17
|
+
int reverse;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
metal::float4 getFromColor(
|
|
21
|
+
thread metal::float2& uv,
|
|
22
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
23
|
+
metal::sampler _sampler
|
|
24
|
+
) {
|
|
25
|
+
float _e18 = uv[0u];
|
|
26
|
+
float _e20 = uv[1u];
|
|
27
|
+
metal::float4 _e23 = _from.sample(_sampler, metal::float2(_e18, 1.0 - _e20), metal::level(0.0));
|
|
28
|
+
return _e23;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
metal::float4 getToColor(
|
|
32
|
+
thread metal::float2& uv_1,
|
|
33
|
+
metal::sampler _sampler,
|
|
34
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
35
|
+
) {
|
|
36
|
+
float _e18 = uv_1[0u];
|
|
37
|
+
float _e20 = uv_1[1u];
|
|
38
|
+
metal::float4 _e23 = _to.sample(_sampler, metal::float2(_e18, 1.0 - _e20), metal::level(0.0));
|
|
39
|
+
return _e23;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
float check(
|
|
43
|
+
thread metal::float2& p1_,
|
|
44
|
+
thread metal::float2& p2_,
|
|
45
|
+
thread metal::float2& p3_
|
|
46
|
+
) {
|
|
47
|
+
float _e20 = p1_[0u];
|
|
48
|
+
float _e22 = p3_[0u];
|
|
49
|
+
float _e25 = p2_[1u];
|
|
50
|
+
float _e27 = p3_[1u];
|
|
51
|
+
float _e31 = p2_[0u];
|
|
52
|
+
float _e33 = p3_[0u];
|
|
53
|
+
float _e36 = p1_[1u];
|
|
54
|
+
float _e38 = p3_[1u];
|
|
55
|
+
return ((_e20 - _e22) * (_e25 - _e27)) - ((_e31 - _e33) * (_e36 - _e38));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
bool pointInTriangle(
|
|
59
|
+
thread metal::float2& pt,
|
|
60
|
+
thread metal::float2& p1_1,
|
|
61
|
+
thread metal::float2& p2_1,
|
|
62
|
+
thread metal::float2& p3_1
|
|
63
|
+
) {
|
|
64
|
+
bool b1_ = {};
|
|
65
|
+
metal::float2 param = {};
|
|
66
|
+
metal::float2 param_1 = {};
|
|
67
|
+
metal::float2 param_2 = {};
|
|
68
|
+
bool b2_ = {};
|
|
69
|
+
metal::float2 param_3 = {};
|
|
70
|
+
metal::float2 param_4 = {};
|
|
71
|
+
metal::float2 param_5 = {};
|
|
72
|
+
bool b3_ = {};
|
|
73
|
+
metal::float2 param_6 = {};
|
|
74
|
+
metal::float2 param_7 = {};
|
|
75
|
+
metal::float2 param_8 = {};
|
|
76
|
+
metal::float2 _e32 = pt;
|
|
77
|
+
param = _e32;
|
|
78
|
+
metal::float2 _e33 = p1_1;
|
|
79
|
+
param_1 = _e33;
|
|
80
|
+
metal::float2 _e34 = p2_1;
|
|
81
|
+
param_2 = _e34;
|
|
82
|
+
float _e35 = check(param, param_1, param_2);
|
|
83
|
+
b1_ = _e35 < 0.0;
|
|
84
|
+
metal::float2 _e37 = pt;
|
|
85
|
+
param_3 = _e37;
|
|
86
|
+
metal::float2 _e38 = p2_1;
|
|
87
|
+
param_4 = _e38;
|
|
88
|
+
metal::float2 _e39 = p3_1;
|
|
89
|
+
param_5 = _e39;
|
|
90
|
+
float _e40 = check(param_3, param_4, param_5);
|
|
91
|
+
b2_ = _e40 < 0.0;
|
|
92
|
+
metal::float2 _e42 = pt;
|
|
93
|
+
param_6 = _e42;
|
|
94
|
+
metal::float2 _e43 = p3_1;
|
|
95
|
+
param_7 = _e43;
|
|
96
|
+
metal::float2 _e44 = p1_1;
|
|
97
|
+
param_8 = _e44;
|
|
98
|
+
float _e45 = check(param_6, param_7, param_8);
|
|
99
|
+
b3_ = _e45 < 0.0;
|
|
100
|
+
bool _e47 = b1_;
|
|
101
|
+
bool _e48 = b2_;
|
|
102
|
+
bool _e50 = b2_;
|
|
103
|
+
bool _e51 = b3_;
|
|
104
|
+
return (_e47 == _e48) && (_e50 == _e51);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
metal::float4 transition_firstHalf(
|
|
108
|
+
thread metal::float2& uv_2,
|
|
109
|
+
thread float& prog,
|
|
110
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
111
|
+
metal::sampler _sampler,
|
|
112
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
113
|
+
constant Uniforms& uniforms
|
|
114
|
+
) {
|
|
115
|
+
metal::float2 botLeft = {};
|
|
116
|
+
metal::float2 botRight = {};
|
|
117
|
+
metal::float2 tip = {};
|
|
118
|
+
metal::float2 param_9 = {};
|
|
119
|
+
metal::float2 param_10 = {};
|
|
120
|
+
metal::float2 param_11 = {};
|
|
121
|
+
metal::float2 param_12 = {};
|
|
122
|
+
metal::float2 param_13 = {};
|
|
123
|
+
metal::float2 topLeft = {};
|
|
124
|
+
metal::float2 topRight = {};
|
|
125
|
+
metal::float2 tip_1 = {};
|
|
126
|
+
metal::float2 param_14 = {};
|
|
127
|
+
metal::float2 param_15 = {};
|
|
128
|
+
metal::float2 param_16 = {};
|
|
129
|
+
metal::float2 param_17 = {};
|
|
130
|
+
metal::float2 param_18 = {};
|
|
131
|
+
metal::float2 param_19 = {};
|
|
132
|
+
float _e36 = uv_2[1u];
|
|
133
|
+
if (_e36 < 0.5) {
|
|
134
|
+
float _e38 = prog;
|
|
135
|
+
botLeft = metal::float2(-0.0, _e38 - 0.5);
|
|
136
|
+
float _e41 = prog;
|
|
137
|
+
botRight = metal::float2(1.0, _e41 - 0.5);
|
|
138
|
+
float _e45 = uniforms.adjust;
|
|
139
|
+
float _e46 = prog;
|
|
140
|
+
tip = metal::float2(_e45, _e46);
|
|
141
|
+
metal::float2 _e48 = uv_2;
|
|
142
|
+
param_9 = _e48;
|
|
143
|
+
metal::float2 _e49 = botLeft;
|
|
144
|
+
param_10 = _e49;
|
|
145
|
+
metal::float2 _e50 = botRight;
|
|
146
|
+
param_11 = _e50;
|
|
147
|
+
metal::float2 _e51 = tip;
|
|
148
|
+
param_12 = _e51;
|
|
149
|
+
bool _e52 = pointInTriangle(param_9, param_10, param_11, param_12);
|
|
150
|
+
if (_e52) {
|
|
151
|
+
metal::float2 _e53 = uv_2;
|
|
152
|
+
param_13 = _e53;
|
|
153
|
+
metal::float4 _e54 = getToColor(param_13, _sampler, _to);
|
|
154
|
+
return _e54;
|
|
155
|
+
}
|
|
156
|
+
} else {
|
|
157
|
+
float _e55 = prog;
|
|
158
|
+
topLeft = metal::float2(-0.0, (1.0 - _e55) + 0.5);
|
|
159
|
+
float _e59 = prog;
|
|
160
|
+
topRight = metal::float2(1.0, (1.0 - _e59) + 0.5);
|
|
161
|
+
float _e64 = uniforms.adjust;
|
|
162
|
+
float _e65 = prog;
|
|
163
|
+
tip_1 = metal::float2(_e64, 1.0 - _e65);
|
|
164
|
+
metal::float2 _e68 = uv_2;
|
|
165
|
+
param_14 = _e68;
|
|
166
|
+
metal::float2 _e69 = topLeft;
|
|
167
|
+
param_15 = _e69;
|
|
168
|
+
metal::float2 _e70 = topRight;
|
|
169
|
+
param_16 = _e70;
|
|
170
|
+
metal::float2 _e71 = tip_1;
|
|
171
|
+
param_17 = _e71;
|
|
172
|
+
bool _e72 = pointInTriangle(param_14, param_15, param_16, param_17);
|
|
173
|
+
if (_e72) {
|
|
174
|
+
metal::float2 _e73 = uv_2;
|
|
175
|
+
param_18 = _e73;
|
|
176
|
+
metal::float4 _e74 = getToColor(param_18, _sampler, _to);
|
|
177
|
+
return _e74;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
metal::float2 _e75 = uv_2;
|
|
181
|
+
param_19 = _e75;
|
|
182
|
+
metal::float4 _e76 = getFromColor(param_19, _from, _sampler);
|
|
183
|
+
return _e76;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
metal::float4 transition_secondHalf(
|
|
187
|
+
thread metal::float2& uv_3,
|
|
188
|
+
thread float& prog_1,
|
|
189
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
190
|
+
metal::sampler _sampler,
|
|
191
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
192
|
+
constant Uniforms& uniforms
|
|
193
|
+
) {
|
|
194
|
+
metal::float2 top = {};
|
|
195
|
+
metal::float2 bot = {};
|
|
196
|
+
metal::float2 tip_2 = {};
|
|
197
|
+
metal::float2 param_20 = {};
|
|
198
|
+
metal::float2 param_21 = {};
|
|
199
|
+
metal::float2 param_22 = {};
|
|
200
|
+
metal::float2 param_23 = {};
|
|
201
|
+
metal::float2 param_24 = {};
|
|
202
|
+
metal::float2 top_1 = {};
|
|
203
|
+
metal::float2 bot_1 = {};
|
|
204
|
+
metal::float2 tip_3 = {};
|
|
205
|
+
metal::float2 param_25 = {};
|
|
206
|
+
metal::float2 param_26 = {};
|
|
207
|
+
metal::float2 param_27 = {};
|
|
208
|
+
metal::float2 param_28 = {};
|
|
209
|
+
metal::float2 param_29 = {};
|
|
210
|
+
metal::float2 param_30 = {};
|
|
211
|
+
float _e36 = uv_3[0u];
|
|
212
|
+
float _e38 = uniforms.adjust;
|
|
213
|
+
if (_e36 > _e38) {
|
|
214
|
+
float _e40 = prog_1;
|
|
215
|
+
top = metal::float2(_e40 + 0.5, 1.0);
|
|
216
|
+
float _e43 = prog_1;
|
|
217
|
+
bot = metal::float2(_e43 + 0.5, -0.0);
|
|
218
|
+
float _e47 = uniforms.adjust;
|
|
219
|
+
float _e48 = prog_1;
|
|
220
|
+
tip_2 = metal::float2(metal::mix(_e47, 1.0, 2.0 * (_e48 - 0.5)), 0.5);
|
|
221
|
+
metal::float2 _e53 = uv_3;
|
|
222
|
+
param_20 = _e53;
|
|
223
|
+
metal::float2 _e54 = top;
|
|
224
|
+
param_21 = _e54;
|
|
225
|
+
metal::float2 _e55 = bot;
|
|
226
|
+
param_22 = _e55;
|
|
227
|
+
metal::float2 _e56 = tip_2;
|
|
228
|
+
param_23 = _e56;
|
|
229
|
+
bool _e57 = pointInTriangle(param_20, param_21, param_22, param_23);
|
|
230
|
+
if (_e57) {
|
|
231
|
+
metal::float2 _e58 = uv_3;
|
|
232
|
+
param_24 = _e58;
|
|
233
|
+
metal::float4 _e59 = getFromColor(param_24, _from, _sampler);
|
|
234
|
+
return _e59;
|
|
235
|
+
}
|
|
236
|
+
} else {
|
|
237
|
+
float _e60 = prog_1;
|
|
238
|
+
top_1 = metal::float2((1.0 - _e60) - 0.5, 1.0);
|
|
239
|
+
float _e64 = prog_1;
|
|
240
|
+
bot_1 = metal::float2((1.0 - _e64) - 0.5, -0.0);
|
|
241
|
+
float _e69 = uniforms.adjust;
|
|
242
|
+
float _e70 = prog_1;
|
|
243
|
+
tip_3 = metal::float2(metal::mix(_e69, 0.0, 2.0 * (_e70 - 0.5)), 0.5);
|
|
244
|
+
metal::float2 _e75 = uv_3;
|
|
245
|
+
param_25 = _e75;
|
|
246
|
+
metal::float2 _e76 = top_1;
|
|
247
|
+
param_26 = _e76;
|
|
248
|
+
metal::float2 _e77 = bot_1;
|
|
249
|
+
param_27 = _e77;
|
|
250
|
+
metal::float2 _e78 = tip_3;
|
|
251
|
+
param_28 = _e78;
|
|
252
|
+
bool _e79 = pointInTriangle(param_25, param_26, param_27, param_28);
|
|
253
|
+
if (_e79) {
|
|
254
|
+
metal::float2 _e80 = uv_3;
|
|
255
|
+
param_29 = _e80;
|
|
256
|
+
metal::float4 _e81 = getFromColor(param_29, _from, _sampler);
|
|
257
|
+
return _e81;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
metal::float2 _e82 = uv_3;
|
|
261
|
+
param_30 = _e82;
|
|
262
|
+
metal::float4 _e83 = getToColor(param_30, _sampler, _to);
|
|
263
|
+
return _e83;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
metal::float4 transition(
|
|
267
|
+
thread metal::float2& uv_4,
|
|
268
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
269
|
+
metal::sampler _sampler,
|
|
270
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
271
|
+
constant Uniforms& uniforms
|
|
272
|
+
) {
|
|
273
|
+
metal::float4 local = {};
|
|
274
|
+
metal::float2 param_31 = {};
|
|
275
|
+
float param_32 = {};
|
|
276
|
+
metal::float2 param_33 = {};
|
|
277
|
+
float param_34 = {};
|
|
278
|
+
metal::float4 local_1 = {};
|
|
279
|
+
metal::float2 param_35 = {};
|
|
280
|
+
float param_36 = {};
|
|
281
|
+
metal::float2 param_37 = {};
|
|
282
|
+
float param_38 = {};
|
|
283
|
+
int _e28 = uniforms.reverse;
|
|
284
|
+
if (_e28 != 0) {
|
|
285
|
+
float _e31 = uniforms.progress;
|
|
286
|
+
if (_e31 < 0.5) {
|
|
287
|
+
float _e34 = uniforms.progress;
|
|
288
|
+
metal::float2 _e36 = uv_4;
|
|
289
|
+
param_31 = _e36;
|
|
290
|
+
param_32 = 1.0 - _e34;
|
|
291
|
+
metal::float4 _e37 = transition_secondHalf(param_31, param_32, _from, _sampler, _to, uniforms);
|
|
292
|
+
local = _e37;
|
|
293
|
+
} else {
|
|
294
|
+
float _e39 = uniforms.progress;
|
|
295
|
+
metal::float2 _e41 = uv_4;
|
|
296
|
+
param_33 = _e41;
|
|
297
|
+
param_34 = 1.0 - _e39;
|
|
298
|
+
metal::float4 _e42 = transition_firstHalf(param_33, param_34, _from, _sampler, _to, uniforms);
|
|
299
|
+
local = _e42;
|
|
300
|
+
}
|
|
301
|
+
metal::float4 _e43 = local;
|
|
302
|
+
return _e43;
|
|
303
|
+
} else {
|
|
304
|
+
float _e45 = uniforms.progress;
|
|
305
|
+
if (_e45 < 0.5) {
|
|
306
|
+
metal::float2 _e47 = uv_4;
|
|
307
|
+
param_35 = _e47;
|
|
308
|
+
float _e49 = uniforms.progress;
|
|
309
|
+
param_36 = _e49;
|
|
310
|
+
metal::float4 _e50 = transition_firstHalf(param_35, param_36, _from, _sampler, _to, uniforms);
|
|
311
|
+
local_1 = _e50;
|
|
312
|
+
} else {
|
|
313
|
+
metal::float2 _e51 = uv_4;
|
|
314
|
+
param_37 = _e51;
|
|
315
|
+
float _e53 = uniforms.progress;
|
|
316
|
+
param_38 = _e53;
|
|
317
|
+
metal::float4 _e54 = transition_secondHalf(param_37, param_38, _from, _sampler, _to, uniforms);
|
|
318
|
+
local_1 = _e54;
|
|
319
|
+
}
|
|
320
|
+
metal::float4 _e55 = local_1;
|
|
321
|
+
return _e55;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
void main_1(
|
|
326
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
327
|
+
metal::sampler _sampler,
|
|
328
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
329
|
+
constant Uniforms& uniforms,
|
|
330
|
+
thread metal::float4& _fragColor,
|
|
331
|
+
thread metal::float2& _uv_1
|
|
332
|
+
) {
|
|
333
|
+
metal::float2 param_39 = {};
|
|
334
|
+
metal::float2 _e17 = _uv_1;
|
|
335
|
+
param_39 = _e17;
|
|
336
|
+
metal::float4 _e18 = transition(param_39, _from, _sampler, _to, uniforms);
|
|
337
|
+
_fragColor = _e18;
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
struct main_Input {
|
|
342
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
343
|
+
};
|
|
344
|
+
struct main_Output {
|
|
345
|
+
metal::float4 member [[color(0)]];
|
|
346
|
+
};
|
|
347
|
+
fragment main_Output main_(
|
|
348
|
+
main_Input varyings [[stage_in]]
|
|
349
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
350
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
351
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
352
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
353
|
+
) {
|
|
354
|
+
metal::float4 _fragColor = {};
|
|
355
|
+
metal::float2 _uv_1 = {};
|
|
356
|
+
const auto _uv = varyings._uv;
|
|
357
|
+
_uv_1 = _uv;
|
|
358
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
359
|
+
metal::float4 _e3 = _fragColor;
|
|
360
|
+
return main_Output { _e3 };
|
|
361
|
+
}
|
package/msl/Box.metal
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
// Box — MSL, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/Box.glsl
|
|
2
|
+
// Author: lql
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image shrinks into a box, toward the center or a corner, 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
|
+
int rectIn;
|
|
17
|
+
int location;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
metal::float4 getToColor(
|
|
21
|
+
thread metal::float2& uv,
|
|
22
|
+
metal::sampler _sampler,
|
|
23
|
+
metal::texture2d<float, metal::access::sample> _to
|
|
24
|
+
) {
|
|
25
|
+
float _e17 = uv[0u];
|
|
26
|
+
float _e19 = uv[1u];
|
|
27
|
+
metal::float4 _e22 = _to.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
28
|
+
return _e22;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
metal::float4 getFromColor(
|
|
32
|
+
thread metal::float2& uv_1,
|
|
33
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
34
|
+
metal::sampler _sampler
|
|
35
|
+
) {
|
|
36
|
+
float _e17 = uv_1[0u];
|
|
37
|
+
float _e19 = uv_1[1u];
|
|
38
|
+
metal::float4 _e22 = _from.sample(_sampler, metal::float2(_e17, 1.0 - _e19), metal::level(0.0));
|
|
39
|
+
return _e22;
|
|
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
|
+
float p = {};
|
|
50
|
+
float local = {};
|
|
51
|
+
float x1_ = {};
|
|
52
|
+
float y1_ = {};
|
|
53
|
+
float x2_ = {};
|
|
54
|
+
float y2_ = {};
|
|
55
|
+
float local_1 = {};
|
|
56
|
+
float local_2 = {};
|
|
57
|
+
float in_rect = {};
|
|
58
|
+
float local_3 = {};
|
|
59
|
+
metal::float2 param = {};
|
|
60
|
+
metal::float2 param_1 = {};
|
|
61
|
+
bool phi_108_ = {};
|
|
62
|
+
bool phi_125_ = {};
|
|
63
|
+
bool phi_142_ = {};
|
|
64
|
+
bool phi_154_ = {};
|
|
65
|
+
int _e29 = uniforms.rectIn;
|
|
66
|
+
if (_e29 == 1) {
|
|
67
|
+
float _e32 = uniforms.progress;
|
|
68
|
+
local = 1.0 - _e32;
|
|
69
|
+
} else {
|
|
70
|
+
float _e35 = uniforms.progress;
|
|
71
|
+
local = _e35;
|
|
72
|
+
}
|
|
73
|
+
float _e36 = local;
|
|
74
|
+
p = _e36;
|
|
75
|
+
int _e38 = uniforms.location;
|
|
76
|
+
if (_e38 == 0) {
|
|
77
|
+
float _e40 = p;
|
|
78
|
+
float _e42 = 0.5 * (1.0 - _e40);
|
|
79
|
+
y1_ = _e42;
|
|
80
|
+
x1_ = _e42;
|
|
81
|
+
float _e43 = x1_;
|
|
82
|
+
float _e44 = 1.0 - _e43;
|
|
83
|
+
y2_ = _e44;
|
|
84
|
+
x2_ = _e44;
|
|
85
|
+
} else {
|
|
86
|
+
int _e46 = uniforms.location;
|
|
87
|
+
bool _e47 = _e46 == 1;
|
|
88
|
+
phi_108_ = _e47;
|
|
89
|
+
if (!(_e47)) {
|
|
90
|
+
int _e50 = uniforms.location;
|
|
91
|
+
phi_108_ = _e50 == 2;
|
|
92
|
+
}
|
|
93
|
+
bool _e53 = phi_108_;
|
|
94
|
+
if (_e53) {
|
|
95
|
+
local_1 = 0.0;
|
|
96
|
+
} else {
|
|
97
|
+
float _e54 = p;
|
|
98
|
+
local_1 = 1.0 - _e54;
|
|
99
|
+
}
|
|
100
|
+
float _e56 = local_1;
|
|
101
|
+
x1_ = _e56;
|
|
102
|
+
int _e58 = uniforms.location;
|
|
103
|
+
bool _e59 = _e58 == 1;
|
|
104
|
+
phi_125_ = _e59;
|
|
105
|
+
if (!(_e59)) {
|
|
106
|
+
int _e62 = uniforms.location;
|
|
107
|
+
phi_125_ = _e62 == 3;
|
|
108
|
+
}
|
|
109
|
+
bool _e65 = phi_125_;
|
|
110
|
+
if (_e65) {
|
|
111
|
+
float _e66 = p;
|
|
112
|
+
local_2 = 1.0 - _e66;
|
|
113
|
+
} else {
|
|
114
|
+
local_2 = 0.0;
|
|
115
|
+
}
|
|
116
|
+
float _e68 = local_2;
|
|
117
|
+
y1_ = _e68;
|
|
118
|
+
int _e70 = uniforms.location;
|
|
119
|
+
bool _e71 = _e70 == 1;
|
|
120
|
+
phi_142_ = _e71;
|
|
121
|
+
if (!(_e71)) {
|
|
122
|
+
int _e74 = uniforms.location;
|
|
123
|
+
phi_142_ = _e74 == 2;
|
|
124
|
+
}
|
|
125
|
+
bool _e77 = phi_142_;
|
|
126
|
+
float _e78 = p;
|
|
127
|
+
x2_ = _e77 ? _e78 : 1.0;
|
|
128
|
+
int _e81 = uniforms.location;
|
|
129
|
+
bool _e82 = _e81 == 1;
|
|
130
|
+
phi_154_ = _e82;
|
|
131
|
+
if (!(_e82)) {
|
|
132
|
+
int _e85 = uniforms.location;
|
|
133
|
+
phi_154_ = _e85 == 3;
|
|
134
|
+
}
|
|
135
|
+
bool _e88 = phi_154_;
|
|
136
|
+
float _e89 = p;
|
|
137
|
+
y2_ = _e88 ? 1.0 : _e89;
|
|
138
|
+
}
|
|
139
|
+
float _e91 = x1_;
|
|
140
|
+
float _e93 = uv_2[0u];
|
|
141
|
+
float _e96 = uv_2[0u];
|
|
142
|
+
float _e97 = x2_;
|
|
143
|
+
float _e100 = y1_;
|
|
144
|
+
float _e102 = uv_2[1u];
|
|
145
|
+
float _e106 = uv_2[1u];
|
|
146
|
+
float _e107 = y2_;
|
|
147
|
+
in_rect = ((metal::step(_e91, _e93) * metal::step(_e96, _e97)) * metal::step(_e100, _e102)) * metal::step(_e106, _e107);
|
|
148
|
+
int _e111 = uniforms.rectIn;
|
|
149
|
+
if (_e111 == 1) {
|
|
150
|
+
float _e113 = in_rect;
|
|
151
|
+
local_3 = 1.0 - _e113;
|
|
152
|
+
} else {
|
|
153
|
+
float _e115 = in_rect;
|
|
154
|
+
local_3 = _e115;
|
|
155
|
+
}
|
|
156
|
+
float _e116 = local_3;
|
|
157
|
+
in_rect = _e116;
|
|
158
|
+
metal::float2 _e117 = uv_2;
|
|
159
|
+
param = _e117;
|
|
160
|
+
metal::float4 _e118 = getFromColor(param, _from, _sampler);
|
|
161
|
+
metal::float2 _e119 = uv_2;
|
|
162
|
+
param_1 = _e119;
|
|
163
|
+
metal::float4 _e120 = getToColor(param_1, _sampler, _to);
|
|
164
|
+
float _e121 = in_rect;
|
|
165
|
+
return metal::mix(_e118, _e120, metal::float4(_e121));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
void main_1(
|
|
169
|
+
metal::texture2d<float, metal::access::sample> _from,
|
|
170
|
+
metal::sampler _sampler,
|
|
171
|
+
metal::texture2d<float, metal::access::sample> _to,
|
|
172
|
+
constant Uniforms& uniforms,
|
|
173
|
+
thread metal::float4& _fragColor,
|
|
174
|
+
thread metal::float2& _uv_1
|
|
175
|
+
) {
|
|
176
|
+
metal::float2 param_2 = {};
|
|
177
|
+
metal::float2 _e16 = _uv_1;
|
|
178
|
+
param_2 = _e16;
|
|
179
|
+
metal::float4 _e17 = transition(param_2, _from, _sampler, _to, uniforms);
|
|
180
|
+
_fragColor = _e17;
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
struct main_Input {
|
|
185
|
+
metal::float2 _uv [[user(loc0), center_perspective]];
|
|
186
|
+
};
|
|
187
|
+
struct main_Output {
|
|
188
|
+
metal::float4 member [[color(0)]];
|
|
189
|
+
};
|
|
190
|
+
fragment main_Output main_(
|
|
191
|
+
main_Input varyings [[stage_in]]
|
|
192
|
+
, metal::texture2d<float, metal::access::sample> _from [[texture(0)]]
|
|
193
|
+
, metal::sampler _sampler [[sampler(0)]]
|
|
194
|
+
, metal::texture2d<float, metal::access::sample> _to [[texture(1)]]
|
|
195
|
+
, constant Uniforms& uniforms [[buffer(0)]]
|
|
196
|
+
) {
|
|
197
|
+
metal::float4 _fragColor = {};
|
|
198
|
+
metal::float2 _uv_1 = {};
|
|
199
|
+
const auto _uv = varyings._uv;
|
|
200
|
+
_uv_1 = _uv;
|
|
201
|
+
main_1(_from, _sampler, _to, uniforms, _fragColor, _uv_1);
|
|
202
|
+
metal::float4 _e3 = _fragColor;
|
|
203
|
+
return main_Output { _e3 };
|
|
204
|
+
}
|