@lightningjs/renderer 3.0.0-beta14 → 3.0.0-beta15
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/dist/exports/index.d.ts +1 -0
- package/dist/exports/index.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +1 -1
- package/dist/src/core/CoreTextNode.d.ts +0 -2
- package/dist/src/core/CoreTextNode.js +4 -16
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/Stage.js +2 -3
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureError.d.ts +11 -0
- package/dist/src/core/TextureError.js +37 -0
- package/dist/src/core/TextureError.js.map +1 -0
- package/dist/src/core/animations/CoreAnimation.d.ts +3 -2
- package/dist/src/core/animations/CoreAnimation.js +3 -2
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +5 -5
- package/dist/src/core/lib/textureCompression.js +1 -1
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/platform.d.ts +10 -0
- package/dist/src/core/platform.js +81 -0
- package/dist/src/core/platform.js.map +1 -0
- package/dist/src/core/renderers/CoreShader.d.ts +9 -0
- package/{src/core/text-rendering/sdf/index.ts → dist/src/core/renderers/CoreShader.js} +11 -3
- package/dist/src/core/renderers/CoreShader.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +17 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +125 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +14 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +138 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +19 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +58 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -0
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +43 -0
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +65 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +269 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +114 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +616 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +83 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +233 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +87 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +119 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +413 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +131 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +160 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +35 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +129 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +39 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +116 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/LinearGradient.js +26 -3
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +49 -27
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
- package/dist/src/core/shaders/webgl/SdfShader.js +1 -10
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +21 -3
- package/dist/src/core/text-rendering/CanvasFontHandler.js +94 -32
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +2 -7
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +51 -260
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +35 -5
- package/dist/src/core/text-rendering/SdfFontHandler.js +76 -56
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +1 -1
- package/dist/src/core/text-rendering/SdfTextRenderer.js +38 -82
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +19 -0
- package/dist/src/core/text-rendering/{sdf/Utils.js → TextLayoutEngine.js} +125 -105
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +30 -13
- package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +12 -0
- package/dist/src/core/text-rendering/TextRenderingUtils.js +14 -0
- package/dist/src/core/text-rendering/TextRenderingUtils.js.map +1 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +72 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js +217 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -0
- package/dist/src/core/text-rendering/TrFontManager.d.ts +26 -0
- package/dist/src/core/text-rendering/TrFontManager.js +131 -0
- package/dist/src/core/text-rendering/TrFontManager.js.map +1 -0
- package/dist/src/core/text-rendering/Utils.d.ts +1 -42
- package/dist/src/core/text-rendering/Utils.js +4 -132
- package/dist/src/core/text-rendering/Utils.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +39 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +125 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +103 -0
- package/dist/src/core/text-rendering/{sdf/index.js → font-face-types/SdfTrFontFace/internal/FontShaper.js} +4 -3
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +62 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +88 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +118 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +63 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +14 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +66 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/utils.d.ts +1 -0
- package/dist/src/core/text-rendering/font-face-types/utils.js +38 -0
- package/dist/src/core/text-rendering/font-face-types/utils.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +59 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +397 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +120 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +551 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +92 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +607 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +12 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +61 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +33 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +52 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +13 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +32 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +23 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +84 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +4 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +34 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +20 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +308 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +10 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +40 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
- package/dist/src/core/text-rendering/{canvas/Settings.js → renderers/SdfTextRenderer/internal/util.js} +22 -3
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +373 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +178 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -0
- package/dist/src/core/utils.d.ts +2 -1
- package/dist/src/core/utils.js +1 -1
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
- package/dist/src/main-api/DynamicShaderController.js +58 -0
- package/dist/src/main-api/DynamicShaderController.js.map +1 -0
- package/dist/src/main-api/Inspector.d.ts +124 -0
- package/dist/src/main-api/Inspector.js +283 -8
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +150 -26
- package/dist/src/main-api/Renderer.js +27 -25
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/main-api/ShaderController.d.ts +31 -0
- package/dist/src/main-api/ShaderController.js +37 -0
- package/dist/src/main-api/ShaderController.js.map +1 -0
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/index.ts +1 -0
- package/package.json +14 -15
- package/src/core/CoreTextNode.ts +4 -22
- package/src/core/Stage.ts +2 -3
- package/src/core/animations/CoreAnimation.ts +8 -7
- package/src/core/lib/textureCompression.ts +4 -2
- package/src/core/shaders/canvas/RoundedWithBorder.ts +1 -1
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +1 -1
- package/src/core/shaders/webgl/LinearGradient.ts +26 -3
- package/src/core/shaders/webgl/RadialGradient.ts +50 -28
- package/src/core/shaders/webgl/SdfShader.ts +1 -12
- package/src/core/text-rendering/CanvasFontHandler.ts +136 -39
- package/src/core/text-rendering/CanvasTextRenderer.ts +75 -440
- package/src/core/text-rendering/SdfFontHandler.ts +94 -60
- package/src/core/text-rendering/SdfTextRenderer.ts +62 -116
- package/src/core/text-rendering/{sdf/Utils.ts → TextLayoutEngine.ts} +209 -143
- package/src/core/text-rendering/TextRenderer.ts +36 -13
- package/src/core/text-rendering/Utils.ts +5 -163
- package/src/core/text-rendering/{sdf/Utils.test.ts → tests/Canvas.test.ts} +98 -122
- package/src/core/text-rendering/tests/SdfTests.test.ts +414 -0
- package/src/core/utils.ts +9 -7
- package/src/main-api/Inspector.ts +502 -12
- package/src/main-api/Renderer.ts +158 -26
- package/dist/src/core/text-rendering/canvas/Settings.d.ts +0 -64
- package/dist/src/core/text-rendering/canvas/Settings.js.map +0 -1
- package/dist/src/core/text-rendering/canvas/Utils.d.ts +0 -20
- package/dist/src/core/text-rendering/canvas/Utils.js +0 -144
- package/dist/src/core/text-rendering/canvas/Utils.js.map +0 -1
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +0 -60
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +0 -183
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +0 -1
- package/dist/src/core/text-rendering/canvas/draw.d.ts +0 -5
- package/dist/src/core/text-rendering/canvas/draw.js +0 -132
- package/dist/src/core/text-rendering/canvas/draw.js.map +0 -1
- package/dist/src/core/text-rendering/sdf/Utils.d.ts +0 -26
- package/dist/src/core/text-rendering/sdf/Utils.js.map +0 -1
- package/dist/src/core/text-rendering/sdf/index.d.ts +0 -1
- package/dist/src/core/text-rendering/sdf/index.js.map +0 -1
- package/src/core/text-rendering/canvas/Settings.ts +0 -99
- package/src/core/text-rendering/canvas/Utils.test.ts +0 -206
- package/src/core/text-rendering/canvas/Utils.ts +0 -178
- package/src/core/text-rendering/canvas/calculateRenderInfo.ts +0 -299
- package/src/core/text-rendering/canvas/draw.ts +0 -165
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
+
* following copyright and licenses apply:
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { updateWebSafeRadius, validateArrayLength4 } from './EffectUtils.js';
|
|
20
|
+
import { ShaderEffect, } from './ShaderEffect.js';
|
|
21
|
+
/**
|
|
22
|
+
* Masks the current maskcolor with rounded corners similar to {@link RoundedRectangle}
|
|
23
|
+
*/
|
|
24
|
+
export class RadiusEffect extends ShaderEffect {
|
|
25
|
+
static z$__type__Props;
|
|
26
|
+
name = 'radius';
|
|
27
|
+
static getEffectKey() {
|
|
28
|
+
return `radius`;
|
|
29
|
+
}
|
|
30
|
+
static uniforms = {
|
|
31
|
+
radius: {
|
|
32
|
+
value: 0,
|
|
33
|
+
method: 'uniform4fv',
|
|
34
|
+
type: 'vec4',
|
|
35
|
+
updateOnBind: true,
|
|
36
|
+
validator: validateArrayLength4,
|
|
37
|
+
updateProgramValue: updateWebSafeRadius,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
static methods = {
|
|
41
|
+
fillMask: `
|
|
42
|
+
float function(float dist) {
|
|
43
|
+
return clamp(-dist, 0.0, 1.0);
|
|
44
|
+
}
|
|
45
|
+
`,
|
|
46
|
+
boxDist: `
|
|
47
|
+
float function(vec2 p, vec2 size, float radius) {
|
|
48
|
+
size -= vec2(radius);
|
|
49
|
+
vec2 d = abs(p) - size;
|
|
50
|
+
return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
|
|
51
|
+
}
|
|
52
|
+
`,
|
|
53
|
+
};
|
|
54
|
+
static resolveDefaults(props) {
|
|
55
|
+
return {
|
|
56
|
+
radius: props.radius ?? 10,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
static onShaderMask = `
|
|
60
|
+
vec2 halfDimensions = u_dimensions * 0.5;
|
|
61
|
+
float r = radius[0] * step(v_textureCoordinate.x, 0.5) * step(v_textureCoordinate.y, 0.5);
|
|
62
|
+
r = r + radius[1] * step(0.5, v_textureCoordinate.x) * step(v_textureCoordinate.y, 0.5);
|
|
63
|
+
r = r + radius[2] * step(0.5, v_textureCoordinate.x) * step(0.5, v_textureCoordinate.y);
|
|
64
|
+
r = r + radius[3] * step(v_textureCoordinate.x, 0.5) * step(0.5, v_textureCoordinate.y);
|
|
65
|
+
return $boxDist(v_textureCoordinate.xy * u_dimensions - halfDimensions, halfDimensions, r);
|
|
66
|
+
`;
|
|
67
|
+
static onEffectMask = `
|
|
68
|
+
return mix(vec4(0.0), maskColor, $fillMask(shaderMask));
|
|
69
|
+
`;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=RadiusEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadiusEffect.js","sourceRoot":"","sources":["../../../../../../../src/core/renderers/webgl/shaders/effects/RadiusEffect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACL,YAAY,GAGb,MAAM,mBAAmB,CAAC;AA6B3B;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC5C,MAAM,CAAC,eAAe,CAAoB;IACxB,IAAI,GAAG,QAAQ,CAAC;IAElC,MAAM,CAAU,YAAY;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAU,QAAQ,GAAyB;QAC/C,MAAM,EAAE;YACN,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,oBAAoB;YAC/B,kBAAkB,EAAE,mBAAmB;SACxC;KACF,CAAC;IAEF,MAAM,CAAU,OAAO,GAA2B;QAChD,QAAQ,EAAE;;;;KAIT;QACD,OAAO,EAAE;;;;;;KAMR;KACF,CAAC;IAEF,MAAM,CAAU,eAAe,CAC7B,KAAwB;QAExB,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;SAC3B,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,YAAY,GAAG;;;;;;;GAO9B,CAAC;IAEF,MAAM,CAAU,YAAY,GAAG;;GAE9B,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { EffectMap } from '../../../../CoreShaderManager.js';
|
|
2
|
+
import type { ExtractProps } from '../../../../CoreTextureManager.js';
|
|
3
|
+
import type { AlphaShaderProp, DimensionsShaderProp } from '../../WebGlCoreShader.js';
|
|
4
|
+
import type { UniformInfo, UniformMethodMap } from '../../internal/ShaderUtils.js';
|
|
5
|
+
export interface BaseEffectDesc {
|
|
6
|
+
name?: string;
|
|
7
|
+
type: keyof EffectMap;
|
|
8
|
+
props: Record<string, any>;
|
|
9
|
+
}
|
|
10
|
+
export interface EffectDesc<T extends {
|
|
11
|
+
name?: string;
|
|
12
|
+
type: keyof EffectMap;
|
|
13
|
+
} = {
|
|
14
|
+
name?: string;
|
|
15
|
+
type: keyof EffectMap;
|
|
16
|
+
}> extends BaseEffectDesc {
|
|
17
|
+
name?: T['name'];
|
|
18
|
+
type: T['type'];
|
|
19
|
+
props: ExtractProps<EffectMap[T['type']]>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Allows the `keyof EffectMap` to be mapped over and form an discriminated
|
|
23
|
+
* union of all the EffectDescs structures individually.
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* When used like the following:
|
|
27
|
+
* ```
|
|
28
|
+
* MapEffectDescs<keyof EffectMap>[]
|
|
29
|
+
* ```
|
|
30
|
+
* The resultant type will be a discriminated union like so:
|
|
31
|
+
* ```
|
|
32
|
+
* (
|
|
33
|
+
* {
|
|
34
|
+
* name: 'effect1',
|
|
35
|
+
* type: 'radius',
|
|
36
|
+
* props?: {
|
|
37
|
+
* radius?: number | number[];
|
|
38
|
+
* }
|
|
39
|
+
* } |
|
|
40
|
+
* {
|
|
41
|
+
* name: 'effect2',
|
|
42
|
+
* type: 'border',
|
|
43
|
+
* props?: {
|
|
44
|
+
* width?: number;
|
|
45
|
+
* color?: number;
|
|
46
|
+
* }
|
|
47
|
+
* } |
|
|
48
|
+
* // ...
|
|
49
|
+
* )[]
|
|
50
|
+
* ```
|
|
51
|
+
* Which means TypeScript will now base its type checking on the `type` field
|
|
52
|
+
* and will know exactly what the `props` field should be based on the `type`
|
|
53
|
+
* field.
|
|
54
|
+
*/
|
|
55
|
+
type MapEffectDescs<T extends keyof EffectMap> = T extends keyof EffectMap ? EffectDesc<{
|
|
56
|
+
type: T;
|
|
57
|
+
name: string;
|
|
58
|
+
}> : never;
|
|
59
|
+
export type EffectDescUnion = MapEffectDescs<keyof EffectMap>;
|
|
60
|
+
export interface ShaderEffectUniform {
|
|
61
|
+
value: number | number[] | boolean | string;
|
|
62
|
+
type: string;
|
|
63
|
+
method: keyof UniformMethodMap;
|
|
64
|
+
name?: string;
|
|
65
|
+
size?: (value: Record<string, unknown>) => number;
|
|
66
|
+
updateOnBind?: boolean;
|
|
67
|
+
updateProgramValue?: (programValues: ShaderEffectValueMap, shaderProps?: Record<string, unknown>) => void;
|
|
68
|
+
validator?: (value: any, props: Record<string, unknown>) => number | number[] | number[][];
|
|
69
|
+
}
|
|
70
|
+
export interface ShaderEffectValueMap extends DimensionsShaderProp, AlphaShaderProp {
|
|
71
|
+
value: ShaderEffectUniform['value'];
|
|
72
|
+
programValue: number | Float32Array | undefined;
|
|
73
|
+
method: keyof UniformMethodMap;
|
|
74
|
+
setUniformValue?: () => void | null;
|
|
75
|
+
hasValidator: boolean;
|
|
76
|
+
hasProgramValueUpdater: boolean;
|
|
77
|
+
updateOnBind: boolean;
|
|
78
|
+
validatedValue?: number | number[];
|
|
79
|
+
}
|
|
80
|
+
export interface ShaderEffectUniforms {
|
|
81
|
+
[key: string]: ShaderEffectUniform;
|
|
82
|
+
}
|
|
83
|
+
export interface DefaultEffectProps {
|
|
84
|
+
[key: string]: unknown;
|
|
85
|
+
}
|
|
86
|
+
export interface ShaderEffectOptions {
|
|
87
|
+
ref: string;
|
|
88
|
+
target: string;
|
|
89
|
+
props?: Record<string, unknown>;
|
|
90
|
+
uniforms?: ShaderEffectUniforms;
|
|
91
|
+
methods?: Record<string, string>;
|
|
92
|
+
onShaderMask?: ((value: Record<string, unknown>) => string) | string;
|
|
93
|
+
onColorize?: ((value: Record<string, unknown>) => string) | string;
|
|
94
|
+
onEffectMask?: ((value: Record<string, unknown>) => string) | string;
|
|
95
|
+
}
|
|
96
|
+
export declare abstract class ShaderEffect {
|
|
97
|
+
readonly priority = 1;
|
|
98
|
+
readonly name: string;
|
|
99
|
+
ref: string;
|
|
100
|
+
target: string;
|
|
101
|
+
passParameters: string;
|
|
102
|
+
declaredUniforms: string;
|
|
103
|
+
uniformInfo: Record<string, UniformInfo>;
|
|
104
|
+
static uniforms: ShaderEffectUniforms;
|
|
105
|
+
static methods?: Record<string, string>;
|
|
106
|
+
static onShaderMask?: ((value: Record<string, unknown>) => string) | string;
|
|
107
|
+
static onColorize?: ((value: Record<string, unknown>) => string) | string;
|
|
108
|
+
static onEffectMask?: ((value: Record<string, unknown>) => string) | string;
|
|
109
|
+
static getEffectKey(props: Record<string, unknown>): string;
|
|
110
|
+
static getMethodParameters(uniforms: ShaderEffectUniforms, props: Record<string, unknown>): string;
|
|
111
|
+
constructor(options: ShaderEffectOptions);
|
|
112
|
+
static resolveDefaults(props: Record<string, unknown>): Record<string, unknown>;
|
|
113
|
+
static makeEffectKey(props: Record<string, unknown>): string | false;
|
|
114
|
+
}
|
|
115
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export class ShaderEffect {
|
|
2
|
+
priority = 1;
|
|
3
|
+
name = '';
|
|
4
|
+
ref;
|
|
5
|
+
target;
|
|
6
|
+
passParameters = '';
|
|
7
|
+
declaredUniforms = '';
|
|
8
|
+
uniformInfo = {};
|
|
9
|
+
static uniforms = {};
|
|
10
|
+
static methods;
|
|
11
|
+
static onShaderMask;
|
|
12
|
+
static onColorize;
|
|
13
|
+
static onEffectMask;
|
|
14
|
+
static getEffectKey(props) {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
static getMethodParameters(uniforms, props) {
|
|
18
|
+
const res = [];
|
|
19
|
+
for (const u in uniforms) {
|
|
20
|
+
const uni = uniforms[u];
|
|
21
|
+
let define = '';
|
|
22
|
+
if (uni.size) {
|
|
23
|
+
define = `[${uni.size(props)}]`;
|
|
24
|
+
}
|
|
25
|
+
res.push(`${uni.type} ${u}${define}`);
|
|
26
|
+
}
|
|
27
|
+
return res.join(',');
|
|
28
|
+
}
|
|
29
|
+
constructor(options) {
|
|
30
|
+
const { ref, target, props = {} } = options;
|
|
31
|
+
this.ref = ref;
|
|
32
|
+
this.target = target;
|
|
33
|
+
const uniformInfo = {};
|
|
34
|
+
const passParameters = [];
|
|
35
|
+
let declaredUniforms = '';
|
|
36
|
+
const uniforms = this.constructor.uniforms || {};
|
|
37
|
+
for (const u in uniforms) {
|
|
38
|
+
const unif = uniforms[u];
|
|
39
|
+
const uniType = unif.type;
|
|
40
|
+
//make unique uniform name
|
|
41
|
+
const uniformName = `${ref}_${u}`;
|
|
42
|
+
let define = '';
|
|
43
|
+
if (unif.size) {
|
|
44
|
+
define = `[${unif.size(props)}]`;
|
|
45
|
+
}
|
|
46
|
+
passParameters.push(uniformName);
|
|
47
|
+
declaredUniforms += `uniform ${uniType} ${uniformName}${define};`;
|
|
48
|
+
uniformInfo[u] = { name: uniformName, uniform: uniforms[u].method };
|
|
49
|
+
}
|
|
50
|
+
this.passParameters = passParameters.join(',');
|
|
51
|
+
this.declaredUniforms = declaredUniforms;
|
|
52
|
+
this.uniformInfo = uniformInfo;
|
|
53
|
+
}
|
|
54
|
+
static resolveDefaults(props) {
|
|
55
|
+
return {};
|
|
56
|
+
}
|
|
57
|
+
static makeEffectKey(props) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ShaderEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShaderEffect.js","sourceRoot":"","sources":["../../../../../../../src/core/renderers/webgl/shaders/effects/ShaderEffect.ts"],"names":[],"mappings":"AAsHA,MAAM,OAAgB,YAAY;IACvB,QAAQ,GAAG,CAAC,CAAC;IACb,IAAI,GAAW,EAAE,CAAC;IAE3B,GAAG,CAAS;IACZ,MAAM,CAAS;IAEf,cAAc,GAAG,EAAE,CAAC;IACpB,gBAAgB,GAAG,EAAE,CAAC;IACtB,WAAW,GAAgC,EAAE,CAAC;IAE9C,MAAM,CAAC,QAAQ,GAAyB,EAAE,CAAC;IAC3C,MAAM,CAAC,OAAO,CAA0B;IAExC,MAAM,CAAC,YAAY,CAAyD;IAE5E,MAAM,CAAC,UAAU,CAAyD;IAC1E,MAAM,CAAC,YAAY,CAAyD;IAE5E,MAAM,CAAC,YAAY,CAAC,KAA8B;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,mBAAmB,CACxB,QAA8B,EAC9B,KAA8B;QAE9B,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YACzB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAClC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,YAAY,OAA4B;QACtC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,WAAW,GAAgC,EAAE,CAAC;QACpD,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAI,IAAI,CAAC,WAAmC,CAAC,QAAQ,IAAI,EAAE,CAAC;QAE1E,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,0BAA0B;YAC1B,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACnC,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,gBAAgB,IAAI,WAAW,OAAO,IAAI,WAAW,GAAG,MAAM,GAAG,CAAC;YAClE,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,eAAe,CACpB,KAA8B;QAE9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAA8B;QACjD,OAAO,KAAK,CAAC;IACf,CAAC"}
|
|
@@ -37,7 +37,7 @@ export const RoundedWithBorder = {
|
|
|
37
37
|
},
|
|
38
38
|
render(ctx, quad, renderContext) {
|
|
39
39
|
const computed = this.computed;
|
|
40
|
-
roundedRectWithBorder(ctx, quad.tx, quad.ty, quad.width, quad.height, computed.radius, this.props['border-
|
|
40
|
+
roundedRectWithBorder(ctx, quad.tx, quad.ty, quad.width, quad.height, computed.radius, this.props['border-w'], computed.borderRadius, computed.borderColor, computed.borderAsym, renderContext);
|
|
41
41
|
},
|
|
42
42
|
};
|
|
43
43
|
//# sourceMappingURL=RoundedWithBorder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoundedWithBorder.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/RoundedWithBorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,KAAK,EAAE,yBAAyB,CAAC,KAAK;IACtC,cAAc,EAAE,IAAI;IACpB,MAAM,CAAC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,uBAAuB,CACpC,KAAK,CAAC,MAAc,EACpB,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,CAAC,CACP,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAa,CAAC,CAAC;QAC1E,qDAAqD;QACrD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAS,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG;YAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;SAChD,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA0B,CAAC;QACjD,qBAAqB,CACnB,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,QAAQ,CAAC,MAAM,EACf,IAAI,CAAC,KAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"RoundedWithBorder.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/RoundedWithBorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,KAAK,EAAE,yBAAyB,CAAC,KAAK;IACtC,cAAc,EAAE,IAAI;IACpB,MAAM,CAAC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,uBAAuB,CACpC,KAAK,CAAC,MAAc,EACpB,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,CAAC,CACP,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAa,CAAC,CAAC;QAC1E,qDAAqD;QACrD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAS,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG;YAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;SAChD,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA0B,CAAC;QACjD,qBAAqB,CACnB,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,QAAQ,CAAC,MAAM,EACf,IAAI,CAAC,KAAM,CAAC,UAAU,CAAS,EAC/B,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,UAAU,EACnB,aAAa,CACd,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -35,7 +35,7 @@ export const RoundedWithBorderAndShadow = {
|
|
|
35
35
|
const { tx, ty, width, height } = quad;
|
|
36
36
|
const computed = this.computed;
|
|
37
37
|
render.shadow(ctx, tx, ty, height, width, computed.shadowColor, this.props['shadow-projection'], computed.shadowRadius, this.stage.pixelRatio);
|
|
38
|
-
render.roundedRectWithBorder(ctx, quad.tx, quad.ty, quad.width, quad.height, computed.radius, this.props['border-
|
|
38
|
+
render.roundedRectWithBorder(ctx, quad.tx, quad.ty, quad.width, quad.height, computed.radius, this.props['border-w'], computed.borderRadius, computed.borderColor, computed.borderAsym, renderContext);
|
|
39
39
|
},
|
|
40
40
|
};
|
|
41
41
|
//# sourceMappingURL=RoundedWithBorderAndShadow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoundedWithBorderAndShadow.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/RoundedWithBorderAndShadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EACL,kCAAkC,GAEnC,MAAM,oDAAoD,CAAC;AAI5D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAM5C,MAAM,CAAC,MAAM,0BAA0B,GAGnC;IACF,KAAK,EAAE,kCAAkC,CAAC,KAAK;IAC/C,cAAc,EAAE,IAAI;IACpB,MAAM,CAAC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,uBAAuB,CACpC,KAAK,CAAC,MAAc,EACpB,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,CAAC,CACP,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAa,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAS,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACvD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAE,GAAG,GAAG,CAAC,CACvC,CAAC;QAEV,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAChC,CAAC;IACZ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA0B,CAAC;QACjD,MAAM,CAAC,MAAM,CACX,GAAG,EACH,EAAE,EACF,EAAE,EACF,MAAM,EACN,KAAK,EACL,QAAQ,CAAC,WAAW,EACpB,IAAI,CAAC,KAAM,CAAC,mBAAmB,CAAC,EAChC,QAAQ,CAAC,YAAY,EACrB,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,CAAC;QACF,MAAM,CAAC,qBAAqB,CAC1B,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,QAAQ,CAAC,MAAM,EACf,IAAI,CAAC,KAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"RoundedWithBorderAndShadow.js","sourceRoot":"","sources":["../../../../../src/core/shaders/canvas/RoundedWithBorderAndShadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EACL,kCAAkC,GAEnC,MAAM,oDAAoD,CAAC;AAI5D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAM5C,MAAM,CAAC,MAAM,0BAA0B,GAGnC;IACF,KAAK,EAAE,kCAAkC,CAAC,KAAK;IAC/C,cAAc,EAAE,IAAI;IACpB,MAAM,CAAC,IAAI;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,uBAAuB,CACpC,KAAK,CAAC,MAAc,EACpB,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,CAAC,CACP,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAa,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAS,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACvD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAE,GAAG,GAAG,CAAC,CACvC,CAAC;QAEV,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAChC,CAAC;IACZ,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa;QAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA0B,CAAC;QACjD,MAAM,CAAC,MAAM,CACX,GAAG,EACH,EAAE,EACF,EAAE,EACF,MAAM,EACN,KAAK,EACL,QAAQ,CAAC,WAAW,EACpB,IAAI,CAAC,KAAM,CAAC,mBAAmB,CAAC,EAChC,QAAQ,CAAC,YAAY,EACrB,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,CAAC;QACF,MAAM,CAAC,qBAAqB,CAC1B,GAAG,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,QAAQ,CAAC,MAAM,EACf,IAAI,CAAC,KAAM,CAAC,UAAU,CAAS,EAC/B,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,UAAU,EACnB,aAAa,CACd,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -42,6 +42,8 @@ export const LinearGradient = {
|
|
|
42
42
|
# endif
|
|
43
43
|
|
|
44
44
|
#define PI 3.14159265359
|
|
45
|
+
#define MAX_STOPS ${props.colors.length}
|
|
46
|
+
#define LAST_STOP ${props.colors.length - 1}
|
|
45
47
|
|
|
46
48
|
uniform float u_alpha;
|
|
47
49
|
uniform vec2 u_dimensions;
|
|
@@ -49,8 +51,8 @@ export const LinearGradient = {
|
|
|
49
51
|
uniform sampler2D u_texture;
|
|
50
52
|
|
|
51
53
|
uniform float u_angle;
|
|
52
|
-
uniform float u_stops[
|
|
53
|
-
uniform vec4 u_colors[
|
|
54
|
+
uniform float u_stops[MAX_STOPS];
|
|
55
|
+
uniform vec4 u_colors[MAX_STOPS];
|
|
54
56
|
|
|
55
57
|
varying vec4 v_color;
|
|
56
58
|
varying vec2 v_textureCoords;
|
|
@@ -59,6 +61,27 @@ export const LinearGradient = {
|
|
|
59
61
|
return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
|
|
60
62
|
}
|
|
61
63
|
|
|
64
|
+
vec4 getGradientColor(float dist) {
|
|
65
|
+
dist = clamp(dist, 0.0, 1.0);
|
|
66
|
+
|
|
67
|
+
if(dist <= u_stops[0]) {
|
|
68
|
+
return u_colors[0];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if(dist >= u_stops[LAST_STOP]) {
|
|
72
|
+
return u_colors[LAST_STOP];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
for(int i = 0; i < LAST_STOP; i++) {
|
|
76
|
+
float left = u_stops[i];
|
|
77
|
+
float right = u_stops[i + 1];
|
|
78
|
+
if(dist >= left && dist <= right) {
|
|
79
|
+
float lDist = smoothstep(left, right, dist);
|
|
80
|
+
return mix(u_colors[i], u_colors[i + 1], lDist);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
62
85
|
void main() {
|
|
63
86
|
vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
|
|
64
87
|
float a = u_angle;
|
|
@@ -67,7 +90,7 @@ export const LinearGradient = {
|
|
|
67
90
|
vec2 t = calcPoint(lineDist * 0.5, a + PI);
|
|
68
91
|
vec2 gradVec = t - f;
|
|
69
92
|
float dist = dot(v_textureCoords.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
|
|
70
|
-
|
|
93
|
+
vec4 colorOut = getGradientColor(dist);
|
|
71
94
|
gl_FragColor = mix(color, colorOut, clamp(colorOut.a, 0.0, 1.0));
|
|
72
95
|
}
|
|
73
96
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/LinearGradient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,sBAAsB,GAEvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAIlF,MAAM,CAAC,MAAM,cAAc,GAAyC;IAClE,KAAK,EAAE,sBAAsB,CAAC,KAAK;IACnC,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,eAAe,CAAC,KAA0B;QACxC,OAAO,UAAU,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACzC,CAAC;IACD,QAAQ,CAAC,QAAuB,EAAE,KAA0B;QAC1D,OAAO
|
|
1
|
+
{"version":3,"file":"LinearGradient.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/LinearGradient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,sBAAsB,GAEvB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAIlF,MAAM,CAAC,MAAM,cAAc,GAAyC;IAClE,KAAK,EAAE,sBAAsB,CAAC,KAAK;IACnC,MAAM;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,eAAe,CAAC,KAA0B;QACxC,OAAO,UAAU,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACzC,CAAC;IACD,QAAQ,CAAC,QAAuB,EAAE,KAA0B;QAC1D,OAAO;;;;;;;;wBAQa,KAAK,CAAC,MAAM,CAAC,MAAM;wBACnB,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkD5C,CAAC;IACF,CAAC;CACF,CAAC"}
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { getNormalizedRgbaComponents } from '../../lib/utils.js';
|
|
18
18
|
import { RadialGradientTemplate, } from '../templates/RadialGradientTemplate.js';
|
|
19
|
-
import { genGradientColors } from '../../renderers/webgl/internal/ShaderUtils.js';
|
|
20
19
|
export const RadialGradient = {
|
|
21
20
|
props: RadialGradientTemplate.props,
|
|
22
21
|
update(node) {
|
|
@@ -36,39 +35,62 @@ export const RadialGradient = {
|
|
|
36
35
|
},
|
|
37
36
|
fragment(renderer, props) {
|
|
38
37
|
return `
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
# ifdef GL_FRAGMENT_PRECISION_HIGH
|
|
39
|
+
precision highp float;
|
|
40
|
+
# else
|
|
41
|
+
precision mediump float;
|
|
42
|
+
# endif
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
#define MAX_STOPS ${props.colors.length}
|
|
45
|
+
#define LAST_STOP ${props.colors.length - 1}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
uniform float u_alpha;
|
|
48
|
+
uniform vec2 u_dimensions;
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
uniform sampler2D u_texture;
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
uniform vec2 u_projection;
|
|
53
|
+
uniform vec2 u_size;
|
|
54
|
+
uniform float u_stops[MAX_STOPS];
|
|
55
|
+
uniform vec4 u_colors[MAX_STOPS];
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
varying vec4 v_color;
|
|
58
|
+
varying vec2 v_textureCoords;
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
vec2 calcPoint(float d, float angle) {
|
|
61
|
+
return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
|
|
62
|
+
}
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
64
|
+
vec4 getGradientColor(float dist) {
|
|
65
|
+
dist = clamp(dist, 0.0, 1.0);
|
|
66
|
+
|
|
67
|
+
if(dist <= u_stops[0]) {
|
|
68
|
+
return u_colors[0];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if(dist >= u_stops[LAST_STOP]) {
|
|
72
|
+
return u_colors[LAST_STOP];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
for(int i = 0; i < LAST_STOP; i++) {
|
|
76
|
+
float left = u_stops[i];
|
|
77
|
+
float right = u_stops[i + 1];
|
|
78
|
+
if(dist >= left && dist <= right) {
|
|
79
|
+
float lDist = smoothstep(left, right, dist);
|
|
80
|
+
return mix(u_colors[i], u_colors[i + 1], lDist);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
void main() {
|
|
86
|
+
vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
|
|
87
|
+
vec2 point = v_textureCoords.xy * u_dimensions;
|
|
88
|
+
float dist = length((point - u_projection) / u_size);
|
|
89
|
+
|
|
90
|
+
vec4 colorOut = getGradientColor(dist);
|
|
91
|
+
gl_FragColor = mix(color, colorOut, clamp(colorOut.a, 0.0, 1.0));
|
|
92
|
+
}
|
|
93
|
+
`;
|
|
72
94
|
},
|
|
73
95
|
};
|
|
74
96
|
//# sourceMappingURL=RadialGradient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadialGradient.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/RadialGradient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,sBAAsB,GAEvB,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"RadialGradient.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/RadialGradient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,sBAAsB,GAEvB,MAAM,wCAAwC,CAAC;AAIhD,MAAM,CAAC,MAAM,cAAc,GAAyC;IAClE,KAAK,EAAE,sBAAsB,CAAC,KAAK;IACnC,MAAM,CAAC,IAAc;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,IAAI,CAAC,SAAS,CACZ,cAAc,EACd,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EACvB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CACxB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,eAAe,CAAC,KAA0B;QACxC,OAAO,UAAU,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACzC,CAAC;IACD,QAAQ,CAAC,QAAuB,EAAE,KAA0B;QAC1D,OAAO;;;;;;;0BAOe,KAAK,CAAC,MAAM,CAAC,MAAM;0BACnB,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgD5C,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -4,7 +4,6 @@ import type { WebGlShaderType } from '../../renderers/webgl/WebGlShaderNode.js';
|
|
|
4
4
|
*/
|
|
5
5
|
export interface SdfShaderProps {
|
|
6
6
|
transform: Float32Array;
|
|
7
|
-
scrollY: number;
|
|
8
7
|
/**
|
|
9
8
|
* Color in RGBA format
|
|
10
9
|
*
|
|
@@ -14,7 +13,6 @@ export interface SdfShaderProps {
|
|
|
14
13
|
color: number;
|
|
15
14
|
size: number;
|
|
16
15
|
distanceRange: number;
|
|
17
|
-
debug: boolean;
|
|
18
16
|
}
|
|
19
17
|
/**
|
|
20
18
|
* SdfShader supports multi-channel and single-channel signed distance field textures.
|
|
@@ -34,19 +34,15 @@ const IDENTITY_MATRIX_3x3 = new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
|
|
|
34
34
|
export const Sdf = {
|
|
35
35
|
props: {
|
|
36
36
|
transform: IDENTITY_MATRIX_3x3,
|
|
37
|
-
scrollY: 0,
|
|
38
37
|
color: 0xffffffff,
|
|
39
38
|
size: 16,
|
|
40
39
|
distanceRange: 1.0,
|
|
41
|
-
debug: false,
|
|
42
40
|
},
|
|
43
41
|
onSdfBind(props) {
|
|
44
42
|
this.uniformMatrix3fv('u_transform', props.transform);
|
|
45
|
-
this.uniform1f('u_scrollY', props.scrollY);
|
|
46
43
|
this.uniform4fa('u_color', getNormalizedRgbaComponents(props.color));
|
|
47
44
|
this.uniform1f('u_size', props.size);
|
|
48
45
|
this.uniform1f('u_distanceRange', props.distanceRange);
|
|
49
|
-
this.uniform1i('u_debug', props.debug ? 1 : 0);
|
|
50
46
|
},
|
|
51
47
|
vertex: `
|
|
52
48
|
# ifdef GL_FRAGMENT_PRECISION_HIGH
|
|
@@ -61,14 +57,13 @@ export const Sdf = {
|
|
|
61
57
|
|
|
62
58
|
uniform vec2 u_resolution;
|
|
63
59
|
uniform mat3 u_transform;
|
|
64
|
-
uniform float u_scrollY;
|
|
65
60
|
uniform float u_pixelRatio;
|
|
66
61
|
uniform float u_size;
|
|
67
62
|
|
|
68
63
|
varying vec2 v_texcoord;
|
|
69
64
|
|
|
70
65
|
void main() {
|
|
71
|
-
vec2 scrolledPosition = a_position * u_size
|
|
66
|
+
vec2 scrolledPosition = a_position * u_size;
|
|
72
67
|
vec2 transformedPosition = (u_transform * vec3(scrolledPosition, 1)).xy;
|
|
73
68
|
|
|
74
69
|
// Calculate screen space with pixel ratio
|
|
@@ -99,10 +94,6 @@ export const Sdf = {
|
|
|
99
94
|
|
|
100
95
|
void main() {
|
|
101
96
|
vec3 sample = texture2D(u_texture, v_texcoord).rgb;
|
|
102
|
-
if (u_debug == 1) {
|
|
103
|
-
gl_FragColor = vec4(sample.r, sample.g, sample.b, 1.0);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
97
|
float scaledDistRange = u_distanceRange * u_pixelRatio;
|
|
107
98
|
float sigDist = scaledDistRange * (median(sample.r, sample.g, sample.b) - 0.5);
|
|
108
99
|
float opacity = clamp(sigDist + 0.5, 0.0, 1.0) * u_color.a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdfShader.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/SdfShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,mBAAmB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SdfShader.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/SdfShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,mBAAmB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAgB1E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,GAAG,GAAoC;IAClD,KAAK,EAAE;QACL,SAAS,EAAE,mBAAmB;QAC9B,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,EAAE;QACR,aAAa,EAAE,GAAG;KACnB;IACD,SAAS,CAAC,KAAK;QACb,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BP;IACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BT;CACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FontFamilyMap, FontLoadOptions, NormalizedFontMetrics } from './TextRenderer.js';
|
|
1
|
+
import type { FontFamilyMap, FontLoadOptions, FontMetrics, NormalizedFontMetrics } from './TextRenderer.js';
|
|
2
2
|
import type { Stage } from '../Stage.js';
|
|
3
3
|
import type { CoreTextNode } from '../CoreTextNode.js';
|
|
4
4
|
/**
|
|
@@ -16,7 +16,7 @@ export declare const getFontFamilies: () => FontFamilyMap;
|
|
|
16
16
|
/**
|
|
17
17
|
* Initialize the global font handler
|
|
18
18
|
*/
|
|
19
|
-
export declare const init: (c
|
|
19
|
+
export declare const init: (c: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, mc: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D) => void;
|
|
20
20
|
export declare const type = "canvas";
|
|
21
21
|
/**
|
|
22
22
|
* Check if a font is already loaded by font family
|
|
@@ -38,4 +38,22 @@ export declare const waitingForFont: (fontFamily: string, node: CoreTextNode) =>
|
|
|
38
38
|
*/
|
|
39
39
|
export declare const stopWaitingForFont: (fontFamily: string, node: CoreTextNode) => void;
|
|
40
40
|
export declare const getFontMetrics: (fontFamily: string, fontSize: number) => NormalizedFontMetrics;
|
|
41
|
-
export declare const
|
|
41
|
+
export declare const processFontMetrics: (fontFamily: string, fontSize: number, metrics: FontMetrics) => NormalizedFontMetrics;
|
|
42
|
+
export declare const measureText: (text: string, fontFamily: string, letterSpacing: number) => number;
|
|
43
|
+
/**
|
|
44
|
+
* Get the font metrics for a font face.
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* This function will attempt to grab the explicitly defined metrics from the
|
|
48
|
+
* font face first. If the font face does not have metrics defined, it will
|
|
49
|
+
* attempt to calculate the metrics using the browser's measureText method.
|
|
50
|
+
*
|
|
51
|
+
* If the browser does not support the font metrics API, it will use some
|
|
52
|
+
* default values.
|
|
53
|
+
*
|
|
54
|
+
* @param context
|
|
55
|
+
* @param fontFace
|
|
56
|
+
* @param fontSize
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
export declare function calculateFontMetrics(fontFamily: string, fontSize: number): FontMetrics;
|