@lightningjs/renderer 0.9.4 → 1.0.0-rc.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 +0 -82
- package/dist/exports/index.d.ts +40 -3
- package/dist/exports/index.js +35 -3
- package/dist/exports/index.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +462 -46
- package/dist/src/core/CoreNode.js +171 -103
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +16 -6
- package/dist/src/core/CoreShaderManager.js +20 -20
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +30 -4
- package/dist/src/core/CoreTextNode.js +24 -1
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +31 -82
- package/dist/src/core/CoreTextureManager.js +39 -126
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +67 -9
- package/dist/src/core/Stage.js +174 -30
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.d.ts +97 -8
- package/dist/src/core/TextureMemoryManager.js +142 -19
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +14 -6
- package/dist/src/core/animations/CoreAnimation.js +136 -44
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +59 -52
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/platform.js +7 -1
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/renderers/CoreContextTexture.d.ts +3 -2
- package/dist/src/core/renderers/CoreContextTexture.js +7 -1
- package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +5 -1
- package/dist/src/core/renderers/CoreRenderer.js +0 -1
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +3 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +16 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +2 -5
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +2 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +7 -10
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +3 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +47 -9
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +24 -8
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +70 -37
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +2 -2
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +2 -2
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +2 -2
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +2 -2
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +2 -2
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +8 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +103 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +3 -18
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +5 -2
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +4 -36
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +3 -2
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +4 -2
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +2 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +4 -36
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +11 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +5 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -1
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +10 -26
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +116 -365
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -2
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +2 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +2 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +3 -2
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/textures/ColorTexture.d.ts +1 -1
- package/dist/src/core/textures/ColorTexture.js +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +1 -1
- package/dist/src/core/textures/NoiseTexture.d.ts +1 -1
- package/dist/src/core/textures/NoiseTexture.js +3 -0
- package/dist/src/core/textures/NoiseTexture.js.map +1 -1
- package/dist/src/core/textures/SubTexture.d.ts +2 -2
- package/dist/src/core/textures/SubTexture.js +5 -1
- package/dist/src/core/textures/SubTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +23 -2
- package/dist/src/core/textures/Texture.js +32 -3
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +7 -0
- package/dist/src/core/utils.js +12 -10
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/main-api/DynamicShaderController.d.ts +3 -9
- package/dist/src/main-api/DynamicShaderController.js +18 -17
- package/dist/src/main-api/DynamicShaderController.js.map +1 -1
- package/dist/src/main-api/INode.d.ts +43 -463
- package/dist/src/main-api/INode.js +1 -19
- package/dist/src/main-api/INode.js.map +1 -1
- package/dist/src/main-api/Inspector.d.ts +10 -10
- package/dist/src/main-api/Inspector.js +18 -15
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +27 -21
- package/dist/src/main-api/Renderer.js +38 -107
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/main-api/ShaderController.d.ts +3 -8
- package/dist/src/main-api/ShaderController.js +8 -3
- package/dist/src/main-api/ShaderController.js.map +1 -1
- package/dist/src/utils.d.ts +1 -0
- package/dist/src/utils.js +7 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/index.ts +60 -3
- package/package.json +8 -7
- package/src/core/CoreNode.test.ts +93 -0
- package/src/core/CoreNode.ts +675 -187
- package/src/core/CoreShaderManager.ts +56 -29
- package/src/core/CoreTextNode.ts +41 -9
- package/src/core/CoreTextureManager.ts +55 -175
- package/src/core/Stage.ts +199 -43
- package/src/core/TextureMemoryManager.ts +231 -22
- package/src/core/animations/CoreAnimation.ts +193 -68
- package/src/core/lib/ImageWorker.ts +79 -52
- package/src/core/lib/utils.ts +1 -0
- package/src/core/platform.ts +8 -1
- package/src/core/renderers/CoreContextTexture.ts +9 -2
- package/src/core/renderers/CoreRenderer.ts +5 -2
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +20 -1
- package/src/core/renderers/canvas/CanvasCoreTexture.ts +2 -6
- package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +2 -2
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +7 -11
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +51 -9
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +114 -55
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +2 -2
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +2 -2
- package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +2 -2
- package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +2 -2
- package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +2 -2
- package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +129 -3
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +7 -15
- package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +5 -2
- package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +6 -15
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +6 -2
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +10 -2
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +2 -1
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +6 -15
- package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +20 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +14 -15
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -2
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -1
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +139 -447
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -3
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +2 -2
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +4 -2
- package/src/core/text-rendering/renderers/TextRenderer.ts +3 -2
- package/src/core/textures/ColorTexture.ts +1 -1
- package/src/core/textures/ImageTexture.ts +1 -1
- package/src/core/textures/NoiseTexture.ts +4 -1
- package/src/core/textures/SubTexture.ts +7 -7
- package/src/core/textures/Texture.ts +46 -3
- package/src/core/utils.ts +12 -11
- package/src/main-api/DynamicShaderController.ts +97 -0
- package/src/main-api/INode.ts +56 -479
- package/src/main-api/Inspector.ts +37 -39
- package/src/main-api/Renderer.ts +543 -0
- package/src/main-api/ShaderController.ts +81 -0
- package/src/main-api/utils.ts +45 -0
- package/src/utils.ts +8 -0
- package/dist/exports/core-api.d.ts +0 -74
- package/dist/exports/core-api.js +0 -96
- package/dist/exports/core-api.js.map +0 -1
- package/dist/exports/main-api.d.ts +0 -30
- package/dist/exports/main-api.js +0 -45
- package/dist/exports/main-api.js.map +0 -1
- package/dist/src/core/CoreExtension.d.ts +0 -12
- package/dist/src/core/CoreExtension.js +0 -29
- package/dist/src/core/CoreExtension.js.map +0 -1
- package/dist/src/core/renderers/SpecificNode.d.ts +0 -1
- package/dist/src/core/renderers/SpecificNode.js +0 -19
- package/dist/src/core/renderers/SpecificNode.js.map +0 -1
- package/dist/src/core/renderers/webgl/newShader/effectsMock.d.ts +0 -13
- package/dist/src/core/renderers/webgl/newShader/effectsMock.js +0 -62
- package/dist/src/core/renderers/webgl/newShader/effectsMock.js.map +0 -1
- package/dist/src/main-api/ICoreDriver.d.ts +0 -24
- package/dist/src/main-api/ICoreDriver.js +0 -20
- package/dist/src/main-api/ICoreDriver.js.map +0 -1
- package/dist/src/main-api/RendererMain.d.ts +0 -378
- package/dist/src/main-api/RendererMain.js +0 -367
- package/dist/src/main-api/RendererMain.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -21
- package/dist/src/render-drivers/main/MainCoreDriver.js +0 -115
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -101
- package/dist/src/render-drivers/main/MainOnlyNode.js +0 -425
- package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -204
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -93
- package/dist/src/render-drivers/threadx/NodeStruct.js +0 -290
- package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
- package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -40
- package/dist/src/render-drivers/threadx/SharedNode.js +0 -61
- package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -203
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -25
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -232
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -24
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -113
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -46
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -160
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -184
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -109
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
- package/dist/src/render-drivers/threadx/worker/renderer.js +0 -147
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
- package/dist/src/render-drivers/utils.d.ts +0 -12
- package/dist/src/render-drivers/utils.js +0 -74
- package/dist/src/render-drivers/utils.js.map +0 -1
- package/exports/core-api.ts +0 -102
- package/exports/main-api.ts +0 -62
- package/src/core/CoreExtension.ts +0 -32
- package/src/main-api/ICoreDriver.ts +0 -68
- package/src/main-api/RendererMain.ts +0 -685
- package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +0 -45
- package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +0 -154
- package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +0 -54
- package/src/render-drivers/main/MainCoreDriver.ts +0 -159
- package/src/render-drivers/main/MainOnlyNode.ts +0 -553
- package/src/render-drivers/main/MainOnlyTextNode.ts +0 -261
- package/src/render-drivers/threadx/NodeStruct.ts +0 -320
- package/src/render-drivers/threadx/SharedNode.ts +0 -101
- package/src/render-drivers/threadx/TextNodeStruct.ts +0 -213
- package/src/render-drivers/threadx/ThreadXCoreDriver.ts +0 -291
- package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +0 -135
- package/src/render-drivers/threadx/ThreadXMainNode.ts +0 -201
- package/src/render-drivers/threadx/ThreadXMainTextNode.ts +0 -85
- package/src/render-drivers/threadx/ThreadXRendererMessage.ts +0 -112
- package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +0 -253
- package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +0 -151
- package/src/render-drivers/threadx/worker/renderer.ts +0 -156
- package/src/render-drivers/utils.ts +0 -102
|
@@ -16,10 +16,15 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
import {
|
|
20
|
+
updateFloat32ArrayLength4,
|
|
21
|
+
validateArrayLength4,
|
|
22
|
+
} from './EffectUtils.js';
|
|
19
23
|
import {
|
|
20
24
|
ShaderEffect,
|
|
21
25
|
type DefaultEffectProps,
|
|
22
26
|
type ShaderEffectUniforms,
|
|
27
|
+
type ShaderEffectValueMap,
|
|
23
28
|
} from './ShaderEffect.js';
|
|
24
29
|
|
|
25
30
|
/**
|
|
@@ -63,21 +68,8 @@ export class FadeOutEffect extends ShaderEffect {
|
|
|
63
68
|
value: 0,
|
|
64
69
|
method: 'uniform4fv',
|
|
65
70
|
type: 'vec4',
|
|
66
|
-
validator:
|
|
67
|
-
|
|
68
|
-
if (Array.isArray(r)) {
|
|
69
|
-
if (r.length === 2) {
|
|
70
|
-
r = [r[0], r[1], r[0], r[1]] as number[];
|
|
71
|
-
} else if (r.length === 3) {
|
|
72
|
-
r = [r[0], r[1], r[2], r[0]] as number[];
|
|
73
|
-
} else if (r.length !== 4) {
|
|
74
|
-
r = [r[0], r[0], r[0], r[0]] as number[];
|
|
75
|
-
}
|
|
76
|
-
} else if (typeof r === 'number') {
|
|
77
|
-
r = [r, r, r, r];
|
|
78
|
-
}
|
|
79
|
-
return r;
|
|
80
|
-
},
|
|
71
|
+
validator: validateArrayLength4,
|
|
72
|
+
updateProgramValue: updateFloat32ArrayLength4,
|
|
81
73
|
},
|
|
82
74
|
};
|
|
83
75
|
|
|
@@ -84,8 +84,11 @@ export class GlitchEffect extends ShaderEffect {
|
|
|
84
84
|
time: {
|
|
85
85
|
value: 0,
|
|
86
86
|
method: 'uniform1f',
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
updateOnBind: true,
|
|
88
|
+
updateProgramValue: (values) => {
|
|
89
|
+
const value = (values.value =
|
|
90
|
+
(Date.now() - (values.value as number)) % 1000);
|
|
91
|
+
values.programValue = value;
|
|
89
92
|
},
|
|
90
93
|
type: 'float',
|
|
91
94
|
},
|
|
@@ -16,10 +16,13 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
import type { DynamicShaderProps } from '../DynamicShader.js';
|
|
20
|
+
import { updateWebSafeRadius, validateArrayLength4 } from './EffectUtils.js';
|
|
19
21
|
import {
|
|
20
22
|
ShaderEffect,
|
|
21
23
|
type DefaultEffectProps,
|
|
22
24
|
type ShaderEffectUniforms,
|
|
25
|
+
type ShaderEffectValueMap,
|
|
23
26
|
} from './ShaderEffect.js';
|
|
24
27
|
|
|
25
28
|
/**
|
|
@@ -103,21 +106,9 @@ export class HolePunchEffect extends ShaderEffect {
|
|
|
103
106
|
value: 0,
|
|
104
107
|
method: 'uniform4fv',
|
|
105
108
|
type: 'vec4',
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (r.length === 2) {
|
|
110
|
-
r = [r[0], r[1], r[0], r[1]] as number[];
|
|
111
|
-
} else if (r.length === 3) {
|
|
112
|
-
r = [r[0], r[1], r[2], r[0]] as number[];
|
|
113
|
-
} else if (r.length !== 4) {
|
|
114
|
-
r = [r[0], r[0], r[0], r[0]] as number[];
|
|
115
|
-
}
|
|
116
|
-
} else if (typeof r === 'number') {
|
|
117
|
-
r = [r, r, r, r];
|
|
118
|
-
}
|
|
119
|
-
return r;
|
|
120
|
-
},
|
|
109
|
+
updateOnBind: true,
|
|
110
|
+
validator: validateArrayLength4,
|
|
111
|
+
updateProgramValue: updateWebSafeRadius,
|
|
121
112
|
},
|
|
122
113
|
};
|
|
123
114
|
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import { getNormalizedRgbaComponents } from '../../../../lib/utils.js';
|
|
20
|
+
import { updateFloat32ArrayLengthN } from './EffectUtils.js';
|
|
20
21
|
import {
|
|
21
22
|
type DefaultEffectProps,
|
|
22
23
|
ShaderEffect,
|
|
@@ -94,9 +95,12 @@ export class LinearGradientEffect extends ShaderEffect {
|
|
|
94
95
|
colors: {
|
|
95
96
|
value: 0xffffffff,
|
|
96
97
|
validator: (rgbas: number[]): number[] => {
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
return rgbas.reduce(
|
|
99
|
+
(acc, val) => acc.concat(getNormalizedRgbaComponents(val)),
|
|
100
|
+
[] as number[],
|
|
101
|
+
);
|
|
99
102
|
},
|
|
103
|
+
updateProgramValue: updateFloat32ArrayLengthN,
|
|
100
104
|
size: (props: LinearGradientEffectProps) => props.colors!.length,
|
|
101
105
|
method: 'uniform4fv',
|
|
102
106
|
type: 'vec4',
|
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import { getNormalizedRgbaComponents } from '../../../../lib/utils.js';
|
|
20
|
+
import {
|
|
21
|
+
updateFloat32ArrayLength2,
|
|
22
|
+
updateFloat32ArrayLengthN,
|
|
23
|
+
} from './EffectUtils.js';
|
|
20
24
|
import {
|
|
21
25
|
type DefaultEffectProps,
|
|
22
26
|
ShaderEffect,
|
|
@@ -105,15 +109,19 @@ export class RadialGradientEffect extends ShaderEffect {
|
|
|
105
109
|
},
|
|
106
110
|
pivot: {
|
|
107
111
|
value: [0.5, 0.5],
|
|
112
|
+
updateProgramValue: updateFloat32ArrayLength2,
|
|
108
113
|
method: 'uniform2fv',
|
|
109
114
|
type: 'vec2',
|
|
110
115
|
},
|
|
111
116
|
colors: {
|
|
112
117
|
value: 0xffffffff,
|
|
113
118
|
validator: (rgbas: number[]): number[] => {
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
return rgbas.reduce(
|
|
120
|
+
(acc, val) => acc.concat(getNormalizedRgbaComponents(val)),
|
|
121
|
+
[] as number[],
|
|
122
|
+
);
|
|
116
123
|
},
|
|
124
|
+
updateProgramValue: updateFloat32ArrayLengthN,
|
|
117
125
|
size: (props: RadialGradientEffectProps) => props.colors!.length,
|
|
118
126
|
method: 'uniform4fv',
|
|
119
127
|
type: 'vec4',
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import { getNormalizedRgbaComponents } from '../../../../lib/utils.js';
|
|
20
|
+
import { updateShaderEffectColor } from './EffectUtils.js';
|
|
20
21
|
import {
|
|
21
22
|
ShaderEffect,
|
|
22
23
|
type DefaultEffectProps,
|
|
@@ -132,7 +133,7 @@ export class RadialProgressEffect extends ShaderEffect {
|
|
|
132
133
|
},
|
|
133
134
|
color: {
|
|
134
135
|
value: 0xffffffff,
|
|
135
|
-
|
|
136
|
+
updateProgramValue: updateShaderEffectColor,
|
|
136
137
|
method: 'uniform4fv',
|
|
137
138
|
type: 'vec4',
|
|
138
139
|
},
|
|
@@ -16,10 +16,13 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
import type { DynamicShaderProps } from '../DynamicShader.js';
|
|
20
|
+
import { updateWebSafeRadius, validateArrayLength4 } from './EffectUtils.js';
|
|
19
21
|
import {
|
|
20
22
|
ShaderEffect,
|
|
21
23
|
type DefaultEffectProps,
|
|
22
24
|
type ShaderEffectUniforms,
|
|
25
|
+
type ShaderEffectValueMap,
|
|
23
26
|
} from './ShaderEffect.js';
|
|
24
27
|
|
|
25
28
|
/**
|
|
@@ -65,21 +68,9 @@ export class RadiusEffect extends ShaderEffect {
|
|
|
65
68
|
value: 0,
|
|
66
69
|
method: 'uniform4fv',
|
|
67
70
|
type: 'vec4',
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (r.length === 2) {
|
|
72
|
-
r = [r[0], r[1], r[0], r[1]] as number[];
|
|
73
|
-
} else if (r.length === 3) {
|
|
74
|
-
r = [r[0], r[1], r[2], r[0]] as number[];
|
|
75
|
-
} else if (r.length !== 4) {
|
|
76
|
-
r = [r[0], r[0], r[0], r[0]] as number[];
|
|
77
|
-
}
|
|
78
|
-
} else if (typeof r === 'number') {
|
|
79
|
-
r = [r, r, r, r];
|
|
80
|
-
}
|
|
81
|
-
return r;
|
|
82
|
-
},
|
|
71
|
+
updateOnBind: true,
|
|
72
|
+
validator: validateArrayLength4,
|
|
73
|
+
updateProgramValue: updateWebSafeRadius,
|
|
83
74
|
},
|
|
84
75
|
};
|
|
85
76
|
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AlphaShaderProp,
|
|
3
|
+
DimensionsShaderProp,
|
|
4
|
+
} from '../../WebGlCoreShader.js';
|
|
1
5
|
import type {
|
|
2
6
|
UniformInfo,
|
|
3
7
|
UniformMethodMap,
|
|
@@ -9,12 +13,28 @@ export interface ShaderEffectUniform {
|
|
|
9
13
|
method: keyof UniformMethodMap;
|
|
10
14
|
name?: string;
|
|
11
15
|
size?: (value: Record<string, unknown>) => number;
|
|
16
|
+
updateOnBind?: boolean;
|
|
17
|
+
updateProgramValue?: (
|
|
18
|
+
programValues: ShaderEffectValueMap,
|
|
19
|
+
shaderProps?: Record<string, unknown>,
|
|
20
|
+
) => void;
|
|
12
21
|
validator?: (
|
|
13
22
|
value: any,
|
|
14
23
|
props: Record<string, unknown>,
|
|
15
24
|
) => number | number[] | number[][];
|
|
16
25
|
}
|
|
17
26
|
|
|
27
|
+
export interface ShaderEffectValueMap
|
|
28
|
+
extends DimensionsShaderProp,
|
|
29
|
+
AlphaShaderProp {
|
|
30
|
+
value: ShaderEffectUniform['value'];
|
|
31
|
+
programValue: number | Float32Array | undefined;
|
|
32
|
+
hasValidator: boolean;
|
|
33
|
+
hasProgramValueUpdater: boolean;
|
|
34
|
+
updateOnBind: boolean;
|
|
35
|
+
validatedValue?: number | number[];
|
|
36
|
+
}
|
|
37
|
+
|
|
18
38
|
export interface ShaderEffectUniforms {
|
|
19
39
|
[key: string]: ShaderEffectUniform;
|
|
20
40
|
}
|
|
@@ -25,7 +25,6 @@ import { ImageTexture } from '../../../textures/ImageTexture.js';
|
|
|
25
25
|
import {
|
|
26
26
|
TrFontFace,
|
|
27
27
|
type NormalizedFontMetrics,
|
|
28
|
-
type TrFontFaceDescriptors,
|
|
29
28
|
type TrFontFaceOptions,
|
|
30
29
|
} from '../TrFontFace.js';
|
|
31
30
|
import type { FontShaper } from './internal/FontShaper.js';
|
|
@@ -77,25 +76,25 @@ export class SdfTrFontFace<
|
|
|
77
76
|
'SDF Font Faces can only be used with the WebGL Renderer',
|
|
78
77
|
);
|
|
79
78
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
preload: true,
|
|
92
|
-
},
|
|
93
|
-
);
|
|
79
|
+
// Load image
|
|
80
|
+
this.texture = stage.txManager.loadTexture('ImageTexture', {
|
|
81
|
+
src: atlasUrl,
|
|
82
|
+
// IMPORTANT: The SDF shader requires the alpha channel to NOT be
|
|
83
|
+
// premultiplied on the atlas texture. If it is premultiplied, the
|
|
84
|
+
// rendering of SDF glyphs (especially single-channel SDF fonts) will
|
|
85
|
+
// be very jagged.
|
|
86
|
+
premultiplyAlpha: false,
|
|
87
|
+
});
|
|
94
88
|
|
|
95
89
|
this.texture.on('loaded', () => {
|
|
96
90
|
this.checkLoaded();
|
|
91
|
+
// Make sure we mark the stage for a re-render (in case the font's texture was freed and reloaded)
|
|
92
|
+
stage.requestRender();
|
|
97
93
|
});
|
|
98
94
|
|
|
95
|
+
// Pre-load it
|
|
96
|
+
this.texture.ctxTexture.load();
|
|
97
|
+
|
|
99
98
|
// Set this.data to the fetched data from dataUrl
|
|
100
99
|
fetch(atlasDataUrl)
|
|
101
100
|
.then(async (response) => {
|
|
@@ -61,7 +61,6 @@ export interface TrFontFaceDescriptors {
|
|
|
61
61
|
unicodeRange?: string;
|
|
62
62
|
display?: FontDisplay;
|
|
63
63
|
featureSettings?: string;
|
|
64
|
-
variant?: string;
|
|
65
64
|
}
|
|
66
65
|
|
|
67
66
|
export interface FontMetrics {
|
|
@@ -182,7 +181,6 @@ export class TrFontFace extends EventEmitter {
|
|
|
182
181
|
: descriptors.weight,
|
|
183
182
|
stretch: descriptors.stretch,
|
|
184
183
|
unicodeRange: descriptors.unicodeRange,
|
|
185
|
-
variant: descriptors.variant,
|
|
186
184
|
featureSettings: descriptors.featureSettings,
|
|
187
185
|
display: descriptors.display,
|
|
188
186
|
};
|
|
@@ -57,7 +57,6 @@ export class WebTrFontFace extends TrFontFace {
|
|
|
57
57
|
: determinedDescriptors.weight,
|
|
58
58
|
stretch: determinedDescriptors.stretch,
|
|
59
59
|
unicodeRange: determinedDescriptors.unicodeRange,
|
|
60
|
-
variant: determinedDescriptors.variant,
|
|
61
60
|
featureSettings: determinedDescriptors.featureSettings,
|
|
62
61
|
display: determinedDescriptors.display,
|
|
63
62
|
};
|