@lightningtv/renderer 3.0.0-beta1
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 +3 -0
- package/README.md +147 -0
- package/dist/exports/canvas-shaders.d.ts +10 -0
- package/dist/exports/canvas-shaders.js +27 -0
- package/dist/exports/canvas-shaders.js.map +1 -0
- package/dist/exports/canvas.d.ts +26 -0
- package/dist/exports/canvas.js +45 -0
- package/dist/exports/canvas.js.map +1 -0
- package/dist/exports/index.d.ts +53 -0
- package/dist/exports/index.js +62 -0
- package/dist/exports/index.js.map +1 -0
- package/dist/exports/inspector.d.ts +4 -0
- package/dist/exports/inspector.js +23 -0
- package/dist/exports/inspector.js.map +1 -0
- package/dist/exports/utils.d.ts +26 -0
- package/dist/exports/utils.js +45 -0
- package/dist/exports/utils.js.map +1 -0
- package/dist/exports/webgl-shaders.d.ts +11 -0
- package/dist/exports/webgl-shaders.js +28 -0
- package/dist/exports/webgl-shaders.js.map +1 -0
- package/dist/exports/webgl.d.ts +27 -0
- package/dist/exports/webgl.js +46 -0
- package/dist/exports/webgl.js.map +1 -0
- package/dist/src/common/CommonTypes.d.ts +97 -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 +66 -0
- package/dist/src/common/IAnimationController.js +2 -0
- package/dist/src/common/IAnimationController.js.map +1 -0
- package/dist/src/common/IEventEmitter.d.ts +8 -0
- package/dist/src/common/IEventEmitter.js +18 -0
- package/dist/src/common/IEventEmitter.js.map +1 -0
- package/dist/src/core/CoreNode.d.ts +860 -0
- package/dist/src/core/CoreNode.js +1527 -0
- package/dist/src/core/CoreNode.js.map +1 -0
- package/dist/src/core/CoreShaderManager.d.ts +38 -0
- package/dist/src/core/CoreShaderManager.js +141 -0
- package/dist/src/core/CoreShaderManager.js.map +1 -0
- package/dist/src/core/CoreTextNode.d.ts +103 -0
- package/dist/src/core/CoreTextNode.js +331 -0
- package/dist/src/core/CoreTextNode.js.map +1 -0
- package/dist/src/core/CoreTextureManager.d.ts +253 -0
- package/dist/src/core/CoreTextureManager.js +375 -0
- package/dist/src/core/CoreTextureManager.js.map +1 -0
- package/dist/src/core/Stage.d.ts +171 -0
- package/dist/src/core/Stage.js +566 -0
- package/dist/src/core/Stage.js.map +1 -0
- package/dist/src/core/TextureMemoryManager.d.ts +143 -0
- package/dist/src/core/TextureMemoryManager.js +259 -0
- package/dist/src/core/TextureMemoryManager.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 +37 -0
- package/dist/src/core/animations/CoreAnimation.js +210 -0
- package/dist/src/core/animations/CoreAnimation.js.map +1 -0
- package/dist/src/core/animations/CoreAnimationController.d.ts +26 -0
- package/dist/src/core/animations/CoreAnimationController.js +126 -0
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -0
- package/dist/src/core/lib/ContextSpy.d.ts +12 -0
- package/dist/src/core/lib/ContextSpy.js +38 -0
- package/dist/src/core/lib/ContextSpy.js.map +1 -0
- package/dist/src/core/lib/ImageWorker.d.ts +16 -0
- package/dist/src/core/lib/ImageWorker.js +200 -0
- package/dist/src/core/lib/ImageWorker.js.map +1 -0
- package/dist/src/core/lib/Matrix3d.d.ts +73 -0
- package/dist/src/core/lib/Matrix3d.js +230 -0
- package/dist/src/core/lib/Matrix3d.js.map +1 -0
- package/dist/src/core/lib/RenderCoords.d.ts +13 -0
- package/dist/src/core/lib/RenderCoords.js +63 -0
- package/dist/src/core/lib/RenderCoords.js.map +1 -0
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +707 -0
- package/dist/src/core/lib/WebGlContextWrapper.js +1018 -0
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -0
- package/dist/src/core/lib/textureCompression.d.ts +16 -0
- package/dist/src/core/lib/textureCompression.js +128 -0
- package/dist/src/core/lib/textureCompression.js.map +1 -0
- package/dist/src/core/lib/textureSvg.d.ts +16 -0
- package/dist/src/core/lib/textureSvg.js +63 -0
- package/dist/src/core/lib/textureSvg.js.map +1 -0
- package/dist/src/core/lib/utils.d.ts +59 -0
- package/dist/src/core/lib/utils.js +244 -0
- package/dist/src/core/lib/utils.js.map +1 -0
- package/dist/src/core/lib/validateImageBitmap.d.ts +6 -0
- package/dist/src/core/lib/validateImageBitmap.js +68 -0
- package/dist/src/core/lib/validateImageBitmap.js.map +1 -0
- package/dist/src/core/platform.d.ts +10 -0
- package/dist/src/core/platform.js +56 -0
- package/dist/src/core/platform.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +12 -0
- package/dist/src/core/renderers/CoreContextTexture.js +34 -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 +68 -0
- package/dist/src/core/renderers/CoreRenderer.js +31 -0
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderNode.d.ts +59 -0
- package/dist/src/core/renderers/CoreShaderNode.js +107 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
- package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
- package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +36 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +212 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +60 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js +123 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +1 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +217 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +21 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +72 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +55 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +9 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +38 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +57 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +227 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +36 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +107 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +134 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +546 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +221 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +334 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +35 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +195 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.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 +55 -0
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +106 -0
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +74 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +101 -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/shaders/canvas/Border.d.ts +9 -0
- package/dist/src/core/shaders/canvas/Border.js +57 -0
- package/dist/src/core/shaders/canvas/Border.js.map +1 -0
- package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
- package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js +46 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js +68 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/canvas/Rounded.js +33 -0
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +35 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +39 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +38 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/Shadow.js +31 -0
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
- package/dist/src/core/shaders/canvas/utils/render.js +84 -0
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
- package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
- package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Border.js +87 -0
- package/dist/src/core/shaders/webgl/Border.js.map +1 -0
- package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
- package/dist/src/core/shaders/webgl/Default.js +86 -0
- package/dist/src/core/shaders/webgl/Default.js.map +1 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
- package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
- package/dist/src/core/shaders/webgl/HolePunch.js +64 -0
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js +75 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js +73 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/webgl/Rounded.js +86 -0
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +97 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +112 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +32 -0
- package/dist/src/core/shaders/webgl/SdfShader.js +116 -0
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
- package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Shadow.js +110 -0
- package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +12 -0
- package/dist/src/core/text-rendering/TextRenderingUtils.js +14 -0
- package/dist/src/core/text-rendering/TextRenderingUtils.js.map +1 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +72 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js +217 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -0
- package/dist/src/core/text-rendering/TrFontManager.d.ts +26 -0
- package/dist/src/core/text-rendering/TrFontManager.js +131 -0
- package/dist/src/core/text-rendering/TrFontManager.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +39 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +125 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +103 -0
- package/dist/src/core/text-rendering/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 +62 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +88 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +118 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +63 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +14 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +66 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/utils.d.ts +1 -0
- package/dist/src/core/text-rendering/font-face-types/utils.js +38 -0
- package/dist/src/core/text-rendering/font-face-types/utils.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +59 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +397 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +126 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +551 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +91 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +611 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +12 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +61 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +33 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +52 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +13 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +32 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +23 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +84 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +4 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +34 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +20 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +308 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +10 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +40 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +39 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +370 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +178 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -0
- package/dist/src/core/textures/ColorTexture.d.ts +36 -0
- package/dist/src/core/textures/ColorTexture.js +76 -0
- package/dist/src/core/textures/ColorTexture.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.d.ts +124 -0
- package/dist/src/core/textures/ImageTexture.js +220 -0
- package/dist/src/core/textures/ImageTexture.js.map +1 -0
- package/dist/src/core/textures/NoiseTexture.d.ts +43 -0
- package/dist/src/core/textures/NoiseTexture.js +68 -0
- package/dist/src/core/textures/NoiseTexture.js.map +1 -0
- package/dist/src/core/textures/RenderTexture.d.ts +29 -0
- package/dist/src/core/textures/RenderTexture.js +54 -0
- package/dist/src/core/textures/RenderTexture.js.map +1 -0
- package/dist/src/core/textures/SubTexture.d.ts +63 -0
- package/dist/src/core/textures/SubTexture.js +135 -0
- package/dist/src/core/textures/SubTexture.js.map +1 -0
- package/dist/src/core/textures/Texture.d.ts +197 -0
- package/dist/src/core/textures/Texture.js +201 -0
- package/dist/src/core/textures/Texture.js.map +1 -0
- package/dist/src/core/utils.d.ts +22 -0
- package/dist/src/core/utils.js +173 -0
- package/dist/src/core/utils.js.map +1 -0
- package/dist/src/main-api/INode.d.ts +63 -0
- package/dist/src/main-api/INode.js +2 -0
- package/dist/src/main-api/INode.js.map +1 -0
- package/dist/src/main-api/Inspector.d.ts +21 -0
- package/dist/src/main-api/Inspector.js +376 -0
- package/dist/src/main-api/Inspector.js.map +1 -0
- package/dist/src/main-api/Renderer.d.ts +414 -0
- package/dist/src/main-api/Renderer.js +342 -0
- package/dist/src/main-api/Renderer.js.map +1 -0
- package/dist/src/main-api/utils.d.ts +2 -0
- package/dist/src/main-api/utils.js +34 -0
- package/dist/src/main-api/utils.js.map +1 -0
- package/dist/src/utils.d.ts +110 -0
- package/dist/src/utils.js +229 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.dist.tsbuildinfo +1 -0
- package/exports/canvas-shaders.ts +28 -0
- package/exports/canvas.ts +45 -0
- package/exports/index.ts +90 -0
- package/exports/inspector.ts +24 -0
- package/exports/utils.ts +44 -0
- package/exports/webgl-shaders.ts +28 -0
- package/exports/webgl.ts +50 -0
- package/package.json +93 -0
- package/scripts/please-use-pnpm.js +13 -0
- package/src/common/CommonTypes.ts +146 -0
- package/src/common/EventEmitter.ts +77 -0
- package/src/common/IAnimationController.ts +92 -0
- package/src/common/IEventEmitter.ts +28 -0
- package/src/core/CoreNode.test.ts +203 -0
- package/src/core/CoreNode.ts +2476 -0
- package/src/core/CoreShaderManager.ts +188 -0
- package/src/core/CoreTextNode.ts +448 -0
- package/src/core/CoreTextureManager.ts +597 -0
- package/src/core/Stage.ts +740 -0
- package/src/core/TextureMemoryManager.ts +395 -0
- package/src/core/animations/AnimationManager.ts +38 -0
- package/src/core/animations/CoreAnimation.ts +284 -0
- package/src/core/animations/CoreAnimationController.ts +157 -0
- package/src/core/lib/ContextSpy.ts +41 -0
- package/src/core/lib/ImageWorker.ts +279 -0
- package/src/core/lib/Matrix3d.ts +244 -0
- package/src/core/lib/RenderCoords.ts +86 -0
- package/src/core/lib/WebGlContextWrapper.ts +1324 -0
- package/src/core/lib/textureCompression.ts +152 -0
- package/src/core/lib/textureSvg.ts +78 -0
- package/src/core/lib/utils.ts +361 -0
- package/src/core/lib/validateImageBitmap.ts +76 -0
- package/src/core/platform.ts +64 -0
- package/src/core/renderers/CoreContextTexture.ts +43 -0
- package/src/core/renderers/CoreRenderOp.ts +22 -0
- package/src/core/renderers/CoreRenderer.ts +107 -0
- package/src/core/renderers/CoreShaderNode.ts +171 -0
- package/src/core/renderers/CoreShaderProgram.ts +23 -0
- package/src/core/renderers/canvas/CanvasRenderer.ts +299 -0
- package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -0
- package/src/core/renderers/canvas/CanvasTexture.ts +153 -0
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +220 -0
- package/src/core/renderers/canvas/internal/ColorUtils.ts +85 -0
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +86 -0
- package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -0
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +301 -0
- package/src/core/renderers/webgl/WebGlRenderOp.ts +145 -0
- package/src/core/renderers/webgl/WebGlRenderer.ts +715 -0
- package/src/core/renderers/webgl/WebGlShaderNode.ts +433 -0
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +310 -0
- package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -0
- package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -0
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -0
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -0
- package/src/core/shaders/canvas/Border.ts +78 -0
- package/src/core/shaders/canvas/HolePunch.ts +62 -0
- package/src/core/shaders/canvas/LinearGradient.ts +69 -0
- package/src/core/shaders/canvas/RadialGradient.ts +113 -0
- package/src/core/shaders/canvas/Rounded.ts +55 -0
- package/src/core/shaders/canvas/RoundedWithBorder.ts +68 -0
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -0
- package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -0
- package/src/core/shaders/canvas/Shadow.ts +52 -0
- package/src/core/shaders/canvas/utils/render.ts +151 -0
- package/src/core/shaders/templates/BorderTemplate.ts +115 -0
- package/src/core/shaders/templates/HolePunchTemplate.ts +82 -0
- package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -0
- package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -0
- package/src/core/shaders/templates/RoundedTemplate.ts +98 -0
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -0
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -0
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -0
- package/src/core/shaders/templates/ShadowTemplate.ts +106 -0
- package/src/core/shaders/templates/shaderUtils.ts +47 -0
- package/src/core/shaders/webgl/Border.ts +96 -0
- package/src/core/shaders/webgl/Default.ts +89 -0
- package/src/core/shaders/webgl/DefaultBatched.ts +129 -0
- package/src/core/shaders/webgl/HolePunch.ts +78 -0
- package/src/core/shaders/webgl/LinearGradient.ts +81 -0
- package/src/core/shaders/webgl/RadialGradient.ts +84 -0
- package/src/core/shaders/webgl/Rounded.ts +117 -0
- package/src/core/shaders/webgl/RoundedWithBorder.ts +114 -0
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +133 -0
- package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -0
- package/src/core/shaders/webgl/SdfShader.ts +137 -0
- package/src/core/shaders/webgl/Shadow.ts +115 -0
- package/src/core/text-rendering/TextRenderingUtils.ts +36 -0
- package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -0
- package/src/core/text-rendering/TrFontManager.ts +183 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -0
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -0
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -0
- package/src/core/text-rendering/font-face-types/utils.ts +39 -0
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -0
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +815 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +841 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +408 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -0
- package/src/core/text-rendering/renderers/TextRenderer.ts +550 -0
- package/src/core/textures/ColorTexture.ts +102 -0
- package/src/core/textures/ImageTexture.ts +376 -0
- package/src/core/textures/NoiseTexture.ts +104 -0
- package/src/core/textures/RenderTexture.ts +85 -0
- package/src/core/textures/SubTexture.ts +205 -0
- package/src/core/textures/Texture.ts +337 -0
- package/src/core/utils.ts +227 -0
- package/src/env.d.ts +7 -0
- package/src/main-api/INode.ts +100 -0
- package/src/main-api/Inspector.ts +522 -0
- package/src/main-api/Renderer.ts +649 -0
- package/src/main-api/utils.ts +45 -0
- package/src/utils.ts +267 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
+
* following copyright and licenses apply:
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { EventEmitter } from '../common/EventEmitter.js';
|
|
20
|
+
import { assertTruthy, isProductionEnvironment } from '../utils.js';
|
|
21
|
+
import { Stage } from '../core/Stage.js';
|
|
22
|
+
import { CoreNode } from '../core/CoreNode.js';
|
|
23
|
+
import {} from '../core/CoreTextNode.js';
|
|
24
|
+
/**
|
|
25
|
+
* The Renderer Main API
|
|
26
|
+
*
|
|
27
|
+
* @remarks
|
|
28
|
+
* This is the primary class used to configure and operate the Renderer.
|
|
29
|
+
*
|
|
30
|
+
* It is used to create and destroy Nodes, as well as Texture and Shader
|
|
31
|
+
* references.
|
|
32
|
+
*
|
|
33
|
+
* Example:
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { RendererMain, MainCoreDriver } from '@lightningjs/renderer';
|
|
36
|
+
*
|
|
37
|
+
* // Initialize the Renderer
|
|
38
|
+
* const renderer = new RendererMain(
|
|
39
|
+
* {
|
|
40
|
+
* appWidth: 1920,
|
|
41
|
+
* appHeight: 1080
|
|
42
|
+
* },
|
|
43
|
+
* 'app',
|
|
44
|
+
* new MainCoreDriver(),
|
|
45
|
+
* );
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* ## Events
|
|
49
|
+
* - `fpsUpdate`
|
|
50
|
+
* - Emitted every `fpsUpdateInterval` milliseconds with the current FPS
|
|
51
|
+
* - `frameTick`
|
|
52
|
+
* - Emitted every frame tick
|
|
53
|
+
* - `quadsUpdate`
|
|
54
|
+
* - Emitted when number of quads rendered is updated
|
|
55
|
+
* - `idle`
|
|
56
|
+
* - Emitted when the renderer is idle (no changes to the scene
|
|
57
|
+
* graph/animations running)
|
|
58
|
+
* - `criticalCleanup`
|
|
59
|
+
* - Emitted when the Texture Memory Manager Cleanup process is triggered
|
|
60
|
+
* - Payload: { memUsed: number, criticalThreshold: number }
|
|
61
|
+
* - `memUsed` - The amount of memory (in bytes) used by textures before the
|
|
62
|
+
* cleanup process
|
|
63
|
+
* - `criticalThreshold` - The critical threshold (in bytes)
|
|
64
|
+
* - `criticalCleanupFailed`
|
|
65
|
+
* - Emitted when the Texture Memory Manager Cleanup process is unable to free
|
|
66
|
+
* up enough texture memory to reach below the critical threshold.
|
|
67
|
+
* This can happen when there is not enough non-renderable textures to
|
|
68
|
+
* free up.
|
|
69
|
+
* - Payload (object with keys):
|
|
70
|
+
* - `memUsed` - The amount of memory (in bytes) used by textures after
|
|
71
|
+
* the cleanup process
|
|
72
|
+
* - `criticalThreshold` - The critical threshold (in bytes)
|
|
73
|
+
*/
|
|
74
|
+
export class RendererMain extends EventEmitter {
|
|
75
|
+
root;
|
|
76
|
+
canvas;
|
|
77
|
+
settings;
|
|
78
|
+
stage;
|
|
79
|
+
inspector = null;
|
|
80
|
+
/**
|
|
81
|
+
* Constructs a new Renderer instance
|
|
82
|
+
*
|
|
83
|
+
* @param settings Renderer settings
|
|
84
|
+
* @param target Element ID or HTMLElement to insert the canvas into
|
|
85
|
+
* @param driver Core Driver to use
|
|
86
|
+
*/
|
|
87
|
+
constructor(settings, target) {
|
|
88
|
+
super();
|
|
89
|
+
const resolvedTxSettings = {
|
|
90
|
+
criticalThreshold: settings.textureMemory?.criticalThreshold || 124e6,
|
|
91
|
+
targetThresholdLevel: settings.textureMemory?.targetThresholdLevel || 0.5,
|
|
92
|
+
cleanupInterval: settings.textureMemory?.cleanupInterval || 5000,
|
|
93
|
+
debugLogging: settings.textureMemory?.debugLogging || false,
|
|
94
|
+
baselineMemoryAllocation: settings.textureMemory?.baselineMemoryAllocation || 26e6,
|
|
95
|
+
doNotExceedCriticalThreshold: settings.textureMemory?.doNotExceedCriticalThreshold || false,
|
|
96
|
+
};
|
|
97
|
+
const resolvedSettings = {
|
|
98
|
+
appWidth: settings.appWidth || 1920,
|
|
99
|
+
appHeight: settings.appHeight || 1080,
|
|
100
|
+
textureMemory: resolvedTxSettings,
|
|
101
|
+
boundsMargin: settings.boundsMargin || 0,
|
|
102
|
+
deviceLogicalPixelRatio: settings.deviceLogicalPixelRatio || 1,
|
|
103
|
+
devicePhysicalPixelRatio: settings.devicePhysicalPixelRatio || window.devicePixelRatio,
|
|
104
|
+
clearColor: settings.clearColor ?? 0x00000000,
|
|
105
|
+
fpsUpdateInterval: settings.fpsUpdateInterval || 0,
|
|
106
|
+
numImageWorkers: settings.numImageWorkers !== undefined ? settings.numImageWorkers : 2,
|
|
107
|
+
enableContextSpy: settings.enableContextSpy ?? false,
|
|
108
|
+
forceWebGL2: settings.forceWebGL2 ?? false,
|
|
109
|
+
inspector: settings.inspector ?? false,
|
|
110
|
+
renderEngine: settings.renderEngine,
|
|
111
|
+
quadBufferSize: settings.quadBufferSize ?? 4 * 1024 * 1024,
|
|
112
|
+
fontEngines: settings.fontEngines,
|
|
113
|
+
strictBounds: settings.strictBounds ?? true,
|
|
114
|
+
textureProcessingTimeLimit: settings.textureProcessingTimeLimit || 10,
|
|
115
|
+
canvas: settings.canvas || document.createElement('canvas'),
|
|
116
|
+
createImageBitmapSupport: settings.createImageBitmapSupport || 'full',
|
|
117
|
+
};
|
|
118
|
+
this.settings = resolvedSettings;
|
|
119
|
+
const { appWidth, appHeight, deviceLogicalPixelRatio, devicePhysicalPixelRatio, inspector, canvas, } = resolvedSettings;
|
|
120
|
+
const deviceLogicalWidth = appWidth * deviceLogicalPixelRatio;
|
|
121
|
+
const deviceLogicalHeight = appHeight * deviceLogicalPixelRatio;
|
|
122
|
+
this.canvas = canvas;
|
|
123
|
+
canvas.width = deviceLogicalWidth * devicePhysicalPixelRatio;
|
|
124
|
+
canvas.height = deviceLogicalHeight * devicePhysicalPixelRatio;
|
|
125
|
+
canvas.style.width = `${deviceLogicalWidth}px`;
|
|
126
|
+
canvas.style.height = `${deviceLogicalHeight}px`;
|
|
127
|
+
// Initialize the stage
|
|
128
|
+
this.stage = new Stage({
|
|
129
|
+
appWidth: this.settings.appWidth,
|
|
130
|
+
appHeight: this.settings.appHeight,
|
|
131
|
+
boundsMargin: this.settings.boundsMargin,
|
|
132
|
+
clearColor: this.settings.clearColor,
|
|
133
|
+
canvas: this.canvas,
|
|
134
|
+
deviceLogicalPixelRatio: this.settings.deviceLogicalPixelRatio,
|
|
135
|
+
devicePhysicalPixelRatio: this.settings.devicePhysicalPixelRatio,
|
|
136
|
+
enableContextSpy: this.settings.enableContextSpy,
|
|
137
|
+
forceWebGL2: this.settings.forceWebGL2,
|
|
138
|
+
fpsUpdateInterval: this.settings.fpsUpdateInterval,
|
|
139
|
+
numImageWorkers: this.settings.numImageWorkers,
|
|
140
|
+
renderEngine: this.settings.renderEngine,
|
|
141
|
+
textureMemory: resolvedTxSettings,
|
|
142
|
+
eventBus: this,
|
|
143
|
+
quadBufferSize: this.settings.quadBufferSize,
|
|
144
|
+
fontEngines: this.settings.fontEngines,
|
|
145
|
+
inspector: this.settings.inspector !== null,
|
|
146
|
+
strictBounds: this.settings.strictBounds,
|
|
147
|
+
textureProcessingTimeLimit: this.settings.textureProcessingTimeLimit,
|
|
148
|
+
createImageBitmapSupport: this.settings.createImageBitmapSupport,
|
|
149
|
+
});
|
|
150
|
+
// Extract the root node
|
|
151
|
+
this.root = this.stage.root;
|
|
152
|
+
// Get the target element and attach the canvas to it
|
|
153
|
+
let targetEl;
|
|
154
|
+
if (typeof target === 'string') {
|
|
155
|
+
targetEl = document.getElementById(target);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
targetEl = target;
|
|
159
|
+
}
|
|
160
|
+
if (!targetEl) {
|
|
161
|
+
throw new Error('Could not find target element');
|
|
162
|
+
}
|
|
163
|
+
targetEl.appendChild(canvas);
|
|
164
|
+
// Initialize inspector (if enabled)
|
|
165
|
+
if (inspector && !isProductionEnvironment()) {
|
|
166
|
+
this.inspector = new inspector(canvas, resolvedSettings);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Create a new scene graph node
|
|
171
|
+
*
|
|
172
|
+
* @remarks
|
|
173
|
+
* A node is the main graphical building block of the Renderer scene graph. It
|
|
174
|
+
* can be a container for other nodes, or it can be a leaf node that renders a
|
|
175
|
+
* solid color, gradient, image, or specific texture, using a specific shader.
|
|
176
|
+
*
|
|
177
|
+
* To create a text node, see {@link createTextNode}.
|
|
178
|
+
*
|
|
179
|
+
* See {@link CoreNode} for more details.
|
|
180
|
+
*
|
|
181
|
+
* @param props
|
|
182
|
+
* @returns
|
|
183
|
+
*/
|
|
184
|
+
createNode(props) {
|
|
185
|
+
assertTruthy(this.stage, 'Stage is not initialized');
|
|
186
|
+
const node = this.stage.createNode(props);
|
|
187
|
+
if (this.inspector) {
|
|
188
|
+
return this.inspector.createNode(node);
|
|
189
|
+
}
|
|
190
|
+
// FIXME onDestroy event? node.once('beforeDestroy'
|
|
191
|
+
// FIXME onCreate event?
|
|
192
|
+
return node;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Create a new scene graph text node
|
|
196
|
+
*
|
|
197
|
+
* @remarks
|
|
198
|
+
* A text node is the second graphical building block of the Renderer scene
|
|
199
|
+
* graph. It renders text using a specific text renderer that is automatically
|
|
200
|
+
* chosen based on the font requested and what type of fonts are installed
|
|
201
|
+
* into an app.
|
|
202
|
+
*
|
|
203
|
+
* See {@link ITextNode} for more details.
|
|
204
|
+
*
|
|
205
|
+
* @param props
|
|
206
|
+
* @returns
|
|
207
|
+
*/
|
|
208
|
+
createTextNode(props) {
|
|
209
|
+
const textNode = this.stage.createTextNode(props);
|
|
210
|
+
if (this.inspector) {
|
|
211
|
+
return this.inspector.createTextNode(textNode);
|
|
212
|
+
}
|
|
213
|
+
return textNode;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Destroy a node
|
|
217
|
+
*
|
|
218
|
+
* @remarks
|
|
219
|
+
* This method destroys a node
|
|
220
|
+
*
|
|
221
|
+
* @param node
|
|
222
|
+
* @returns
|
|
223
|
+
*/
|
|
224
|
+
destroyNode(node) {
|
|
225
|
+
if (this.inspector) {
|
|
226
|
+
this.inspector.destroyNode(node.id);
|
|
227
|
+
}
|
|
228
|
+
return node.destroy();
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Create a new texture reference
|
|
232
|
+
*
|
|
233
|
+
* @remarks
|
|
234
|
+
* This method creates a new reference to a texture. The texture is not
|
|
235
|
+
* loaded until it is used on a node.
|
|
236
|
+
*
|
|
237
|
+
* It can be assigned to a node's `texture` property, or it can be used
|
|
238
|
+
* when creating a SubTexture.
|
|
239
|
+
*
|
|
240
|
+
* @param textureType
|
|
241
|
+
* @param props
|
|
242
|
+
* @param options
|
|
243
|
+
* @returns
|
|
244
|
+
*/
|
|
245
|
+
createTexture(textureType, props) {
|
|
246
|
+
return this.stage.txManager.createTexture(textureType, props);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Create a new shader controller for a shader type
|
|
250
|
+
*
|
|
251
|
+
* @remarks
|
|
252
|
+
* This method creates a new Shader Controller for a specific shader type.
|
|
253
|
+
*
|
|
254
|
+
* If the shader has not been loaded yet, it will be loaded. Otherwise, the
|
|
255
|
+
* existing shader will be reused.
|
|
256
|
+
*
|
|
257
|
+
* It can be assigned to a Node's `shader` property.
|
|
258
|
+
*
|
|
259
|
+
* @param shaderType
|
|
260
|
+
* @param props
|
|
261
|
+
* @returns
|
|
262
|
+
*/
|
|
263
|
+
createShader(shType, props) {
|
|
264
|
+
return this.stage.shManager.createShader(shType, props);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Get a Node by its ID
|
|
268
|
+
*
|
|
269
|
+
* @param id
|
|
270
|
+
* @returns
|
|
271
|
+
*/
|
|
272
|
+
getNodeById(id) {
|
|
273
|
+
const root = this.stage?.root;
|
|
274
|
+
if (!root) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
const findNode = (node) => {
|
|
278
|
+
if (node.id === id) {
|
|
279
|
+
return node;
|
|
280
|
+
}
|
|
281
|
+
for (const child of node.children) {
|
|
282
|
+
const found = findNode(child);
|
|
283
|
+
if (found) {
|
|
284
|
+
return found;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return null;
|
|
288
|
+
};
|
|
289
|
+
return findNode(root);
|
|
290
|
+
}
|
|
291
|
+
toggleFreeze() {
|
|
292
|
+
throw new Error('Not implemented');
|
|
293
|
+
}
|
|
294
|
+
advanceFrame() {
|
|
295
|
+
throw new Error('Not implemented');
|
|
296
|
+
}
|
|
297
|
+
getBufferInfo() {
|
|
298
|
+
return this.stage.renderer.getBufferInfo();
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Re-render the current frame without advancing any running animations.
|
|
302
|
+
*
|
|
303
|
+
* @remarks
|
|
304
|
+
* Any state changes will be reflected in the re-rendered frame. Useful for
|
|
305
|
+
* debugging.
|
|
306
|
+
*
|
|
307
|
+
* May not do anything if the render loop is running on a separate worker.
|
|
308
|
+
*/
|
|
309
|
+
rerender() {
|
|
310
|
+
this.stage.requestRender();
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Cleanup textures that are not being used
|
|
314
|
+
*
|
|
315
|
+
* @param aggressive - If true, will cleanup all textures, regardless of render status
|
|
316
|
+
*
|
|
317
|
+
* @remarks
|
|
318
|
+
* This can be used to free up GFX memory used by textures that are no longer
|
|
319
|
+
* being displayed.
|
|
320
|
+
*
|
|
321
|
+
* This routine is also called automatically when the memory used by textures
|
|
322
|
+
* exceeds the critical threshold on frame generation **OR** when the renderer
|
|
323
|
+
* is idle and the memory used by textures exceeds the target threshold.
|
|
324
|
+
*
|
|
325
|
+
* **NOTE**: This is a heavy operation and should be used sparingly.
|
|
326
|
+
* **NOTE2**: This will not cleanup textures that are currently being displayed.
|
|
327
|
+
* **NOTE3**: This will not cleanup textures that are marked as `preventCleanup`.
|
|
328
|
+
* **NOTE4**: This has nothing to do with the garbage collection of JavaScript.
|
|
329
|
+
*/
|
|
330
|
+
cleanup(aggressive = false) {
|
|
331
|
+
this.stage.cleanup(aggressive);
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Sets the clear color for the stage.
|
|
335
|
+
*
|
|
336
|
+
* @param color - The color to set as the clear color.
|
|
337
|
+
*/
|
|
338
|
+
setClearColor(color) {
|
|
339
|
+
this.stage.setClearColor(color);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=Renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/main-api/Renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export function santizeCustomDataMap(d) {
|
|
2
|
+
const validTypes = {
|
|
3
|
+
boolean: true,
|
|
4
|
+
string: true,
|
|
5
|
+
number: true,
|
|
6
|
+
undefined: true,
|
|
7
|
+
};
|
|
8
|
+
const keys = Object.keys(d);
|
|
9
|
+
for (let i = 0; i < keys.length; i++) {
|
|
10
|
+
const key = keys[i];
|
|
11
|
+
if (!key) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const value = d[key];
|
|
15
|
+
const valueType = typeof value;
|
|
16
|
+
// Typescript doesn't understand the above const valueType ¯\_(ツ)_/¯
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
18
|
+
// @ts-ignore-next-line
|
|
19
|
+
if (valueType === 'string' && value.length > 2048) {
|
|
20
|
+
console.warn(`Custom Data value for ${key} is too long, it will be truncated to 2048 characters`);
|
|
21
|
+
// same here, see above comment, this can only be a string at this point
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
23
|
+
// @ts-ignore-next-line
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
|
|
25
|
+
d[key] = value.substring(0, 2048);
|
|
26
|
+
}
|
|
27
|
+
if (!validTypes[valueType]) {
|
|
28
|
+
console.warn(`Custom Data value for ${key} is not a boolean, string, or number, it will be ignored`);
|
|
29
|
+
delete d[key];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return d;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/main-api/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,CAAgB;IACnD,MAAM,UAAU,GAAG;QACjB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;KAChB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;QAE/B,oEAAoE;QACpE,6DAA6D;QAC7D,uBAAuB;QACvB,IAAI,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CACV,yBAAyB,GAAG,uDAAuD,CACpF,CAAC;YAEF,wEAAwE;YACxE,6DAA6D;YAC7D,uBAAuB;YACvB,sGAAsG;YACtG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,SAAoC,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CACV,yBAAyB,GAAG,0DAA0D,CACvF,CAAC;YACF,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { ContextSpy } from './core/lib/ContextSpy.js';
|
|
2
|
+
export declare function createWebGLContext(canvas: HTMLCanvasElement | OffscreenCanvas, forceWebGL2: boolean | undefined, contextSpy: ContextSpy | null): WebGLRenderingContext;
|
|
3
|
+
/**
|
|
4
|
+
* Asserts a condition is truthy, otherwise throws an error
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Useful at the top of functions to ensure certain conditions, arguments and
|
|
8
|
+
* properties are set/met before continuing. When using this function,
|
|
9
|
+
* TypeScript will narrow away falsy types from the condition.
|
|
10
|
+
*
|
|
11
|
+
* @param condition
|
|
12
|
+
* @param message
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export declare function assertTruthy(condition: unknown, message?: string): asserts condition;
|
|
16
|
+
/**
|
|
17
|
+
* Merges two colors based on a given progress value.
|
|
18
|
+
*
|
|
19
|
+
* This function takes two colors (c1 and c2) represented as 32-bit integers
|
|
20
|
+
* in RGBA format and blends them based on the provided progress value (p).
|
|
21
|
+
* The result is a new color that is a weighted combination of the input colors,
|
|
22
|
+
* where the weight is determined by the progress value.
|
|
23
|
+
*
|
|
24
|
+
* @param {number} c1 - The first color in RGBA format (32-bit integer).
|
|
25
|
+
* @param {number} c2 - The second color in RGBA format (32-bit integer).
|
|
26
|
+
* @param {number} p - The progress value between 0 and 1.
|
|
27
|
+
* @returns {number} The merged color as a 32-bit integer in RGBA format.
|
|
28
|
+
*/
|
|
29
|
+
export declare function mergeColorProgress(rgba1: number, rgba2: number, p: number): number;
|
|
30
|
+
/**
|
|
31
|
+
* Given an RGBA encoded number, returns back the RGBA number with it's alpha
|
|
32
|
+
* component multiplied by the passed `alpha` parameter.
|
|
33
|
+
*
|
|
34
|
+
* @internalRemarks
|
|
35
|
+
* This method does NOT premultiply the alpha into the color channels. If that
|
|
36
|
+
* is required (for internal use only) use {@link mergeColorAlphaPremultiplied}
|
|
37
|
+
* instead.
|
|
38
|
+
*
|
|
39
|
+
* @param rgba RGBA encoded number
|
|
40
|
+
* @param alpha Normalized alpha value (Range: 0.0 - 1.0)
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
export declare function mergeColorAlpha(rgba: number, alpha: number): number;
|
|
44
|
+
/**
|
|
45
|
+
* RGB components should not be premultiplied when using Canvas renderer
|
|
46
|
+
* @param mode Renderer mode
|
|
47
|
+
*/
|
|
48
|
+
export declare function setPremultiplyMode(mode: 'webgl' | 'canvas'): void;
|
|
49
|
+
/**
|
|
50
|
+
* Given an RGBA encoded number, returns back the RGBA number with it's alpha
|
|
51
|
+
* component multiplied by the passed `alpha` parameter.
|
|
52
|
+
*
|
|
53
|
+
* For the webGl renderer, each color channel is premultiplied by the final alpha value.
|
|
54
|
+
*
|
|
55
|
+
* @remarks
|
|
56
|
+
* If `flipEndianess` is set to true, the function will returned an ABGR encoded number
|
|
57
|
+
* which is useful when the color value needs to be passed into a shader attribute.
|
|
58
|
+
*
|
|
59
|
+
* NOTE: Depending on the mode set by {@link setPremultiplyMode}, this method returns
|
|
60
|
+
* a PREMULTIPLIED alpha color which is generally only useful in the context of the
|
|
61
|
+
* internal rendering process. Use {@link mergeColorAlpha} if you need to blend an alpha
|
|
62
|
+
* value into a color in the context of the Renderer's main API.
|
|
63
|
+
*
|
|
64
|
+
* @internalRemarks
|
|
65
|
+
* Do not expose this method in the main API because Renderer users should instead use
|
|
66
|
+
* {@link mergeColorAlpha} to manipulate the alpha value of a color.
|
|
67
|
+
*
|
|
68
|
+
* @internal
|
|
69
|
+
* @param rgba RGBA encoded number
|
|
70
|
+
* @param alpha Normalized alpha value (Range: 0.0 - 1.0)
|
|
71
|
+
* @param flipEndianess Flip the endianess. RGBA becomes encoded as ABGR (for inserting colors into shader attributes)
|
|
72
|
+
* @returns
|
|
73
|
+
*/
|
|
74
|
+
export declare function mergeColorAlphaPremultiplied(rgba: number, alpha: number, flipEndianess?: boolean): number;
|
|
75
|
+
/**
|
|
76
|
+
* Returns true if the given object has the given "own" property.
|
|
77
|
+
*
|
|
78
|
+
* @param obj
|
|
79
|
+
* @param prop
|
|
80
|
+
* @returns
|
|
81
|
+
*/
|
|
82
|
+
export declare function hasOwn(obj: object, prop: string | number | symbol): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Converts degrees to radians
|
|
85
|
+
*
|
|
86
|
+
* @param degrees
|
|
87
|
+
* @returns
|
|
88
|
+
*/
|
|
89
|
+
export declare function deg2Rad(degrees: number): number;
|
|
90
|
+
/**
|
|
91
|
+
* Returns image aspect ratio
|
|
92
|
+
*
|
|
93
|
+
* @param width
|
|
94
|
+
* @param height
|
|
95
|
+
* @returns
|
|
96
|
+
*/
|
|
97
|
+
export declare function getImageAspectRatio(width: number, height: number): number;
|
|
98
|
+
/**
|
|
99
|
+
* Checks import.meta if env is production
|
|
100
|
+
*
|
|
101
|
+
* @returns
|
|
102
|
+
*/
|
|
103
|
+
export declare function isProductionEnvironment(): boolean;
|
|
104
|
+
export declare function getNewId(): number;
|
|
105
|
+
/**
|
|
106
|
+
* Makes a deep clone of an object
|
|
107
|
+
* @param object
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
110
|
+
export declare function deepClone<T>(obj: T): T;
|