@lightningjs/renderer 0.0.1
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/LICENSE +202 -0
- package/NOTICE +4 -0
- package/README.md +184 -0
- package/dist/exports/core-api.d.ts +73 -0
- package/dist/exports/core-api.js +95 -0
- package/dist/exports/core-api.js.map +1 -0
- package/dist/exports/main-api.d.ts +28 -0
- package/dist/exports/main-api.js +45 -0
- package/dist/exports/main-api.js.map +1 -0
- package/dist/exports/utils.d.ts +23 -0
- package/dist/exports/utils.js +42 -0
- package/dist/exports/utils.js.map +1 -0
- package/dist/src/common/CommonTypes.d.ts +38 -0
- package/dist/src/common/CommonTypes.js +20 -0
- package/dist/src/common/CommonTypes.js.map +1 -0
- package/dist/src/common/EventEmitter.d.ts +12 -0
- package/dist/src/common/EventEmitter.js +66 -0
- package/dist/src/common/EventEmitter.js.map +1 -0
- package/dist/src/common/IAnimationController.d.ts +9 -0
- package/dist/src/common/IAnimationController.js +20 -0
- package/dist/src/common/IAnimationController.js.map +1 -0
- package/dist/src/core/CoreExtension.d.ts +12 -0
- package/dist/src/core/CoreExtension.js +29 -0
- package/dist/src/core/CoreExtension.js.map +1 -0
- package/dist/src/core/CoreNode.d.ts +147 -0
- package/dist/src/core/CoreNode.js +498 -0
- package/dist/src/core/CoreNode.js.map +1 -0
- package/dist/src/core/CoreShaderManager.d.ts +29 -0
- package/dist/src/core/CoreShaderManager.js +58 -0
- package/dist/src/core/CoreShaderManager.js.map +1 -0
- package/dist/src/core/CoreTextNode.d.ts +64 -0
- package/dist/src/core/CoreTextNode.js +251 -0
- package/dist/src/core/CoreTextNode.js.map +1 -0
- package/dist/src/core/CoreTextureManager.d.ts +173 -0
- package/dist/src/core/CoreTextureManager.js +190 -0
- package/dist/src/core/CoreTextureManager.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/Stage.d.ts +53 -0
- package/dist/src/core/Stage.js +214 -0
- package/dist/src/core/Stage.js.map +1 -0
- package/dist/src/core/animations/AnimationManager.d.ts +7 -0
- package/dist/src/core/animations/AnimationManager.js +34 -0
- package/dist/src/core/animations/AnimationManager.js.map +1 -0
- package/dist/src/core/animations/CoreAnimation.d.ts +27 -0
- package/dist/src/core/animations/CoreAnimation.js +103 -0
- package/dist/src/core/animations/CoreAnimation.js.map +1 -0
- package/dist/src/core/animations/CoreAnimationController.d.ts +21 -0
- package/dist/src/core/animations/CoreAnimationController.js +96 -0
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -0
- 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/dist/src/core/lib/glm/index.js +30 -0
- 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/utils.d.ts +27 -0
- package/dist/src/core/lib/utils.js +108 -0
- package/dist/src/core/lib/utils.js.map +1 -0
- package/dist/src/core/platform.d.ts +10 -0
- package/dist/src/core/platform.js +37 -0
- package/dist/src/core/platform.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +6 -0
- package/dist/src/core/renderers/CoreContextTexture.js +25 -0
- package/dist/src/core/renderers/CoreContextTexture.js.map +1 -0
- package/dist/src/core/renderers/CoreRenderOp.d.ts +3 -0
- package/dist/src/core/renderers/CoreRenderOp.js +21 -0
- package/dist/src/core/renderers/CoreRenderOp.js.map +1 -0
- package/dist/src/core/renderers/CoreRenderer.d.ts +39 -0
- package/dist/src/core/renderers/CoreRenderer.js +26 -0
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/CoreShader.d.ts +9 -0
- package/dist/src/core/renderers/CoreShader.js +28 -0
- package/dist/src/core/renderers/CoreShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +7 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +32 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +46 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +163 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +27 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +82 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +100 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +372 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +39 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +187 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +27 -0
- package/dist/src/core/renderers/webgl/internal/BufferCollection.js +48 -0
- package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +39 -0
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +92 -0
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +46 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.d.ts +10 -0
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.js +31 -0
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.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 +89 -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 +53 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +299 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +29 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +135 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +45 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +137 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +15 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +68 -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 +14 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +54 -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 +15 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +68 -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 +15 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +68 -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 +15 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +68 -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 +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +33 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +17 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +98 -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 +6 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +32 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +16 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +140 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +14 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +82 -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 +44 -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/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/text-rendering/TextTextureRendererUtils.d.ts +53 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js +156 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -0
- package/dist/src/core/text-rendering/TrFontManager.d.ts +25 -0
- package/dist/src/core/text-rendering/TrFontManager.js +75 -0
- package/dist/src/core/text-rendering/TrFontManager.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +29 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +88 -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/font-face-types/SdfTrFontFace/internal/FontShaper.js +21 -0
- 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 +59 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +86 -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 +48 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +54 -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 +11 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +54 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +45 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +492 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +115 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +493 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +67 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +452 -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 +21 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +53 -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 +18 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +294 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -0
- 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/SdfTextRenderer/internal/measureText.d.ts +10 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +39 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +254 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +100 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -0
- package/dist/src/core/textures/ColorTexture.d.ts +35 -0
- package/dist/src/core/textures/ColorTexture.js +62 -0
- package/dist/src/core/textures/ColorTexture.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.d.ts +51 -0
- package/dist/src/core/textures/ImageTexture.js +76 -0
- package/dist/src/core/textures/ImageTexture.js.map +1 -0
- package/dist/src/core/textures/NoiseTexture.d.ts +42 -0
- package/dist/src/core/textures/NoiseTexture.js +63 -0
- package/dist/src/core/textures/NoiseTexture.js.map +1 -0
- package/dist/src/core/textures/SubTexture.d.ts +57 -0
- package/dist/src/core/textures/SubTexture.js +82 -0
- package/dist/src/core/textures/SubTexture.js.map +1 -0
- package/dist/src/core/textures/Texture.d.ts +92 -0
- package/dist/src/core/textures/Texture.js +105 -0
- package/dist/src/core/textures/Texture.js.map +1 -0
- package/dist/src/core/utils.d.ts +15 -0
- package/dist/src/core/utils.js +183 -0
- package/dist/src/core/utils.js.map +1 -0
- package/dist/src/main-api/INode.d.ts +390 -0
- package/dist/src/main-api/INode.js +20 -0
- package/dist/src/main-api/INode.js.map +1 -0
- 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/RendererMain.d.ts +232 -0
- package/dist/src/main-api/RendererMain.js +303 -0
- package/dist/src/main-api/RendererMain.js.map +1 -0
- package/dist/src/render-drivers/main/MainOnlyNode.d.ts +84 -0
- package/dist/src/render-drivers/main/MainOnlyNode.js +324 -0
- package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +39 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +165 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -0
- 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 +81 -0
- package/dist/src/render-drivers/threadx/NodeStruct.js +254 -0
- package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -0
- package/dist/src/render-drivers/threadx/SharedNode.d.ts +36 -0
- package/dist/src/render-drivers/threadx/SharedNode.js +57 -0
- package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +34 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +156 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +20 -0
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +84 -0
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +37 -0
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js +121 -0
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +23 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +50 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +194 -0
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +48 -0
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +32 -0
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +19 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +172 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +22 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +101 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -0
- package/dist/src/render-drivers/threadx/worker/renderer.d.ts +1 -0
- package/dist/src/render-drivers/threadx/worker/renderer.js +130 -0
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -0
- package/dist/src/render-drivers/utils.d.ts +10 -0
- package/dist/src/render-drivers/utils.js +41 -0
- package/dist/src/render-drivers/utils.js.map +1 -0
- package/dist/src/utils.d.ts +79 -0
- package/dist/src/utils.js +162 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.dist.tsbuildinfo +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { NodeStruct } from '../NodeStruct.js';
|
|
2
|
+
import { SharedNode } from '../SharedNode.js';
|
|
3
|
+
import type { Stage } from '../../../core/Stage.js';
|
|
4
|
+
import type { Texture } from '../../../core/textures/Texture.js';
|
|
5
|
+
import { CoreNode } from '../../../core/CoreNode.js';
|
|
6
|
+
export declare class ThreadXRendererNode extends SharedNode {
|
|
7
|
+
private stage;
|
|
8
|
+
protected coreNode: CoreNode;
|
|
9
|
+
protected _parent: ThreadXRendererNode | null;
|
|
10
|
+
protected _children: ThreadXRendererNode[];
|
|
11
|
+
texture: Texture | null;
|
|
12
|
+
private animationControllers;
|
|
13
|
+
constructor(stage: Stage, sharedNodeStruct: NodeStruct, coreNode?: CoreNode, extendedCurProps?: Record<string, unknown>);
|
|
14
|
+
onPropertyChange<Key extends keyof this['z$__type__Props']>(propName: Key, newValue: this['z$__type__Props'][Key], oldValue: this['z$__type__Props'][Key] | undefined): void;
|
|
15
|
+
get parent(): ThreadXRendererNode | null;
|
|
16
|
+
set parent(newParent: ThreadXRendererNode | null);
|
|
17
|
+
get children(): ThreadXRendererNode[];
|
|
18
|
+
private createCoreNode;
|
|
19
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
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
|
|
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 { SharedNode } from '../SharedNode.js';
|
|
20
|
+
import { ThreadX } from '@lightningjs/threadx';
|
|
21
|
+
import { assertTruthy } from '../../../utils.js';
|
|
22
|
+
import { CoreAnimation } from '../../../core/animations/CoreAnimation.js';
|
|
23
|
+
import { CoreAnimationController } from '../../../core/animations/CoreAnimationController.js';
|
|
24
|
+
import { CoreNode } from '../../../core/CoreNode.js';
|
|
25
|
+
export class ThreadXRendererNode extends SharedNode {
|
|
26
|
+
stage;
|
|
27
|
+
coreNode;
|
|
28
|
+
_parent = null;
|
|
29
|
+
_children = [];
|
|
30
|
+
texture = null;
|
|
31
|
+
animationControllers = new Map();
|
|
32
|
+
constructor(stage, sharedNodeStruct, coreNode, extendedCurProps) {
|
|
33
|
+
super(sharedNodeStruct, extendedCurProps);
|
|
34
|
+
this.stage = stage;
|
|
35
|
+
// This Proxy makes sure properties on the coreNode that an animation
|
|
36
|
+
// changes are also updated on the shared node.
|
|
37
|
+
// TODO: Improve this pattern because its ugly!!!
|
|
38
|
+
this.coreNode = new Proxy(coreNode || this.createCoreNode(stage, sharedNodeStruct), {
|
|
39
|
+
set: (target, prop, value) => {
|
|
40
|
+
// Only set the numeric properties on the shared node.
|
|
41
|
+
if (prop !== 'parent' && prop !== 'texture' && prop !== 'shader') {
|
|
42
|
+
Reflect.set(this, prop, value);
|
|
43
|
+
}
|
|
44
|
+
return Reflect.set(target, prop, value);
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
// Set up parent
|
|
48
|
+
const parent = ThreadX.instance.getSharedObjectById(sharedNodeStruct.parentId);
|
|
49
|
+
assertTruthy(parent instanceof ThreadXRendererNode || parent === null);
|
|
50
|
+
this.parent = parent;
|
|
51
|
+
// Create inbound event listeners
|
|
52
|
+
// TOOD: Make sure event listeners are removed when the node is destroyed.
|
|
53
|
+
this.on('createAnimation', (target, { id, props, settings }) => {
|
|
54
|
+
const animation = new CoreAnimation(this.coreNode, props, settings);
|
|
55
|
+
animation.on('finished', () => {
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
57
|
+
this.emit('animationFinished', {
|
|
58
|
+
id: id,
|
|
59
|
+
loop: settings.loop,
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
|
|
63
|
+
const controller = new CoreAnimationController(this.stage.animationManager, animation);
|
|
64
|
+
this.animationControllers.set(id, controller);
|
|
65
|
+
});
|
|
66
|
+
this.on('destroyAnimation', (target, { id }) => {
|
|
67
|
+
this.animationControllers.delete(id);
|
|
68
|
+
});
|
|
69
|
+
this.on('startAnimation', (target, { id }) => {
|
|
70
|
+
this.animationControllers.get(id)?.start();
|
|
71
|
+
});
|
|
72
|
+
this.on('stopAnimation', (target, { id }) => {
|
|
73
|
+
this.animationControllers.get(id)?.stop();
|
|
74
|
+
});
|
|
75
|
+
this.on('pauseAnimation', (target, { id }) => {
|
|
76
|
+
this.animationControllers.get(id)?.pause();
|
|
77
|
+
});
|
|
78
|
+
this.on('loadTexture', (target, textureDesc) => {
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
|
|
80
|
+
this.coreNode.loadTexture(textureDesc.txType, textureDesc.props, textureDesc.options);
|
|
81
|
+
});
|
|
82
|
+
this.on('loadShader', (target, shaderDesc) => {
|
|
83
|
+
this.coreNode.loadShader(shaderDesc.shType, shaderDesc.props);
|
|
84
|
+
});
|
|
85
|
+
this.on('unloadTexture', (target) => {
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
|
|
87
|
+
this.coreNode.unloadTexture();
|
|
88
|
+
});
|
|
89
|
+
// Forward on CoreNode events
|
|
90
|
+
this.coreNode.on('txLoaded', (target, dimensions) => {
|
|
91
|
+
this.emit('txLoaded', dimensions);
|
|
92
|
+
});
|
|
93
|
+
this.coreNode.on('txFailed', (target, error) => {
|
|
94
|
+
this.emit('txFailed', error);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
onPropertyChange(propName, newValue, oldValue) {
|
|
98
|
+
if (propName === 'parentId') {
|
|
99
|
+
const parent = ThreadX.instance.getSharedObjectById(newValue);
|
|
100
|
+
assertTruthy(parent instanceof ThreadXRendererNode || parent === null);
|
|
101
|
+
this.parent = parent;
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// @ts-expect-error Ignore readonly assignment errors
|
|
106
|
+
this.coreNode[propName] =
|
|
107
|
+
newValue;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//#region Parent/Child Props
|
|
111
|
+
get parent() {
|
|
112
|
+
return this._parent;
|
|
113
|
+
}
|
|
114
|
+
set parent(newParent) {
|
|
115
|
+
const oldParent = this._parent;
|
|
116
|
+
this._parent = newParent;
|
|
117
|
+
this.coreNode.parent = newParent?.coreNode ?? null;
|
|
118
|
+
this.parentId = newParent?.id ?? 0;
|
|
119
|
+
if (oldParent) {
|
|
120
|
+
const index = oldParent.children.indexOf(this);
|
|
121
|
+
assertTruthy(index !== -1, "ThreadXRendererNode.parent: Node not found in old parent's children!");
|
|
122
|
+
oldParent.children.splice(index, 1);
|
|
123
|
+
}
|
|
124
|
+
if (newParent) {
|
|
125
|
+
newParent.children.push(this);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
get children() {
|
|
129
|
+
return this._children;
|
|
130
|
+
}
|
|
131
|
+
//#endregion Parent/Child Props
|
|
132
|
+
createCoreNode(stage, sharedNodeStruct) {
|
|
133
|
+
const parent = ThreadX.instance.getSharedObjectById(sharedNodeStruct.parentId);
|
|
134
|
+
assertTruthy(parent instanceof ThreadXRendererNode || parent === null);
|
|
135
|
+
const node = new CoreNode(stage, {
|
|
136
|
+
id: sharedNodeStruct.id,
|
|
137
|
+
x: sharedNodeStruct.x,
|
|
138
|
+
y: sharedNodeStruct.y,
|
|
139
|
+
width: sharedNodeStruct.width,
|
|
140
|
+
height: sharedNodeStruct.height,
|
|
141
|
+
alpha: sharedNodeStruct.alpha,
|
|
142
|
+
color: sharedNodeStruct.color,
|
|
143
|
+
colorTop: sharedNodeStruct.colorTop,
|
|
144
|
+
colorBottom: sharedNodeStruct.colorBottom,
|
|
145
|
+
colorLeft: sharedNodeStruct.colorLeft,
|
|
146
|
+
colorRight: sharedNodeStruct.colorRight,
|
|
147
|
+
colorTl: sharedNodeStruct.colorTl,
|
|
148
|
+
colorTr: sharedNodeStruct.colorTr,
|
|
149
|
+
colorBl: sharedNodeStruct.colorBl,
|
|
150
|
+
colorBr: sharedNodeStruct.colorBr,
|
|
151
|
+
zIndex: sharedNodeStruct.zIndex,
|
|
152
|
+
zIndexLocked: sharedNodeStruct.zIndexLocked,
|
|
153
|
+
scale: sharedNodeStruct.scale,
|
|
154
|
+
mount: sharedNodeStruct.mount,
|
|
155
|
+
mountX: sharedNodeStruct.mountX,
|
|
156
|
+
mountY: sharedNodeStruct.mountY,
|
|
157
|
+
pivot: sharedNodeStruct.pivot,
|
|
158
|
+
pivotX: sharedNodeStruct.pivotX,
|
|
159
|
+
pivotY: sharedNodeStruct.pivotY,
|
|
160
|
+
rotation: sharedNodeStruct.rotation,
|
|
161
|
+
// These are passed in via message handlers
|
|
162
|
+
shader: null,
|
|
163
|
+
shaderProps: null,
|
|
164
|
+
texture: null,
|
|
165
|
+
textureOptions: null,
|
|
166
|
+
// Setup the parent after
|
|
167
|
+
parent: null,
|
|
168
|
+
});
|
|
169
|
+
return node;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=ThreadXRendererNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadXRendererNode.js","sourceRoot":"","sources":["../../../../../src/render-drivers/threadx/worker/ThreadXRendererNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CoreTextNode } from '../../../core/CoreTextNode.js';
|
|
2
|
+
import type { Stage } from '../../../core/Stage.js';
|
|
3
|
+
import type { TextNodeStruct, TextNodeStructWritableProps } from '../TextNodeStruct.js';
|
|
4
|
+
import { ThreadXRendererNode } from './ThreadXRendererNode.js';
|
|
5
|
+
export declare class ThreadXRendererTextNode extends ThreadXRendererNode {
|
|
6
|
+
coreNode: CoreTextNode;
|
|
7
|
+
z$__type__Props: TextNodeStructWritableProps & ThreadXRendererNode['z$__type__Props'];
|
|
8
|
+
constructor(stage: Stage, sharedNodeStruct: TextNodeStruct);
|
|
9
|
+
text: TextNodeStructWritableProps['text'];
|
|
10
|
+
textRendererOverride: TextNodeStructWritableProps['textRendererOverride'];
|
|
11
|
+
fontSize: TextNodeStructWritableProps['fontSize'];
|
|
12
|
+
fontFamily: TextNodeStructWritableProps['fontFamily'];
|
|
13
|
+
fontWeight: TextNodeStructWritableProps['fontWeight'];
|
|
14
|
+
fontStretch: TextNodeStructWritableProps['fontStretch'];
|
|
15
|
+
fontStyle: TextNodeStructWritableProps['fontStyle'];
|
|
16
|
+
contain: TextNodeStructWritableProps['contain'];
|
|
17
|
+
letterSpacing: TextNodeStructWritableProps['letterSpacing'];
|
|
18
|
+
offsetY: TextNodeStructWritableProps['offsetY'];
|
|
19
|
+
textAlign: TextNodeStructWritableProps['textAlign'];
|
|
20
|
+
scrollable: TextNodeStructWritableProps['scrollable'];
|
|
21
|
+
scrollY: TextNodeStructWritableProps['scrollY'];
|
|
22
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
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
|
|
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 { CoreTextNode } from '../../../core/CoreTextNode.js';
|
|
20
|
+
import { ThreadXRendererNode } from './ThreadXRendererNode.js';
|
|
21
|
+
export class ThreadXRendererTextNode extends ThreadXRendererNode {
|
|
22
|
+
constructor(stage, sharedNodeStruct) {
|
|
23
|
+
super(stage, sharedNodeStruct, new CoreTextNode(stage, {
|
|
24
|
+
id: sharedNodeStruct.id,
|
|
25
|
+
// It doesn't matter what these are initially. They will be reset
|
|
26
|
+
// appropriately via the onPropertyChange() calls below and in the
|
|
27
|
+
// ThreadXRendererNode constructor.
|
|
28
|
+
x: sharedNodeStruct.x,
|
|
29
|
+
y: sharedNodeStruct.y,
|
|
30
|
+
width: sharedNodeStruct.width,
|
|
31
|
+
height: sharedNodeStruct.height,
|
|
32
|
+
alpha: sharedNodeStruct.alpha,
|
|
33
|
+
color: sharedNodeStruct.color,
|
|
34
|
+
colorTop: sharedNodeStruct.colorTop,
|
|
35
|
+
colorBottom: sharedNodeStruct.colorBottom,
|
|
36
|
+
colorLeft: sharedNodeStruct.colorLeft,
|
|
37
|
+
colorRight: sharedNodeStruct.colorRight,
|
|
38
|
+
colorTl: sharedNodeStruct.colorTl,
|
|
39
|
+
colorTr: sharedNodeStruct.colorTr,
|
|
40
|
+
colorBl: sharedNodeStruct.colorBl,
|
|
41
|
+
colorBr: sharedNodeStruct.colorBr,
|
|
42
|
+
zIndex: sharedNodeStruct.zIndex,
|
|
43
|
+
zIndexLocked: sharedNodeStruct.zIndexLocked,
|
|
44
|
+
mount: sharedNodeStruct.mount,
|
|
45
|
+
mountX: sharedNodeStruct.mountX,
|
|
46
|
+
mountY: sharedNodeStruct.mountY,
|
|
47
|
+
pivot: sharedNodeStruct.pivot,
|
|
48
|
+
pivotX: sharedNodeStruct.pivotX,
|
|
49
|
+
pivotY: sharedNodeStruct.pivotY,
|
|
50
|
+
scale: sharedNodeStruct.scale,
|
|
51
|
+
rotation: sharedNodeStruct.rotation,
|
|
52
|
+
// These are passed in via message handlers
|
|
53
|
+
shader: null,
|
|
54
|
+
shaderProps: null,
|
|
55
|
+
texture: null,
|
|
56
|
+
textureOptions: null,
|
|
57
|
+
// Setup the parent after
|
|
58
|
+
parent: null,
|
|
59
|
+
// Text properties
|
|
60
|
+
text: sharedNodeStruct.text,
|
|
61
|
+
textRendererOverride: sharedNodeStruct.textRendererOverride,
|
|
62
|
+
fontSize: sharedNodeStruct.fontSize,
|
|
63
|
+
fontFamily: sharedNodeStruct.fontFamily,
|
|
64
|
+
fontWeight: sharedNodeStruct.fontWeight,
|
|
65
|
+
fontStretch: sharedNodeStruct.fontStretch,
|
|
66
|
+
fontStyle: sharedNodeStruct.fontStyle,
|
|
67
|
+
contain: sharedNodeStruct.contain,
|
|
68
|
+
letterSpacing: sharedNodeStruct.letterSpacing,
|
|
69
|
+
offsetY: sharedNodeStruct.offsetY,
|
|
70
|
+
textAlign: sharedNodeStruct.textAlign,
|
|
71
|
+
scrollable: sharedNodeStruct.scrollable,
|
|
72
|
+
scrollY: sharedNodeStruct.scrollY,
|
|
73
|
+
debug: {},
|
|
74
|
+
}), {
|
|
75
|
+
text: sharedNodeStruct.text,
|
|
76
|
+
textRendererOverride: sharedNodeStruct.textRendererOverride,
|
|
77
|
+
fontSize: sharedNodeStruct.fontSize,
|
|
78
|
+
fontFamily: sharedNodeStruct.fontFamily,
|
|
79
|
+
fontWeight: sharedNodeStruct.fontWeight,
|
|
80
|
+
fontStretch: sharedNodeStruct.fontStretch,
|
|
81
|
+
fontStyle: sharedNodeStruct.fontStyle,
|
|
82
|
+
contain: sharedNodeStruct.contain,
|
|
83
|
+
letterSpacing: sharedNodeStruct.letterSpacing,
|
|
84
|
+
offsetY: sharedNodeStruct.offsetY,
|
|
85
|
+
textAlign: sharedNodeStruct.textAlign,
|
|
86
|
+
scrollable: sharedNodeStruct.scrollable,
|
|
87
|
+
scrollY: sharedNodeStruct.scrollY,
|
|
88
|
+
});
|
|
89
|
+
// Forward on CoreNode events
|
|
90
|
+
this.coreNode.on('textLoaded', (target, dimensions) => {
|
|
91
|
+
this.emit('textLoaded', dimensions);
|
|
92
|
+
});
|
|
93
|
+
this.coreNode.on('textFailed', (target, error) => {
|
|
94
|
+
this.emit('textFailed', error);
|
|
95
|
+
});
|
|
96
|
+
this.on('debug', (target, debug) => {
|
|
97
|
+
this.coreNode.debug = debug;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=ThreadXRendererTextNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadXRendererTextNode.js","sourceRoot":"","sources":["../../../../../src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
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
|
|
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 { ThreadX, BufferStruct } from '@lightningjs/threadx';
|
|
20
|
+
import { NodeStruct } from '../NodeStruct.js';
|
|
21
|
+
import { ThreadXRendererNode } from './ThreadXRendererNode.js';
|
|
22
|
+
import { Stage } from '../../../core/Stage.js';
|
|
23
|
+
import { assertTruthy } from '../../../utils.js';
|
|
24
|
+
import { isThreadXRendererMessage, } from '../ThreadXRendererMessage.js';
|
|
25
|
+
import { TextNodeStruct } from '../TextNodeStruct.js';
|
|
26
|
+
import { ThreadXRendererTextNode } from './ThreadXRendererTextNode.js';
|
|
27
|
+
import { loadCoreExtension } from '../../utils.js';
|
|
28
|
+
let canvas = null;
|
|
29
|
+
let stage = null;
|
|
30
|
+
let rootNode = null;
|
|
31
|
+
const threadx = ThreadX.init({
|
|
32
|
+
workerId: 2,
|
|
33
|
+
workerName: 'renderer',
|
|
34
|
+
sharedObjectFactory(buffer) {
|
|
35
|
+
const typeId = BufferStruct.extractTypeId(buffer);
|
|
36
|
+
if (typeId === NodeStruct.typeId) {
|
|
37
|
+
const nodeStruct = new NodeStruct(buffer);
|
|
38
|
+
nodeStruct.parentId = nodeStruct.parentId || 0;
|
|
39
|
+
const node = nodeStruct.lock(() => {
|
|
40
|
+
assertTruthy(stage);
|
|
41
|
+
return new ThreadXRendererNode(stage, nodeStruct);
|
|
42
|
+
});
|
|
43
|
+
return node;
|
|
44
|
+
}
|
|
45
|
+
else if (typeId === TextNodeStruct.typeId) {
|
|
46
|
+
const nodeStruct = new TextNodeStruct(buffer);
|
|
47
|
+
nodeStruct.parentId = nodeStruct.parentId || 0;
|
|
48
|
+
const node = nodeStruct.lock(() => {
|
|
49
|
+
assertTruthy(stage);
|
|
50
|
+
return new ThreadXRendererTextNode(stage, nodeStruct);
|
|
51
|
+
});
|
|
52
|
+
return node;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
},
|
|
56
|
+
async onMessage(message) {
|
|
57
|
+
if (isThreadXRendererMessage('init', message)) {
|
|
58
|
+
canvas = message.canvas;
|
|
59
|
+
const nodeStruct = new NodeStruct();
|
|
60
|
+
stage = new Stage({
|
|
61
|
+
rootId: nodeStruct.id,
|
|
62
|
+
appWidth: message.appWidth,
|
|
63
|
+
appHeight: message.appHeight,
|
|
64
|
+
deviceLogicalPixelRatio: message.deviceLogicalPixelRatio,
|
|
65
|
+
devicePhysicalPixelRatio: message.devicePhysicalPixelRatio,
|
|
66
|
+
clearColor: message.clearColor,
|
|
67
|
+
canvas,
|
|
68
|
+
debug: {
|
|
69
|
+
monitorTextureCache: false,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
const coreRootNode = stage.root;
|
|
73
|
+
// We must initialize the root NodeStruct with the same properties from
|
|
74
|
+
// the CoreNode that the Stage created.
|
|
75
|
+
Object.assign(nodeStruct, {
|
|
76
|
+
x: coreRootNode.x,
|
|
77
|
+
y: coreRootNode.y,
|
|
78
|
+
width: coreRootNode.width,
|
|
79
|
+
height: coreRootNode.height,
|
|
80
|
+
alpha: coreRootNode.alpha,
|
|
81
|
+
color: coreRootNode.color,
|
|
82
|
+
colorTop: coreRootNode.colorTop,
|
|
83
|
+
colorRight: coreRootNode.colorRight,
|
|
84
|
+
colorBottom: coreRootNode.colorBottom,
|
|
85
|
+
colorLeft: coreRootNode.colorLeft,
|
|
86
|
+
colorTl: coreRootNode.colorTl,
|
|
87
|
+
colorTr: coreRootNode.colorTr,
|
|
88
|
+
colorBr: coreRootNode.colorBr,
|
|
89
|
+
colorBl: coreRootNode.colorBl,
|
|
90
|
+
parentId: coreRootNode.parent?.id ?? 0,
|
|
91
|
+
zIndex: coreRootNode.zIndex,
|
|
92
|
+
zIndexLocked: coreRootNode.zIndexLocked,
|
|
93
|
+
scale: coreRootNode.scale,
|
|
94
|
+
mount: coreRootNode.mount,
|
|
95
|
+
mountX: coreRootNode.mountX,
|
|
96
|
+
mountY: coreRootNode.mountY,
|
|
97
|
+
pivot: coreRootNode.pivot,
|
|
98
|
+
pivotX: coreRootNode.pivotX,
|
|
99
|
+
pivotY: coreRootNode.pivotY,
|
|
100
|
+
rotation: coreRootNode.rotation,
|
|
101
|
+
});
|
|
102
|
+
// Share the root node that was created by the Stage with the main worker.
|
|
103
|
+
rootNode = new ThreadXRendererNode(stage, nodeStruct, coreRootNode);
|
|
104
|
+
await threadx.shareObjects('parent', [rootNode]);
|
|
105
|
+
// Load the Core Extension Module if one was specified.
|
|
106
|
+
if (message.coreExtensionModule) {
|
|
107
|
+
await loadCoreExtension(message.coreExtensionModule, stage);
|
|
108
|
+
}
|
|
109
|
+
// Return its ID so the main worker can retrieve it from the shared object
|
|
110
|
+
// store.
|
|
111
|
+
return rootNode.id;
|
|
112
|
+
}
|
|
113
|
+
else if (isThreadXRendererMessage('releaseTexture', message)) {
|
|
114
|
+
assertTruthy(stage);
|
|
115
|
+
const txManager = stage.txManager;
|
|
116
|
+
assertTruthy(txManager);
|
|
117
|
+
txManager.removeTextureIdFromCache(message.textureDescId);
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
onObjectShared(object) {
|
|
121
|
+
// TBD
|
|
122
|
+
},
|
|
123
|
+
onBeforeObjectForgotten(object) {
|
|
124
|
+
if (object instanceof ThreadXRendererNode) {
|
|
125
|
+
object.parent = null;
|
|
126
|
+
object.destroy();
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../../../src/render-drivers/threadx/worker/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CoreExtension } from '../../exports/core-api.js';
|
|
2
|
+
import type { Stage } from '../core/Stage.js';
|
|
3
|
+
/**
|
|
4
|
+
* Type guard that checks if a Class extends CoreExtension.
|
|
5
|
+
*
|
|
6
|
+
* @param Class
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare function classExtendsCoreExtension(Class: unknown): Class is new () => CoreExtension;
|
|
10
|
+
export declare function loadCoreExtension(coreExtensionModule: string, stage: Stage): Promise<void>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CoreExtension } from '../../exports/core-api.js';
|
|
2
|
+
/**
|
|
3
|
+
* Type guard that checks if a Class extends CoreExtension.
|
|
4
|
+
*
|
|
5
|
+
* @param Class
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export function classExtendsCoreExtension(Class) {
|
|
9
|
+
return Class.prototype instanceof CoreExtension;
|
|
10
|
+
}
|
|
11
|
+
export async function loadCoreExtension(coreExtensionModule, stage) {
|
|
12
|
+
let module;
|
|
13
|
+
try {
|
|
14
|
+
console.log('Loading core extension', coreExtensionModule);
|
|
15
|
+
module = (await import(coreExtensionModule /* @vite-ignore */));
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
console.error(`The core extension module at '${coreExtensionModule}' could not be loaded.`);
|
|
19
|
+
console.error(e);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (!module.default) {
|
|
23
|
+
console.error(`The core extension module at '${coreExtensionModule}' does not have a default export.`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const ExtensionClass = module.default;
|
|
27
|
+
if (classExtendsCoreExtension(ExtensionClass)) {
|
|
28
|
+
const coreExtension = new ExtensionClass();
|
|
29
|
+
try {
|
|
30
|
+
await coreExtension.run(stage);
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
console.error(`The core extension at '${coreExtensionModule}' threw an error.`);
|
|
34
|
+
console.error(e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
console.error(`The core extension at '${coreExtensionModule}' does not extend CoreExtension.`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/render-drivers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAc;IAEd,OAAQ,KAA8B,CAAC,SAAS,YAAY,aAAa,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,mBAA2B,EAC3B,KAAY;IAEZ,IAAI,MAEH,CAAC;IACF,IAAI;QACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,CAAC;QAC3D,MAAM,GAAG,CAAC,MAAM,MAAM,CACpB,mBAAmB,CAAC,kBAAkB,CACvC,CAAkB,CAAC;KACrB;IAAC,OAAO,CAAU,EAAE;QACnB,OAAO,CAAC,KAAK,CACX,iCAAiC,mBAAmB,wBAAwB,CAC7E,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO;KACR;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,OAAO,CAAC,KAAK,CACX,iCAAiC,mBAAmB,mCAAmC,CACxF,CAAC;QACF,OAAO;KACR;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;IACtC,IAAI,yBAAyB,CAAC,cAAc,CAAC,EAAE;QAC7C,MAAM,aAAa,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI;YACF,MAAM,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChC;QAAC,OAAO,CAAU,EAAE;YACnB,OAAO,CAAC,KAAK,CACX,0BAA0B,mBAAmB,mBAAmB,CACjE,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClB;KACF;SAAM;QACL,OAAO,CAAC,KAAK,CACX,0BAA0B,mBAAmB,kCAAkC,CAChF,CAAC;KACH;AACH,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export declare const boltProperties: string[];
|
|
2
|
+
export declare const pipelineEvents: {
|
|
3
|
+
created: number;
|
|
4
|
+
updated: number;
|
|
5
|
+
deleted: number;
|
|
6
|
+
attached: number;
|
|
7
|
+
detached: number;
|
|
8
|
+
onscreen: number;
|
|
9
|
+
offscreen: number;
|
|
10
|
+
progress: number;
|
|
11
|
+
finished: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function createWebGLContext(canvas: HTMLCanvasElement | OffscreenCanvas): WebGLRenderingContext | null;
|
|
14
|
+
/**
|
|
15
|
+
* Asserts a condition is truthy, otherwise throws an error
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* Useful at the top of functions to ensure certain conditions, arguments and
|
|
19
|
+
* properties are set/met before continuing. When using this function,
|
|
20
|
+
* TypeScript will narrow away falsy types from the condition.
|
|
21
|
+
*
|
|
22
|
+
* @param condition
|
|
23
|
+
* @param message
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export declare function assertTruthy(condition: unknown, message?: string): asserts condition;
|
|
27
|
+
/**
|
|
28
|
+
* Merges two colors based on a given progress value.
|
|
29
|
+
*
|
|
30
|
+
* This function takes two colors (c1 and c2) represented as 32-bit integers
|
|
31
|
+
* in RGBA format and blends them based on the provided progress value (p).
|
|
32
|
+
* The result is a new color that is a weighted combination of the input colors,
|
|
33
|
+
* where the weight is determined by the progress value.
|
|
34
|
+
*
|
|
35
|
+
* @param {number} c1 - The first color in RGBA format (32-bit integer).
|
|
36
|
+
* @param {number} c2 - The second color in RGBA format (32-bit integer).
|
|
37
|
+
* @param {number} p - The progress value between 0 and 1.
|
|
38
|
+
* @returns {number} The merged color as a 32-bit integer in RGBA format.
|
|
39
|
+
*/
|
|
40
|
+
export declare function mergeColorProgress(rgba1: number, rgba2: number, p: number): number;
|
|
41
|
+
/**
|
|
42
|
+
* Given an RGBA encoded number, returns back the RGBA number with it's alpha
|
|
43
|
+
* component multiplied by the passed `alpha` parameter.
|
|
44
|
+
*
|
|
45
|
+
* @internalRemarks
|
|
46
|
+
* This method does NOT premultiply the alpha into the color channels. If that
|
|
47
|
+
* is required (for internal use only) use {@link mergeColorAlphaPremultiplied}
|
|
48
|
+
* instead.
|
|
49
|
+
*
|
|
50
|
+
* @param rgba RGBA encoded number
|
|
51
|
+
* @param alpha Normalized alpha value (Range: 0.0 - 1.0)
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
export declare function mergeColorAlpha(rgba: number, alpha: number): number;
|
|
55
|
+
/**
|
|
56
|
+
* Given an RGBA encoded number, returns back the RGBA number with it's alpha
|
|
57
|
+
* component multiplied by the passed `alpha` parameter. Before returning, the
|
|
58
|
+
* final alpha value is multiplied into the color channels.
|
|
59
|
+
*
|
|
60
|
+
* @remarks
|
|
61
|
+
* If `flipEndianess` is set to true, the function will returned an ABGR encoded number
|
|
62
|
+
* which is useful when the color value needs to be passed into a shader attribute.
|
|
63
|
+
*
|
|
64
|
+
* NOTE: This method returns a PREMULTIPLIED alpha color which is generally only useful
|
|
65
|
+
* in the context of the internal rendering process. Use {@link mergeColorAlpha} if you
|
|
66
|
+
* need to blend an alpha value into a color in the context of the Renderer's
|
|
67
|
+
* public API.
|
|
68
|
+
*
|
|
69
|
+
* @internalRemarks
|
|
70
|
+
* Do not expose this method in the public API because Renderer users should instead use
|
|
71
|
+
* {@link mergeColorAlpha} to manipulate the alpha value of a color.
|
|
72
|
+
*
|
|
73
|
+
* @internal
|
|
74
|
+
* @param rgba RGBA encoded number
|
|
75
|
+
* @param alpha Normalized alpha value (Range: 0.0 - 1.0)
|
|
76
|
+
* @param flipEndianess Flip the endianess. RGBA becomes encoded as ABGR (for inserting colors into shader attributes)
|
|
77
|
+
* @returns
|
|
78
|
+
*/
|
|
79
|
+
export declare function mergeColorAlphaPremultiplied(rgba: number, alpha: number, flipEndianess?: boolean): number;
|