@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,21 @@
|
|
|
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
|
+
export class FontShaper {
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=FontShaper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FontShaper.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA4GH,MAAM,OAAgB,UAAU;CAa/B"}
|
package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { PeekableIterator } from '../../../renderers/SdfTextRenderer/internal/PeekableGenerator.js';
|
|
2
|
+
import { FontShaper, type FontShaperProps, type MappedGlyphInfo, type UnmappedCharacterInfo } from './FontShaper.js';
|
|
3
|
+
export declare class SdfFontShaper extends FontShaper {
|
|
4
|
+
private readonly data;
|
|
5
|
+
private readonly kernings;
|
|
6
|
+
constructor(data: SdfFontData);
|
|
7
|
+
shapeText(props: FontShaperProps, codepoints: PeekableIterator<number>): Generator<MappedGlyphInfo | UnmappedCharacterInfo, void>;
|
|
8
|
+
}
|
|
9
|
+
export interface SdfFontData {
|
|
10
|
+
pages: string[];
|
|
11
|
+
chars: Array<{
|
|
12
|
+
id: number;
|
|
13
|
+
char: string;
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
xoffset: number;
|
|
19
|
+
yoffset: number;
|
|
20
|
+
xadvance: number;
|
|
21
|
+
page: number;
|
|
22
|
+
chnl: number;
|
|
23
|
+
}>;
|
|
24
|
+
kernings: Array<{
|
|
25
|
+
first: number;
|
|
26
|
+
second: number;
|
|
27
|
+
amount: number;
|
|
28
|
+
}>;
|
|
29
|
+
info: {
|
|
30
|
+
face: string;
|
|
31
|
+
size: number;
|
|
32
|
+
bold: number;
|
|
33
|
+
italic: number;
|
|
34
|
+
charset: string[];
|
|
35
|
+
unicode: number;
|
|
36
|
+
stretchH: number;
|
|
37
|
+
smooth: number;
|
|
38
|
+
aa: number;
|
|
39
|
+
padding: [number, number, number, number];
|
|
40
|
+
spacing: [number, number];
|
|
41
|
+
outline: number;
|
|
42
|
+
};
|
|
43
|
+
common: {
|
|
44
|
+
lineHeight: number;
|
|
45
|
+
base: number;
|
|
46
|
+
scaleW: number;
|
|
47
|
+
scaleH: number;
|
|
48
|
+
pages: number;
|
|
49
|
+
packed: number;
|
|
50
|
+
alphaChnl: number;
|
|
51
|
+
redChnl: number;
|
|
52
|
+
greenChnl: number;
|
|
53
|
+
blueChnl: number;
|
|
54
|
+
};
|
|
55
|
+
distanceField: {
|
|
56
|
+
fieldType: 'sdf' | 'msdf';
|
|
57
|
+
distanceRange: number;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 { SpecialCodepoints } from '../../../renderers/SdfTextRenderer/internal/SpecialCodepoints.js';
|
|
20
|
+
import { FontShaper, } from './FontShaper.js';
|
|
21
|
+
export class SdfFontShaper extends FontShaper {
|
|
22
|
+
data;
|
|
23
|
+
kernings;
|
|
24
|
+
constructor(data) {
|
|
25
|
+
super();
|
|
26
|
+
this.data = data;
|
|
27
|
+
const kernings = (this.kernings = {});
|
|
28
|
+
data.kernings.forEach((kerning) => {
|
|
29
|
+
const second = kerning.second;
|
|
30
|
+
const firsts = (kernings[second] = kernings[second] || {});
|
|
31
|
+
firsts[kerning.first] = kerning.amount;
|
|
32
|
+
});
|
|
33
|
+
this.kernings = kernings;
|
|
34
|
+
}
|
|
35
|
+
*shapeText(props, codepoints) {
|
|
36
|
+
let codepointResult;
|
|
37
|
+
let lastGlyphId = undefined;
|
|
38
|
+
while ((codepointResult = codepoints.peek()) && !codepointResult.done) {
|
|
39
|
+
const codepoint = codepointResult.value;
|
|
40
|
+
const glyph = this.data.chars.find((char) => char.id === codepoint);
|
|
41
|
+
codepoints.next();
|
|
42
|
+
if (glyph !== undefined) {
|
|
43
|
+
// We found a glyph for this codepoint
|
|
44
|
+
// Yield the mapped glyph info
|
|
45
|
+
/**
|
|
46
|
+
* Kerning includes any possible additional letter spacing
|
|
47
|
+
*/
|
|
48
|
+
const kerning = lastGlyphId !== undefined
|
|
49
|
+
? (this.kernings[glyph.id]?.[lastGlyphId] || 0) +
|
|
50
|
+
props.letterSpacing
|
|
51
|
+
: 0;
|
|
52
|
+
lastGlyphId = glyph.id;
|
|
53
|
+
yield {
|
|
54
|
+
mapped: true,
|
|
55
|
+
glyphId: glyph.id,
|
|
56
|
+
codepoint,
|
|
57
|
+
cluster: codepoints.lastIndex,
|
|
58
|
+
xAdvance: glyph.xadvance + kerning,
|
|
59
|
+
yAdvance: 0,
|
|
60
|
+
xOffset: glyph.xoffset + kerning,
|
|
61
|
+
yOffset: glyph.yoffset,
|
|
62
|
+
xBearing: 0,
|
|
63
|
+
yBearing: 0,
|
|
64
|
+
width: glyph.width,
|
|
65
|
+
height: glyph.height,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// We didn't find a glyph for this codepoint
|
|
70
|
+
// Yield the unmapped codepoint info
|
|
71
|
+
// If this codepoint is a linebreak, we should reset the last glyph id
|
|
72
|
+
// so that the next glyph will not be kerned with the last glyph of the
|
|
73
|
+
// previous line.
|
|
74
|
+
if (codepoint === SpecialCodepoints.LINE_FEED) {
|
|
75
|
+
lastGlyphId = undefined;
|
|
76
|
+
}
|
|
77
|
+
yield {
|
|
78
|
+
mapped: false,
|
|
79
|
+
codepoint,
|
|
80
|
+
cluster: codepoints.lastIndex,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=SdfFontShaper.js.map
|
package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdfFontShaper.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AACrG,OAAO,EACL,UAAU,GAIX,MAAM,iBAAiB,CAAC;AAUzB,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC1B,IAAI,CAAc;IAClB,QAAQ,CAAe;IAExC,YAAY,IAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,QAAQ,GAAiB,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,CAAC,SAAS,CACR,KAAsB,EACtB,UAAoC;QAEpC,IAAI,eAAuC,CAAC;QAC5C,IAAI,WAAW,GAAuB,SAAS,CAAC;QAChD,OAAO,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;YACrE,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YACpE,UAAU,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,sCAAsC;gBACtC,8BAA8B;gBAE9B;;mBAEG;gBACH,MAAM,OAAO,GACX,WAAW,KAAK,SAAS;oBACvB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBAC7C,KAAK,CAAC,aAAa;oBACrB,CAAC,CAAC,CAAC,CAAC;gBAER,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM;oBACJ,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,SAAS;oBACT,OAAO,EAAE,UAAU,CAAC,SAAS;oBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO;oBAClC,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO;oBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC;aACH;iBAAM;gBACL,4CAA4C;gBAC5C,oCAAoC;gBAEpC,sEAAsE;gBACtE,uEAAuE;gBACvE,iBAAiB;gBACjB,IAAI,SAAS,KAAK,iBAAiB,CAAC,SAAS,EAAE;oBAC7C,WAAW,GAAG,SAAS,CAAC;iBACzB;gBACD,MAAM;oBACJ,MAAM,EAAE,KAAK;oBACb,SAAS;oBACT,OAAO,EAAE,UAAU,CAAC,SAAS;iBAC9B,CAAC;aACH;SACF;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { EventEmitter } from '../../../common/EventEmitter.js';
|
|
2
|
+
/**
|
|
3
|
+
* Augmentable map of font type IDs to font types
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* declare module './TrFontFace' {
|
|
8
|
+
* interface TrFontFaceMap {
|
|
9
|
+
* canvas: CanvasTrFontFace;
|
|
10
|
+
* }
|
|
11
|
+
* }
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export interface TrFontFaceMap {
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Descriptors defining a font face.
|
|
18
|
+
*
|
|
19
|
+
* Used when selecting a font face from a font family.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* Based on the `@font-face` CSS rule. Not all descriptors are supported by all
|
|
23
|
+
* text renderers.
|
|
24
|
+
*
|
|
25
|
+
* @see https://www.w3.org/TR/css-fonts-3/#font-face-rule
|
|
26
|
+
*/
|
|
27
|
+
export interface TrFontFaceDescriptors {
|
|
28
|
+
style: 'normal' | 'italic' | 'oblique';
|
|
29
|
+
weight: 'normal' | 'bold' | number;
|
|
30
|
+
stretch: 'normal' | 'ultra-condensed' | 'extra-condensed' | 'condensed' | 'semi-condensed' | 'semi-expanded' | 'expanded' | 'extra-expanded' | 'ultra-expanded';
|
|
31
|
+
unicodeRange?: string;
|
|
32
|
+
display?: FontDisplay;
|
|
33
|
+
featureSettings?: string;
|
|
34
|
+
variant?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare class TrFontFace extends EventEmitter {
|
|
37
|
+
readonly fontFamily: string;
|
|
38
|
+
readonly descriptors: TrFontFaceDescriptors;
|
|
39
|
+
readonly loaded: boolean;
|
|
40
|
+
constructor(fontFamily: string, descriptors: Partial<TrFontFaceDescriptors>);
|
|
41
|
+
/**
|
|
42
|
+
* Convert a TrFontFaceDescriptors to a FontFaceDescriptors which differ slightly
|
|
43
|
+
*
|
|
44
|
+
* @param descriptors
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
47
|
+
static convertToCssFontFaceDescriptors(descriptors: TrFontFaceDescriptors): FontFaceDescriptors;
|
|
48
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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 { EventEmitter } from '../../../common/EventEmitter.js';
|
|
20
|
+
export class TrFontFace extends EventEmitter {
|
|
21
|
+
fontFamily;
|
|
22
|
+
descriptors;
|
|
23
|
+
loaded = false;
|
|
24
|
+
constructor(fontFamily, descriptors) {
|
|
25
|
+
super();
|
|
26
|
+
this.fontFamily = fontFamily;
|
|
27
|
+
this.descriptors = {
|
|
28
|
+
style: 'normal',
|
|
29
|
+
weight: 'normal',
|
|
30
|
+
stretch: 'normal',
|
|
31
|
+
...descriptors,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Convert a TrFontFaceDescriptors to a FontFaceDescriptors which differ slightly
|
|
36
|
+
*
|
|
37
|
+
* @param descriptors
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
static convertToCssFontFaceDescriptors(descriptors) {
|
|
41
|
+
return {
|
|
42
|
+
style: descriptors.style,
|
|
43
|
+
weight: typeof descriptors.weight === 'number'
|
|
44
|
+
? `${descriptors.weight}`
|
|
45
|
+
: descriptors.weight,
|
|
46
|
+
stretch: descriptors.stretch,
|
|
47
|
+
unicodeRange: descriptors.unicodeRange,
|
|
48
|
+
variant: descriptors.variant,
|
|
49
|
+
featureSettings: descriptors.featureSettings,
|
|
50
|
+
display: descriptors.display,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=TrFontFace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrFontFace.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/font-face-types/TrFontFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AA+C/D,MAAM,OAAO,UAAW,SAAQ,YAAY;IAC1B,UAAU,CAAS;IACnB,WAAW,CAAwB;IACnC,MAAM,GAAY,KAAK,CAAC;IAExC,YAAY,UAAkB,EAAE,WAA2C;QACzE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,QAAQ;YACjB,GAAG,WAAW;SACf,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,+BAA+B,CAC3C,WAAkC;QAElC,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,MAAM,EACJ,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ;gBACpC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE;gBACzB,CAAC,CAAC,WAAW,CAAC,MAAM;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TrFontFace, type TrFontFaceDescriptors } from './TrFontFace.js';
|
|
2
|
+
declare module './TrFontFace.js' {
|
|
3
|
+
interface TrFontFaceMap {
|
|
4
|
+
web: WebTrFontFace;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export declare class WebTrFontFace extends TrFontFace {
|
|
8
|
+
readonly fontFace: FontFace;
|
|
9
|
+
readonly fontUrl: string;
|
|
10
|
+
constructor(fontFamily: string, descriptors: Partial<TrFontFaceDescriptors>, fontUrl: string);
|
|
11
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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 { TrFontFace } from './TrFontFace.js';
|
|
20
|
+
export class WebTrFontFace extends TrFontFace {
|
|
21
|
+
fontFace;
|
|
22
|
+
fontUrl;
|
|
23
|
+
constructor(fontFamily, descriptors, fontUrl) {
|
|
24
|
+
super(fontFamily, descriptors);
|
|
25
|
+
// Filter out parentheses from fontUrl
|
|
26
|
+
const fontUrlWithoutParentheses = fontUrl.replace(/\(|\)/g, '');
|
|
27
|
+
// Defaults for descriptors resolved in the super constructor
|
|
28
|
+
const determinedDescriptors = this.descriptors;
|
|
29
|
+
// Convert TrFontFaceDescriptors to CSS FontFaceDescriptors
|
|
30
|
+
const cssDescriptors = {
|
|
31
|
+
style: determinedDescriptors.style,
|
|
32
|
+
weight: typeof determinedDescriptors.weight === 'number'
|
|
33
|
+
? `${determinedDescriptors.weight}`
|
|
34
|
+
: determinedDescriptors.weight,
|
|
35
|
+
stretch: determinedDescriptors.stretch,
|
|
36
|
+
unicodeRange: determinedDescriptors.unicodeRange,
|
|
37
|
+
variant: determinedDescriptors.variant,
|
|
38
|
+
featureSettings: determinedDescriptors.featureSettings,
|
|
39
|
+
display: determinedDescriptors.display,
|
|
40
|
+
};
|
|
41
|
+
const fontFace = new FontFace(fontFamily, `url(${fontUrlWithoutParentheses})`, cssDescriptors);
|
|
42
|
+
fontFace
|
|
43
|
+
.load()
|
|
44
|
+
.then(() => {
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
46
|
+
this.loaded = true;
|
|
47
|
+
this.emit('loaded');
|
|
48
|
+
})
|
|
49
|
+
.catch(console.error);
|
|
50
|
+
this.fontFace = fontFace;
|
|
51
|
+
this.fontUrl = fontUrl;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=WebTrFontFace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebTrFontFace.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/font-face-types/WebTrFontFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAA8B,MAAM,iBAAiB,CAAC;AAQzE,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3B,QAAQ,CAAW;IACnB,OAAO,CAAS;IAEhC,YACE,UAAkB,EAClB,WAA2C,EAC3C,OAAe;QAEf,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAE/B,sCAAsC;QACtC,MAAM,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEhE,6DAA6D;QAC7D,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC;QAE/C,2DAA2D;QAC3D,MAAM,cAAc,GAAwB;YAC1C,KAAK,EAAE,qBAAqB,CAAC,KAAK;YAClC,MAAM,EACJ,OAAO,qBAAqB,CAAC,MAAM,KAAK,QAAQ;gBAC9C,CAAC,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE;gBACnC,CAAC,CAAC,qBAAqB,CAAC,MAAM;YAClC,OAAO,EAAE,qBAAqB,CAAC,OAAO;YACtC,YAAY,EAAE,qBAAqB,CAAC,YAAY;YAChD,OAAO,EAAE,qBAAqB,CAAC,OAAO;YACtC,eAAe,EAAE,qBAAqB,CAAC,eAAe;YACtD,OAAO,EAAE,qBAAqB,CAAC,OAAO;SACvC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC3B,UAAU,EACV,OAAO,yBAAyB,GAAG,EACnC,cAAc,CACf,CAAC;QAEF,QAAQ;aACL,IAAI,EAAE;aACN,IAAI,CAAC,GAAG,EAAE;YACT,4EAA4E;YAC3E,IAAI,CAAC,MAAkB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC;aACD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Stage } from '../../Stage.js';
|
|
2
|
+
import { type Bound } from '../../lib/utils.js';
|
|
3
|
+
import type { ImageTexture } from '../../textures/ImageTexture.js';
|
|
4
|
+
import type { TrFontFace } from '../font-face-types/TrFontFace.js';
|
|
5
|
+
import { LightningTextTextureRenderer, type RenderInfo } from './LightningTextTextureRenderer.js';
|
|
6
|
+
import { TextRenderer, type TextRendererState, type TrFontProps, type TrPropSetters, type TrProps } from './TextRenderer.js';
|
|
7
|
+
declare module './TextRenderer.js' {
|
|
8
|
+
interface TextRendererMap {
|
|
9
|
+
canvas: CanvasTextRenderer;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
interface CanvasPageInfo {
|
|
13
|
+
texture: ImageTexture | undefined;
|
|
14
|
+
lineNumStart: number;
|
|
15
|
+
lineNumEnd: number;
|
|
16
|
+
valid: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface CanvasTextRendererState extends TextRendererState {
|
|
19
|
+
props: TrProps;
|
|
20
|
+
fontFaceLoadedHandler: (() => void) | undefined;
|
|
21
|
+
fontInfo: {
|
|
22
|
+
cssString: string;
|
|
23
|
+
loaded: boolean;
|
|
24
|
+
} | undefined;
|
|
25
|
+
canvasPages: [CanvasPageInfo, CanvasPageInfo, CanvasPageInfo] | undefined;
|
|
26
|
+
lightning2TextRenderer: LightningTextTextureRenderer;
|
|
27
|
+
renderInfo: RenderInfo | undefined;
|
|
28
|
+
renderWindow: Bound | undefined;
|
|
29
|
+
}
|
|
30
|
+
export declare class CanvasTextRenderer extends TextRenderer<CanvasTextRendererState> {
|
|
31
|
+
protected canvas: OffscreenCanvas;
|
|
32
|
+
protected context: OffscreenCanvasRenderingContext2D;
|
|
33
|
+
constructor(stage: Stage);
|
|
34
|
+
getPropertySetters(): Partial<TrPropSetters<CanvasTextRendererState>>;
|
|
35
|
+
canRenderFont(props: TrFontProps): boolean;
|
|
36
|
+
isFontFaceSupported(fontFace: TrFontFace): boolean;
|
|
37
|
+
addFontFace(fontFace: TrFontFace): void;
|
|
38
|
+
createState(props: TrProps): CanvasTextRendererState;
|
|
39
|
+
updateState(state: CanvasTextRendererState): void;
|
|
40
|
+
renderQuads(state: CanvasTextRendererState): void;
|
|
41
|
+
private markForReload;
|
|
42
|
+
private onFontLoaded;
|
|
43
|
+
private onFontLoadError;
|
|
44
|
+
}
|
|
45
|
+
export {};
|