@lightningjs/renderer 2.13.1 → 3.0.0-beta2
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/canvas-shaders.d.ts +10 -0
- package/dist/exports/canvas-shaders.js +27 -0
- package/dist/exports/canvas-shaders.js.map +1 -0
- package/dist/exports/canvas.d.ts +7 -1
- package/dist/exports/canvas.js +7 -1
- package/dist/exports/canvas.js.map +1 -1
- package/dist/exports/index.d.ts +15 -8
- package/dist/exports/index.js +7 -4
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/webgl-shaders.d.ts +11 -0
- package/dist/exports/webgl-shaders.js +28 -0
- package/dist/exports/webgl-shaders.js.map +1 -0
- package/dist/exports/webgl.d.ts +9 -1
- package/dist/exports/webgl.js +9 -1
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +10 -5
- package/dist/src/core/CoreNode.js +34 -13
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +29 -71
- package/dist/src/core/CoreShaderManager.js +110 -97
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreStuff.d.ts +1 -0
- package/dist/src/core/CoreStuff.js +138 -0
- package/dist/src/core/CoreStuff.js.map +1 -0
- package/dist/src/core/CoreTextNode.js +1 -8
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTexturizer.d.ts +14 -0
- package/dist/src/core/CoreTexturizer.js +47 -0
- package/dist/src/core/CoreTexturizer.js.map +1 -0
- package/dist/src/core/LngNode.d.ts +736 -0
- package/dist/src/core/LngNode.js +1174 -0
- package/dist/src/core/LngNode.js.map +1 -0
- package/dist/src/core/Matrix2DContext.d.ts +15 -0
- package/dist/src/core/Matrix2DContext.js +45 -0
- package/dist/src/core/Matrix2DContext.js.map +1 -0
- package/dist/src/core/ShaderNode.d.ts +10 -0
- package/dist/src/core/ShaderNode.js +30 -0
- package/dist/src/core/ShaderNode.js.map +1 -0
- package/dist/src/core/Stage.d.ts +11 -14
- package/dist/src/core/Stage.js +24 -29
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextNode.d.ts +103 -0
- package/dist/src/core/TextNode.js +331 -0
- package/dist/src/core/TextNode.js.map +1 -0
- package/dist/src/core/animations/CoreAnimation.d.ts +0 -1
- package/dist/src/core/animations/CoreAnimation.js +6 -52
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/lib/Coords.d.ts +14 -0
- package/dist/src/core/lib/Coords.js +55 -0
- package/dist/src/core/lib/Coords.js.map +1 -0
- package/dist/src/core/lib/RenderCoords.d.ts +9 -10
- package/dist/src/core/lib/RenderCoords.js +43 -55
- package/dist/src/core/lib/RenderCoords.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +89 -54
- package/dist/src/core/lib/WebGlContextWrapper.js +153 -157
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/glm/common.d.ts +162 -0
- package/dist/src/core/lib/glm/common.js +81 -0
- package/dist/src/core/lib/glm/common.js.map +1 -0
- package/dist/src/core/lib/glm/index.d.ts +11 -0
- package/{src/core/renderers/CoreShader.ts → dist/src/core/lib/glm/index.js} +12 -23
- package/dist/src/core/lib/glm/index.js.map +1 -0
- package/dist/src/core/lib/glm/mat2.d.ts +219 -0
- package/dist/src/core/lib/glm/mat2.js +396 -0
- package/dist/src/core/lib/glm/mat2.js.map +1 -0
- package/dist/src/core/lib/glm/mat2d.d.ts +237 -0
- package/dist/src/core/lib/glm/mat2d.js +442 -0
- package/dist/src/core/lib/glm/mat2d.js.map +1 -0
- package/dist/src/core/lib/glm/mat3.d.ts +283 -0
- package/dist/src/core/lib/glm/mat3.js +680 -0
- package/dist/src/core/lib/glm/mat3.js.map +1 -0
- package/dist/src/core/lib/glm/mat4.d.ts +550 -0
- package/dist/src/core/lib/glm/mat4.js +1802 -0
- package/dist/src/core/lib/glm/mat4.js.map +1 -0
- package/dist/src/core/lib/glm/quat.d.ts +363 -0
- package/dist/src/core/lib/glm/quat.js +693 -0
- package/dist/src/core/lib/glm/quat.js.map +1 -0
- package/dist/src/core/lib/glm/quat2.d.ts +356 -0
- package/dist/src/core/lib/glm/quat2.js +754 -0
- package/dist/src/core/lib/glm/quat2.js.map +1 -0
- package/dist/src/core/lib/glm/vec2.d.ts +365 -0
- package/dist/src/core/lib/glm/vec2.js +569 -0
- package/dist/src/core/lib/glm/vec2.js.map +1 -0
- package/dist/src/core/lib/glm/vec3.d.ts +406 -0
- package/dist/src/core/lib/glm/vec3.js +720 -0
- package/dist/src/core/lib/glm/vec3.js.map +1 -0
- package/dist/src/core/lib/glm/vec4.d.ts +330 -0
- package/dist/src/core/lib/glm/vec4.js +608 -0
- package/dist/src/core/lib/glm/vec4.js.map +1 -0
- package/dist/src/core/lib/textureCompression.js +0 -1
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +2 -1
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/platform.js +1 -0
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +11 -21
- package/dist/src/core/renderers/CoreRenderer.js +0 -6
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderManager.d.ts +19 -0
- package/dist/src/core/renderers/CoreShaderManager.js +33 -0
- package/dist/src/core/renderers/CoreShaderManager.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderNode.d.ts +58 -0
- package/dist/src/core/renderers/CoreShaderNode.js +104 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
- package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
- package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +36 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +212 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +60 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js +124 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +27 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +82 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +11 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +34 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +55 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +9 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +38 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +57 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +227 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +44 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +118 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +134 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +547 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +334 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +35 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +201 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +32 -5
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/scene/Scene.d.ts +59 -0
- package/dist/src/core/scene/Scene.js +106 -0
- package/dist/src/core/scene/Scene.js.map +1 -0
- package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
- package/dist/src/core/shaders/canvas/Border.js +57 -0
- package/dist/src/core/shaders/canvas/Border.js.map +1 -0
- package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
- package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js +46 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js +68 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/canvas/Rounded.js +33 -0
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +35 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +39 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +38 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/Shadow.js +31 -0
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
- package/dist/src/core/shaders/canvas/utils/render.js +84 -0
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
- package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
- package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Border.js +87 -0
- package/dist/src/core/shaders/webgl/Border.js.map +1 -0
- package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
- package/dist/src/core/shaders/webgl/Default.js +86 -0
- package/dist/src/core/shaders/webgl/Default.js.map +1 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
- package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
- package/dist/src/core/shaders/webgl/HolePunch.js +64 -0
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js +75 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js +73 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/webgl/Rounded.js +86 -0
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +97 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +112 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +32 -0
- package/dist/src/core/shaders/webgl/SdfShader.js +116 -0
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
- package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Shadow.js +110 -0
- package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +6 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +2 -3
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +34 -31
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +1 -4
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +1 -1
- package/dist/src/main-api/ICoreDriver.d.ts +4 -1
- package/dist/src/main-api/INode.d.ts +9 -9
- package/dist/src/main-api/IRenderDriver.d.ts +20 -0
- package/dist/src/main-api/IRenderDriver.js +20 -0
- package/dist/src/main-api/IRenderDriver.js.map +1 -0
- package/dist/src/main-api/IShaderController.d.ts +14 -0
- package/dist/src/main-api/IShaderController.js +30 -0
- package/dist/src/main-api/IShaderController.js.map +1 -0
- package/dist/src/main-api/IShaderNode.d.ts +17 -0
- package/dist/src/main-api/IShaderNode.js +19 -0
- package/dist/src/main-api/IShaderNode.js.map +1 -0
- package/dist/src/main-api/Renderer.d.ts +8 -91
- package/dist/src/main-api/Renderer.js +3 -54
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/main-api/RendererMain.d.ts +2 -5
- package/dist/src/main-api/RendererMain.js +4 -6
- package/dist/src/main-api/RendererMain.js.map +1 -1
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -1
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +4 -1
- package/dist/src/render-drivers/main/MainCoreDriver.js +4 -1
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
- package/dist/src/render-drivers/main/MainOnlyNode.d.ts +6 -8
- package/dist/src/render-drivers/main/MainOnlyNode.js +1 -30
- package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
- package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +6 -0
- package/dist/src/render-drivers/main/MainOnlyShaderController.js +15 -0
- package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +1 -0
- package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +7 -0
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js +34 -0
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +1 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +1 -1
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +3 -2
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
- package/dist/src/render-drivers/main/MainRenderDriver.d.ts +17 -0
- package/dist/src/render-drivers/main/MainRenderDriver.js +88 -0
- package/dist/src/render-drivers/main/MainRenderDriver.js.map +1 -0
- package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -3
- package/dist/src/render-drivers/threadx/NodeStruct.js +0 -9
- package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -1
- package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -1
- package/dist/src/render-drivers/threadx/SharedNode.js +0 -1
- package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +1 -3
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +4 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +4 -2
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +4 -8
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +24 -53
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +5 -7
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js +2 -8
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +6 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +16 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +7 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +15 -0
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +198 -0
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -7
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/worker/renderer.js +0 -2
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
- package/dist/src/render-drivers/utils.js +1 -6
- package/dist/src/render-drivers/utils.js.map +1 -1
- package/dist/src/utils.d.ts +6 -0
- package/dist/src/utils.js +18 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/canvas-shaders.ts +28 -0
- package/exports/canvas.ts +7 -1
- package/exports/index.ts +17 -17
- package/exports/webgl-shaders.ts +28 -0
- package/exports/webgl.ts +13 -1
- package/package.json +3 -1
- package/src/core/CoreNode.test.ts +3 -2
- package/src/core/CoreNode.ts +50 -19
- package/src/core/CoreShaderManager.ts +127 -226
- package/src/core/CoreTextNode.ts +1 -17
- package/src/core/Stage.ts +36 -41
- package/src/core/animations/CoreAnimation.ts +8 -64
- package/src/core/lib/RenderCoords.ts +52 -67
- package/src/core/lib/WebGlContextWrapper.ts +278 -236
- package/src/core/lib/textureCompression.ts +3 -3
- package/src/core/lib/utils.ts +3 -1
- package/src/core/platform.ts +1 -0
- package/src/core/renderers/CoreRenderer.ts +19 -27
- package/src/core/renderers/CoreShaderNode.ts +167 -0
- package/src/core/renderers/{canvas/shaders/UnsupportedShader.ts → CoreShaderProgram.ts} +3 -28
- package/src/core/renderers/canvas/CanvasRenderer.ts +298 -0
- package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -0
- package/src/core/renderers/canvas/{CanvasCoreTexture.ts → CanvasTexture.ts} +6 -3
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +2 -13
- package/src/core/renderers/canvas/internal/ColorUtils.ts +16 -0
- package/src/core/renderers/webgl/{WebGlCoreCtxRenderTexture.ts → WebGlCtxRenderTexture.ts} +2 -2
- package/src/core/renderers/webgl/{WebGlCoreCtxSubTexture.ts → WebGlCtxSubTexture.ts} +2 -2
- package/src/core/renderers/webgl/{WebGlCoreCtxTexture.ts → WebGlCtxTexture.ts} +1 -1
- package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -0
- package/src/core/renderers/webgl/{WebGlCoreRenderer.ts → WebGlRenderer.ts} +155 -250
- package/src/core/renderers/webgl/WebGlShaderNode.ts +437 -0
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -0
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -5
- package/src/core/shaders/canvas/Border.ts +78 -0
- package/src/core/shaders/canvas/HolePunch.ts +62 -0
- package/src/core/shaders/canvas/LinearGradient.ts +69 -0
- package/src/core/shaders/canvas/RadialGradient.ts +113 -0
- package/src/core/shaders/canvas/Rounded.ts +55 -0
- package/src/core/shaders/canvas/RoundedWithBorder.ts +68 -0
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -0
- package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -0
- package/src/core/shaders/canvas/Shadow.ts +52 -0
- package/src/core/shaders/canvas/utils/render.ts +151 -0
- package/src/core/shaders/templates/BorderTemplate.ts +115 -0
- package/src/core/shaders/templates/HolePunchTemplate.ts +82 -0
- package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -0
- package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -0
- package/src/core/shaders/templates/RoundedTemplate.ts +98 -0
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -0
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -0
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -0
- package/src/core/shaders/templates/ShadowTemplate.ts +106 -0
- package/src/core/shaders/templates/shaderUtils.ts +47 -0
- package/src/core/shaders/webgl/Border.ts +96 -0
- package/src/core/shaders/webgl/Default.ts +89 -0
- package/src/core/shaders/webgl/DefaultBatched.ts +129 -0
- package/src/core/shaders/webgl/HolePunch.ts +78 -0
- package/src/core/shaders/webgl/LinearGradient.ts +81 -0
- package/src/core/shaders/webgl/RadialGradient.ts +84 -0
- package/src/core/shaders/webgl/Rounded.ts +117 -0
- package/src/core/shaders/webgl/RoundedWithBorder.ts +114 -0
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +133 -0
- package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -0
- package/src/core/shaders/webgl/SdfShader.ts +134 -0
- package/src/core/shaders/webgl/Shadow.ts +115 -0
- package/src/core/text-rendering/TextTextureRendererUtils.ts +1 -1
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +2 -2
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +12 -5
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +44 -57
- package/src/core/text-rendering/renderers/TextRenderer.ts +2 -9
- package/src/core/textures/Texture.ts +1 -1
- package/src/main-api/INode.ts +11 -13
- package/src/main-api/Renderer.ts +25 -127
- package/src/utils.ts +19 -0
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +0 -375
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +0 -125
- package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -362
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +0 -93
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -132
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +0 -580
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +0 -167
- package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -204
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +0 -87
- package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +0 -159
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +0 -127
- package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +0 -148
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +0 -67
- package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +0 -157
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +0 -171
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +0 -168
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +0 -187
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +0 -110
- package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +0 -196
- package/src/main-api/DynamicShaderController.ts +0 -104
- package/src/main-api/ShaderController.ts +0 -80
package/src/core/CoreNode.ts
CHANGED
|
@@ -55,7 +55,7 @@ import type { AnimationSettings } from './animations/CoreAnimation.js';
|
|
|
55
55
|
import type { IAnimationController } from '../common/IAnimationController.js';
|
|
56
56
|
import { CoreAnimation } from './animations/CoreAnimation.js';
|
|
57
57
|
import { CoreAnimationController } from './animations/CoreAnimationController.js';
|
|
58
|
-
import type {
|
|
58
|
+
import type { CoreShaderNode } from './renderers/CoreShaderNode.js';
|
|
59
59
|
|
|
60
60
|
export enum CoreNodeRenderState {
|
|
61
61
|
Init = 0,
|
|
@@ -195,6 +195,11 @@ export enum UpdateType {
|
|
|
195
195
|
* All
|
|
196
196
|
*/
|
|
197
197
|
All = 14335,
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* RecalcUniforms
|
|
201
|
+
*/
|
|
202
|
+
RecalcUniforms = 16384,
|
|
198
203
|
}
|
|
199
204
|
|
|
200
205
|
/**
|
|
@@ -447,7 +452,7 @@ export interface CoreNodeProps {
|
|
|
447
452
|
* Note: If this is a Text Node, the Shader will be managed by the Node's
|
|
448
453
|
* {@link TextRenderer} and should not be set explicitly.
|
|
449
454
|
*/
|
|
450
|
-
shader:
|
|
455
|
+
shader: CoreShaderNode<any> | null;
|
|
451
456
|
/**
|
|
452
457
|
* Image URL
|
|
453
458
|
*
|
|
@@ -725,6 +730,7 @@ export class CoreNode extends EventEmitter {
|
|
|
725
730
|
protected _id: number = getNewId();
|
|
726
731
|
readonly props: CoreNodeProps;
|
|
727
732
|
|
|
733
|
+
private hasShaderUpdater = false;
|
|
728
734
|
public updateType = UpdateType.All;
|
|
729
735
|
public childUpdateType = UpdateType.None;
|
|
730
736
|
|
|
@@ -764,13 +770,15 @@ export class CoreNode extends EventEmitter {
|
|
|
764
770
|
...props,
|
|
765
771
|
parent: null,
|
|
766
772
|
texture: null,
|
|
773
|
+
shader: null,
|
|
767
774
|
src: null,
|
|
768
775
|
rtt: false,
|
|
769
776
|
};
|
|
770
777
|
|
|
771
|
-
// Assign props to
|
|
778
|
+
// Assign props to instances
|
|
772
779
|
this.parent = props.parent;
|
|
773
780
|
this.texture = props.texture;
|
|
781
|
+
this.shader = props.shader;
|
|
774
782
|
this.src = props.src;
|
|
775
783
|
this.rtt = props.rtt;
|
|
776
784
|
|
|
@@ -1043,7 +1051,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1043
1051
|
}
|
|
1044
1052
|
|
|
1045
1053
|
const parent = this.props.parent;
|
|
1046
|
-
let renderState = null;
|
|
1054
|
+
let renderState: CoreNodeRenderState | null = null;
|
|
1047
1055
|
|
|
1048
1056
|
// Handle specific RTT updates at this node level
|
|
1049
1057
|
if (this.updateType & UpdateType.RenderTexture && this.rtt) {
|
|
@@ -1090,7 +1098,11 @@ export class CoreNode extends EventEmitter {
|
|
|
1090
1098
|
this.calculateRenderCoords();
|
|
1091
1099
|
this.updateBoundingRect();
|
|
1092
1100
|
|
|
1093
|
-
this.setUpdateType(
|
|
1101
|
+
this.setUpdateType(
|
|
1102
|
+
UpdateType.RenderState |
|
|
1103
|
+
UpdateType.Children |
|
|
1104
|
+
UpdateType.RecalcUniforms,
|
|
1105
|
+
);
|
|
1094
1106
|
this.childUpdateType |= UpdateType.Global;
|
|
1095
1107
|
|
|
1096
1108
|
if (this.clipping === true) {
|
|
@@ -1196,6 +1208,14 @@ export class CoreNode extends EventEmitter {
|
|
|
1196
1208
|
return;
|
|
1197
1209
|
}
|
|
1198
1210
|
|
|
1211
|
+
if (
|
|
1212
|
+
this.updateType & UpdateType.RecalcUniforms &&
|
|
1213
|
+
this.hasShaderUpdater === true
|
|
1214
|
+
) {
|
|
1215
|
+
//this exists because the boolean hasShaderUpdater === true
|
|
1216
|
+
this.shader!.update!();
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1199
1219
|
if (this.updateType & UpdateType.Children && this.children.length > 0) {
|
|
1200
1220
|
for (let i = 0, length = this.children.length; i < length; i++) {
|
|
1201
1221
|
const child = this.children[i] as CoreNode;
|
|
@@ -1340,12 +1360,16 @@ export class CoreNode extends EventEmitter {
|
|
|
1340
1360
|
assertTruthy(transform);
|
|
1341
1361
|
assertTruthy(renderCoords);
|
|
1342
1362
|
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1363
|
+
if (transform.tb === 0 || transform.tc === 0) {
|
|
1364
|
+
this.renderBound = createBound(
|
|
1365
|
+
renderCoords.x1,
|
|
1366
|
+
renderCoords.y1,
|
|
1367
|
+
renderCoords.x3,
|
|
1368
|
+
renderCoords.y3,
|
|
1369
|
+
this.renderBound,
|
|
1370
|
+
);
|
|
1347
1371
|
} else {
|
|
1348
|
-
const {
|
|
1372
|
+
const { x1, y1, x2, y2, x3, y3, x4, y4 } = renderCoords;
|
|
1349
1373
|
this.renderBound = createBound(
|
|
1350
1374
|
Math.min(x1, x2, x3, x4),
|
|
1351
1375
|
Math.min(y1, y2, y3, y4),
|
|
@@ -1684,7 +1708,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1684
1708
|
this.localTransform = undefined;
|
|
1685
1709
|
|
|
1686
1710
|
this.props.texture = null;
|
|
1687
|
-
this.props.shader =
|
|
1711
|
+
this.props.shader = null;
|
|
1688
1712
|
|
|
1689
1713
|
while (this.children.length > 0) {
|
|
1690
1714
|
this.children[0]?.destroy();
|
|
@@ -1729,8 +1753,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1729
1753
|
texture: this.texture || this.stage.defaultTexture,
|
|
1730
1754
|
textureOptions: this.textureOptions,
|
|
1731
1755
|
zIndex: this.zIndex,
|
|
1732
|
-
shader: this.
|
|
1733
|
-
shaderProps: this.shader.getResolvedProps(),
|
|
1756
|
+
shader: this.props.shader as CoreShaderNode<any>,
|
|
1734
1757
|
alpha: this.worldAlpha,
|
|
1735
1758
|
clippingRect: this.clippingRect,
|
|
1736
1759
|
tx: this.globalTransform.tx,
|
|
@@ -2274,17 +2297,25 @@ export class CoreNode extends EventEmitter {
|
|
|
2274
2297
|
}
|
|
2275
2298
|
}
|
|
2276
2299
|
|
|
2277
|
-
get shader():
|
|
2300
|
+
get shader(): CoreShaderNode<any> | null {
|
|
2278
2301
|
return this.props.shader;
|
|
2279
2302
|
}
|
|
2280
2303
|
|
|
2281
|
-
set shader(
|
|
2282
|
-
if (this.props.shader ===
|
|
2304
|
+
set shader(shader: CoreShaderNode<any> | null) {
|
|
2305
|
+
if (this.props.shader === shader) {
|
|
2283
2306
|
return;
|
|
2284
2307
|
}
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2308
|
+
if (shader === null) {
|
|
2309
|
+
this.hasShaderUpdater = false;
|
|
2310
|
+
this.props.shader = this.stage.defShaderNode;
|
|
2311
|
+
this.setUpdateType(UpdateType.IsRenderable);
|
|
2312
|
+
return;
|
|
2313
|
+
}
|
|
2314
|
+
if (shader.shaderKey !== 'default') {
|
|
2315
|
+
this.hasShaderUpdater = shader.update !== undefined;
|
|
2316
|
+
shader.attachNode(this);
|
|
2317
|
+
}
|
|
2318
|
+
this.props.shader = shader;
|
|
2288
2319
|
this.setUpdateType(UpdateType.IsRenderable);
|
|
2289
2320
|
}
|
|
2290
2321
|
|
|
@@ -16,154 +16,68 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
-
import
|
|
20
|
-
import type { CoreRenderer } from './renderers/CoreRenderer.js';
|
|
21
|
-
import type { CoreShader } from './renderers/CoreShader.js';
|
|
22
|
-
|
|
23
|
-
import { DefaultShader } from './renderers/webgl/shaders/DefaultShader.js';
|
|
24
|
-
import { DefaultShaderBatched } from './renderers/webgl/shaders/DefaultShaderBatched.js';
|
|
19
|
+
import { deepClone } from '../utils.js';
|
|
25
20
|
import {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
import {
|
|
31
|
-
|
|
32
|
-
import { RadiusEffect } from './renderers/webgl/shaders/effects/RadiusEffect.js';
|
|
33
|
-
import { BorderEffect } from './renderers/webgl/shaders/effects/BorderEffect.js';
|
|
34
|
-
import {
|
|
35
|
-
LinearGradientEffect,
|
|
36
|
-
type LinearGradientEffectProps,
|
|
37
|
-
} from './renderers/webgl/shaders/effects/LinearGradientEffect.js';
|
|
38
|
-
import {
|
|
39
|
-
GrayscaleEffect,
|
|
40
|
-
type GrayscaleEffectProps,
|
|
41
|
-
} from './renderers/webgl/shaders/effects/GrayscaleEffect.js';
|
|
42
|
-
import { BorderRightEffect } from './renderers/webgl/shaders/effects/BorderRightEffect.js';
|
|
43
|
-
import { BorderTopEffect } from './renderers/webgl/shaders/effects/BorderTopEffect.js';
|
|
44
|
-
import { BorderBottomEffect } from './renderers/webgl/shaders/effects/BorderBottomEffect.js';
|
|
45
|
-
import { BorderLeftEffect } from './renderers/webgl/shaders/effects/BorderLeftEffect.js';
|
|
46
|
-
import {
|
|
47
|
-
GlitchEffect,
|
|
48
|
-
type GlitchEffectProps,
|
|
49
|
-
} from './renderers/webgl/shaders/effects/GlitchEffect.js';
|
|
50
|
-
import {
|
|
51
|
-
FadeOutEffect,
|
|
52
|
-
type FadeOutEffectProps,
|
|
53
|
-
} from './renderers/webgl/shaders/effects/FadeOutEffect.js';
|
|
54
|
-
import {
|
|
55
|
-
RadialGradientEffect,
|
|
56
|
-
type RadialGradientEffectProps,
|
|
57
|
-
} from './renderers/webgl/shaders/effects/RadialGradientEffect.js';
|
|
58
|
-
import type { WebGlCoreRenderer } from './renderers/webgl/WebGlCoreRenderer.js';
|
|
59
|
-
import {
|
|
60
|
-
RadialProgressEffect,
|
|
61
|
-
type RadialProgressEffectProps,
|
|
62
|
-
} from './renderers/webgl/shaders/effects/RadialProgressEffect.js';
|
|
63
|
-
import {
|
|
64
|
-
HolePunchEffect,
|
|
65
|
-
type HolePunchEffectProps,
|
|
66
|
-
} from './renderers/webgl/shaders/effects/HolePunchEffect.js';
|
|
67
|
-
import { WebGlCoreShader } from './renderers/webgl/WebGlCoreShader.js';
|
|
68
|
-
import { UnsupportedShader } from './renderers/canvas/shaders/UnsupportedShader.js';
|
|
69
|
-
import { ShaderController } from '../main-api/ShaderController.js';
|
|
70
|
-
import {
|
|
71
|
-
DynamicShaderController,
|
|
72
|
-
type DynamicEffects,
|
|
73
|
-
} from '../main-api/DynamicShaderController.js';
|
|
74
|
-
|
|
75
|
-
export type { FadeOutEffectProps };
|
|
76
|
-
export type { LinearGradientEffectProps };
|
|
77
|
-
export type { RadialGradientEffectProps };
|
|
78
|
-
export type { GrayscaleEffectProps };
|
|
79
|
-
export type { GlitchEffectProps };
|
|
80
|
-
export type { RadialProgressEffectProps };
|
|
81
|
-
export type { HolePunchEffectProps };
|
|
21
|
+
CoreShaderNode,
|
|
22
|
+
resolveShaderProps,
|
|
23
|
+
type CoreShaderType,
|
|
24
|
+
} from './renderers/CoreShaderNode.js';
|
|
25
|
+
import type { CoreShaderProgram } from './renderers/CoreShaderProgram.js';
|
|
26
|
+
import type { Stage } from './Stage.js';
|
|
82
27
|
|
|
83
28
|
export interface ShaderMap {
|
|
84
|
-
|
|
85
|
-
DefaultShaderBatched: typeof DefaultShaderBatched;
|
|
86
|
-
RoundedRectangle: typeof RoundedRectangle;
|
|
87
|
-
DynamicShader: typeof DynamicShader;
|
|
88
|
-
SdfShader: typeof SdfShader;
|
|
89
|
-
UnsupportedShader: typeof UnsupportedShader;
|
|
29
|
+
[key: string]: CoreShaderType<any>;
|
|
90
30
|
}
|
|
91
31
|
|
|
92
|
-
export
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
borderBottom: typeof BorderBottomEffect;
|
|
96
|
-
borderLeft: typeof BorderLeftEffect;
|
|
97
|
-
borderRight: typeof BorderRightEffect;
|
|
98
|
-
borderTop: typeof BorderTopEffect;
|
|
99
|
-
fadeOut: typeof FadeOutEffect;
|
|
100
|
-
linearGradient: typeof LinearGradientEffect;
|
|
101
|
-
radialGradient: typeof RadialGradientEffect;
|
|
102
|
-
grayscale: typeof GrayscaleEffect;
|
|
103
|
-
glitch: typeof GlitchEffect;
|
|
104
|
-
radialProgress: typeof RadialProgressEffect;
|
|
105
|
-
holePunch: typeof HolePunchEffect;
|
|
106
|
-
}
|
|
32
|
+
export type ExtractProps<Props> = {
|
|
33
|
+
[K in keyof Props]: Props[K] extends { default: infer D } ? D : Props[K];
|
|
34
|
+
};
|
|
107
35
|
|
|
108
|
-
export type
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
| HolePunchEffectProps;
|
|
36
|
+
export type PartialShaderProps<Props> = Partial<ExtractProps<Props>>;
|
|
37
|
+
export type ExtractShaderProps<T extends keyof ShaderMap> = ExtractProps<
|
|
38
|
+
ShaderMap[T]['props']
|
|
39
|
+
>;
|
|
40
|
+
export type OptionalShaderProps<T extends keyof ShaderMap> = PartialShaderProps<
|
|
41
|
+
ShaderMap[T]['props']
|
|
42
|
+
>;
|
|
116
43
|
|
|
117
44
|
export class CoreShaderManager {
|
|
118
|
-
protected
|
|
119
|
-
|
|
120
|
-
protected shConstructors: Partial<ShaderMap> = {};
|
|
121
|
-
protected attachedShader: CoreShader | null = null;
|
|
122
|
-
protected effectConstructors: Partial<EffectMap> = {};
|
|
123
|
-
renderer!: CoreRenderer;
|
|
45
|
+
protected shTypes: Record<string, CoreShaderType> = {};
|
|
46
|
+
protected shCache: Map<string, CoreShaderProgram> = new Map();
|
|
124
47
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
this.registerShaderType('SdfShader', SdfShader);
|
|
48
|
+
/**
|
|
49
|
+
* valuesCache is used to store calculations that can be shared between shader nodes.
|
|
50
|
+
*/
|
|
51
|
+
protected valuesCache: Map<string, Record<string, unknown>> = new Map();
|
|
52
|
+
protected valuesCacheUsage: Map<string, number> = new Map();
|
|
131
53
|
|
|
132
|
-
|
|
133
|
-
this.registerEffectType('borderBottom', BorderBottomEffect);
|
|
134
|
-
this.registerEffectType('borderLeft', BorderLeftEffect);
|
|
135
|
-
this.registerEffectType('borderRight', BorderRightEffect);
|
|
136
|
-
this.registerEffectType('borderTop', BorderTopEffect);
|
|
137
|
-
this.registerEffectType('fadeOut', FadeOutEffect);
|
|
138
|
-
this.registerEffectType('linearGradient', LinearGradientEffect);
|
|
139
|
-
this.registerEffectType('radialGradient', RadialGradientEffect);
|
|
140
|
-
this.registerEffectType('grayscale', GrayscaleEffect);
|
|
141
|
-
this.registerEffectType('glitch', GlitchEffect);
|
|
142
|
-
this.registerEffectType('radius', RadiusEffect);
|
|
143
|
-
this.registerEffectType('radialProgress', RadialProgressEffect);
|
|
144
|
-
this.registerEffectType('holePunch', HolePunchEffect);
|
|
145
|
-
}
|
|
54
|
+
protected attachedShader: CoreShaderProgram | null = null;
|
|
146
55
|
|
|
147
|
-
|
|
148
|
-
shType: Type,
|
|
149
|
-
shClass: ShaderMap[Type],
|
|
150
|
-
): void {
|
|
151
|
-
this.shConstructors[shType] = shClass;
|
|
152
|
-
}
|
|
56
|
+
constructor(readonly stage: Stage) {}
|
|
153
57
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
58
|
+
registerShaderType<Name extends keyof ShaderMap>(
|
|
59
|
+
name: Name,
|
|
60
|
+
shType: ShaderMap[Name],
|
|
157
61
|
): void {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
62
|
+
/**
|
|
63
|
+
* block name duplicates
|
|
64
|
+
*/
|
|
65
|
+
if (this.shTypes[name as string] !== undefined) {
|
|
66
|
+
console.warn(
|
|
67
|
+
`ShaderType already exists with the name: ${name}. Breaking off registration.`,
|
|
68
|
+
);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check renderer if shader type is supported.
|
|
73
|
+
*/
|
|
74
|
+
if (this.stage.renderer.supportsShaderType(shType) === false) {
|
|
75
|
+
console.warn(
|
|
76
|
+
`The renderer being used does not support this shader type. Breaking off registration.`,
|
|
77
|
+
);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.shTypes[name as string] = deepClone(shType);
|
|
167
81
|
}
|
|
168
82
|
|
|
169
83
|
/**
|
|
@@ -173,120 +87,107 @@ export class CoreShaderManager {
|
|
|
173
87
|
* @param props
|
|
174
88
|
* @returns
|
|
175
89
|
*/
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
props?:
|
|
179
|
-
):
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (!ShaderClass) {
|
|
185
|
-
throw new Error(`Shader type "${shType as string}" is not registered`);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
if (
|
|
189
|
-
this.renderer.mode === 'canvas' &&
|
|
190
|
-
ShaderClass.prototype instanceof WebGlCoreShader
|
|
191
|
-
) {
|
|
192
|
-
return this._createShaderCtr(
|
|
193
|
-
shType,
|
|
194
|
-
new UnsupportedShader(shType) as InstanceType<ShaderMap[Type]>,
|
|
195
|
-
props as ExtractProps<ShaderMap[Type]>,
|
|
90
|
+
createShader<Name extends keyof ShaderMap>(
|
|
91
|
+
name: Name,
|
|
92
|
+
props?: Record<string, unknown>,
|
|
93
|
+
): CoreShaderNode | null {
|
|
94
|
+
const shType = this.shTypes[name as string] as ShaderMap[Name];
|
|
95
|
+
if (shType === undefined) {
|
|
96
|
+
console.warn(
|
|
97
|
+
`ShaderType not found falling back on renderer default shader`,
|
|
196
98
|
);
|
|
99
|
+
return this.stage.defShaderNode;
|
|
197
100
|
}
|
|
198
|
-
|
|
199
|
-
if (shType
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
101
|
+
let shaderKey = name as string;
|
|
102
|
+
if (shType.props !== undefined) {
|
|
103
|
+
/**
|
|
104
|
+
* if props is undefined create empty obj to fill
|
|
105
|
+
*/
|
|
106
|
+
props = props || {};
|
|
107
|
+
/**
|
|
108
|
+
* resolve shader values
|
|
109
|
+
*/
|
|
110
|
+
resolveShaderProps(props, shType.props);
|
|
111
|
+
if (shType.getCacheMarkers !== undefined) {
|
|
112
|
+
shaderKey += `-${shType.getCacheMarkers(props)}`;
|
|
113
|
+
}
|
|
203
114
|
}
|
|
204
115
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
);
|
|
208
|
-
const cacheKey =
|
|
209
|
-
ShaderClass.makeCacheKey(resolvedProps) || ShaderClass.name;
|
|
210
|
-
if (cacheKey && this.shCache.has(cacheKey)) {
|
|
211
|
-
return this._createShaderCtr(
|
|
212
|
-
shType,
|
|
213
|
-
this.shCache.get(cacheKey) as InstanceType<ShaderMap[Type]>,
|
|
214
|
-
resolvedProps as ExtractProps<ShaderMap[Type]>,
|
|
215
|
-
);
|
|
116
|
+
if (this.stage.renderer.mode === 'canvas') {
|
|
117
|
+
return this.stage.renderer.createShaderNode(shaderKey, shType, props);
|
|
216
118
|
}
|
|
217
119
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
120
|
+
/**
|
|
121
|
+
* get shaderProgram by cacheKey
|
|
122
|
+
*/
|
|
123
|
+
let shProgram = this.shCache.get(shaderKey);
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* if shaderProgram was not found create a new one
|
|
127
|
+
*/
|
|
128
|
+
if (shProgram === undefined) {
|
|
129
|
+
shProgram = this.stage.renderer.createShaderProgram(shType, props)!;
|
|
130
|
+
this.shCache.set(shaderKey, shProgram);
|
|
224
131
|
}
|
|
225
|
-
|
|
132
|
+
|
|
133
|
+
return this.stage.renderer.createShaderNode(
|
|
134
|
+
shaderKey,
|
|
226
135
|
shType,
|
|
227
|
-
|
|
228
|
-
|
|
136
|
+
props,
|
|
137
|
+
shProgram,
|
|
229
138
|
);
|
|
230
139
|
}
|
|
231
140
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
throw new Error(`Renderer is not been defined`);
|
|
237
|
-
}
|
|
238
|
-
const resolvedProps = DynamicShader.resolveDefaults(
|
|
239
|
-
props as Record<string, unknown>,
|
|
240
|
-
this.effectConstructors,
|
|
241
|
-
);
|
|
242
|
-
const cacheKey = DynamicShader.makeCacheKey(
|
|
243
|
-
resolvedProps,
|
|
244
|
-
this.effectConstructors,
|
|
245
|
-
);
|
|
246
|
-
if (cacheKey && this.shCache.has(cacheKey)) {
|
|
247
|
-
return this._createDynShaderCtr(
|
|
248
|
-
this.shCache.get(cacheKey) as InstanceType<ShaderMap['DynamicShader']>,
|
|
249
|
-
resolvedProps,
|
|
250
|
-
);
|
|
251
|
-
}
|
|
252
|
-
const shader = new DynamicShader(
|
|
253
|
-
this.renderer as WebGlCoreRenderer,
|
|
254
|
-
props,
|
|
255
|
-
this.effectConstructors,
|
|
256
|
-
);
|
|
257
|
-
if (cacheKey) {
|
|
258
|
-
this.shCache.set(cacheKey, shader);
|
|
259
|
-
}
|
|
141
|
+
mutateShaderValueUsage(key: string, mutation: number) {
|
|
142
|
+
let usage = this.valuesCacheUsage.get(key) || 0;
|
|
143
|
+
this.valuesCacheUsage.set(key, usage + mutation);
|
|
144
|
+
}
|
|
260
145
|
|
|
261
|
-
|
|
146
|
+
getShaderValues(key: string) {
|
|
147
|
+
const values = this.valuesCache.get(key);
|
|
148
|
+
if (values === undefined) {
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
this.mutateShaderValueUsage(key, 1);
|
|
152
|
+
return values;
|
|
262
153
|
}
|
|
263
154
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
props: ExtractProps<ShaderMap[Type]>,
|
|
268
|
-
): ShaderController<Type> {
|
|
269
|
-
return new ShaderController(type, shader, props, this.renderer.stage);
|
|
155
|
+
setShaderValues(key: string, values: Record<string, unknown>) {
|
|
156
|
+
this.valuesCache.set(key, values);
|
|
157
|
+
this.mutateShaderValueUsage(key, 1);
|
|
270
158
|
}
|
|
271
159
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
160
|
+
cleanup() {
|
|
161
|
+
const values = [...this.valuesCacheUsage.entries()].sort(
|
|
162
|
+
(entryA, entryB) => {
|
|
163
|
+
if (entryA[1] < entryB[1]) {
|
|
164
|
+
return -1;
|
|
165
|
+
} else if (entryA[1] > entryB[1]) {
|
|
166
|
+
return 1;
|
|
167
|
+
}
|
|
168
|
+
return 0;
|
|
169
|
+
},
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
for (let i = 0; i < values.length; i++) {
|
|
173
|
+
if (values[i]![1] > 0) {
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
this.valuesCacheUsage.delete(values[i]![0]);
|
|
177
|
+
this.valuesCache.delete(values[i]![0]);
|
|
178
|
+
}
|
|
280
179
|
}
|
|
281
180
|
|
|
282
|
-
useShader(shader:
|
|
181
|
+
useShader(shader: CoreShaderProgram): void {
|
|
283
182
|
if (this.attachedShader === shader) {
|
|
284
183
|
return;
|
|
285
184
|
}
|
|
286
|
-
if (this.attachedShader) {
|
|
185
|
+
if (this.attachedShader && this.attachedShader.detach) {
|
|
287
186
|
this.attachedShader.detach();
|
|
288
187
|
}
|
|
289
|
-
shader.attach
|
|
188
|
+
if (shader.attach) {
|
|
189
|
+
shader.attach();
|
|
190
|
+
}
|
|
290
191
|
this.attachedShader = shader;
|
|
291
192
|
}
|
|
292
193
|
}
|
package/src/core/CoreTextNode.ts
CHANGED
|
@@ -409,23 +409,7 @@ export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
|
|
|
409
409
|
}
|
|
410
410
|
}
|
|
411
411
|
|
|
412
|
-
|
|
413
|
-
this.globalTransform = Matrix3d.identity();
|
|
414
|
-
if (this.localTransform) {
|
|
415
|
-
this.globalTransform.multiply(this.localTransform);
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
assertTruthy(this.globalTransform);
|
|
420
|
-
|
|
421
|
-
this.textRenderer.renderQuads(
|
|
422
|
-
this.trState,
|
|
423
|
-
this.globalTransform,
|
|
424
|
-
this.clippingRect,
|
|
425
|
-
this.worldAlpha,
|
|
426
|
-
this.parentHasRenderTexture,
|
|
427
|
-
this.framebufferDimensions,
|
|
428
|
-
);
|
|
412
|
+
this.textRenderer.renderQuads(this);
|
|
429
413
|
}
|
|
430
414
|
|
|
431
415
|
/**
|