@lightningjs/renderer 3.0.0-beta5 → 3.0.0-beta7
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/COPYING +1 -0
- package/LICENSE +202 -202
- package/NOTICE +3 -3
- package/README.md +147 -147
- package/dist/src/core/CoreNode.d.ts +15 -16
- package/dist/src/core/CoreNode.js +41 -37
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.js +0 -1
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.js +10 -5
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +16 -0
- package/dist/src/core/Stage.js +39 -3
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.js +3 -4
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +1 -1
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +1 -0
- package/dist/src/core/lib/utils.js +3 -0
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +1 -2
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +1 -3
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +8 -2
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/Border.js +86 -63
- package/dist/src/core/shaders/webgl/Border.js.map +1 -1
- package/dist/src/core/shaders/webgl/Default.js +47 -47
- package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
- package/dist/src/core/shaders/webgl/HolePunch.js +32 -32
- package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
- package/dist/src/core/shaders/webgl/RadialGradient.js +33 -33
- package/dist/src/core/shaders/webgl/Rounded.js +71 -71
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +104 -72
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +123 -86
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
- package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
- package/dist/src/core/shaders/webgl/Shadow.js +83 -83
- package/dist/src/core/temp.js +77 -0
- package/dist/src/core/temp.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +3 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.js +5 -0
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/main-api/Inspector.js +1 -1
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.js +3 -4
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/utils.d.ts +1 -6
- package/dist/src/utils.js +2 -9
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/canvas-shaders.ts +28 -28
- package/exports/canvas.ts +45 -45
- package/exports/index.ts +90 -90
- package/exports/inspector.ts +24 -24
- package/exports/utils.ts +44 -44
- package/exports/webgl-shaders.ts +28 -28
- package/exports/webgl.ts +50 -50
- package/package.json +1 -3
- package/src/common/CommonTypes.ts +146 -146
- package/src/common/EventEmitter.ts +77 -77
- package/src/common/IAnimationController.ts +92 -92
- package/src/common/IEventEmitter.ts +28 -28
- package/src/core/CoreNode.test.ts +202 -203
- package/src/core/CoreNode.ts +2495 -2494
- package/src/core/CoreShaderManager.ts +188 -188
- package/src/core/CoreTextNode.ts +448 -449
- package/src/core/CoreTextureManager.ts +607 -601
- package/src/core/Stage.ts +797 -754
- package/src/core/TextureMemoryManager.ts +394 -395
- package/src/core/animations/AnimationManager.ts +38 -38
- package/src/core/animations/CoreAnimation.ts +284 -284
- package/src/core/animations/CoreAnimationController.ts +157 -157
- package/src/core/lib/ContextSpy.ts +41 -41
- package/src/core/lib/ImageWorker.ts +286 -280
- package/src/core/lib/Matrix3d.ts +244 -244
- package/src/core/lib/RenderCoords.ts +71 -71
- package/src/core/lib/WebGlContextWrapper.ts +1374 -1374
- package/src/core/lib/textureCompression.ts +152 -152
- package/src/core/lib/textureSvg.ts +78 -78
- package/src/core/lib/utils.ts +390 -386
- package/src/core/lib/validateImageBitmap.ts +87 -87
- package/src/core/platforms/Platform.ts +77 -77
- package/src/core/platforms/web/WebPlatform.ts +84 -84
- package/src/core/renderers/CoreContextTexture.ts +43 -43
- package/src/core/renderers/CoreRenderOp.ts +22 -22
- package/src/core/renderers/CoreRenderer.ts +109 -109
- package/src/core/renderers/CoreShaderNode.ts +165 -165
- package/src/core/renderers/CoreShaderProgram.ts +23 -23
- package/src/core/renderers/canvas/CanvasRenderer.ts +298 -298
- package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -99
- package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +220 -220
- package/src/core/renderers/canvas/internal/ColorUtils.ts +85 -85
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +86 -86
- package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +301 -301
- package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -161
- package/src/core/renderers/webgl/WebGlRenderer.ts +748 -750
- package/src/core/renderers/webgl/WebGlShaderNode.ts +437 -437
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -318
- package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
- package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
- package/src/core/shaders/canvas/Border.ts +78 -78
- package/src/core/shaders/canvas/HolePunch.ts +62 -62
- package/src/core/shaders/canvas/LinearGradient.ts +69 -69
- package/src/core/shaders/canvas/RadialGradient.ts +113 -113
- package/src/core/shaders/canvas/Rounded.ts +55 -55
- package/src/core/shaders/canvas/RoundedWithBorder.ts +72 -68
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -88
- package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -69
- package/src/core/shaders/canvas/Shadow.ts +52 -52
- package/src/core/shaders/canvas/utils/render.ts +151 -151
- package/src/core/shaders/templates/BorderTemplate.ts +115 -115
- package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
- package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
- package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
- package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
- package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
- package/src/core/shaders/templates/shaderUtils.ts +47 -47
- package/src/core/shaders/webgl/Border.ts +116 -96
- package/src/core/shaders/webgl/Default.ts +89 -89
- package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
- package/src/core/shaders/webgl/HolePunch.ts +78 -78
- package/src/core/shaders/webgl/LinearGradient.ts +81 -81
- package/src/core/shaders/webgl/RadialGradient.ts +84 -84
- package/src/core/shaders/webgl/Rounded.ts +117 -117
- package/src/core/shaders/webgl/RoundedWithBorder.ts +144 -114
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +166 -133
- package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
- package/src/core/shaders/webgl/SdfShader.ts +134 -134
- package/src/core/shaders/webgl/Shadow.ts +115 -115
- package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
- package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
- package/src/core/text-rendering/TrFontManager.ts +183 -183
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
- package/src/core/text-rendering/font-face-types/utils.ts +39 -39
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +514 -514
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +863 -863
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +849 -846
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +497 -497
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
- package/src/core/text-rendering/renderers/TextRenderer.ts +567 -567
- package/src/core/textures/ColorTexture.ts +102 -102
- package/src/core/textures/ImageTexture.ts +417 -410
- package/src/core/textures/NoiseTexture.ts +104 -104
- package/src/core/textures/RenderTexture.ts +85 -85
- package/src/core/textures/SubTexture.ts +205 -205
- package/src/core/textures/Texture.ts +358 -358
- package/src/core/utils.ts +227 -227
- package/src/env.d.ts +7 -7
- package/src/main-api/INode.ts +100 -100
- package/src/main-api/Inspector.ts +522 -522
- package/src/main-api/Renderer.ts +673 -675
- package/src/main-api/utils.ts +45 -45
- package/src/utils.ts +267 -267
- package/dist/exports/core-api.d.ts +0 -74
- package/dist/exports/core-api.js +0 -96
- package/dist/exports/core-api.js.map +0 -1
- package/dist/exports/main-api.d.ts +0 -30
- package/dist/exports/main-api.js +0 -45
- package/dist/exports/main-api.js.map +0 -1
- package/dist/src/core/CoreExtension.d.ts +0 -12
- package/dist/src/core/CoreExtension.js +0 -29
- package/dist/src/core/CoreExtension.js.map +0 -1
- package/dist/src/core/CoreStuff.js +0 -138
- package/dist/src/core/CoreStuff.js.map +0 -1
- package/dist/src/core/CoreTexturizer.d.ts +0 -14
- package/dist/src/core/CoreTexturizer.js +0 -47
- package/dist/src/core/CoreTexturizer.js.map +0 -1
- package/dist/src/core/LngNode.d.ts +0 -736
- package/dist/src/core/LngNode.js +0 -1174
- package/dist/src/core/LngNode.js.map +0 -1
- package/dist/src/core/Matrix2DContext.d.ts +0 -15
- package/dist/src/core/Matrix2DContext.js +0 -45
- package/dist/src/core/Matrix2DContext.js.map +0 -1
- package/dist/src/core/ShaderNode.d.ts +0 -10
- package/dist/src/core/ShaderNode.js +0 -30
- package/dist/src/core/ShaderNode.js.map +0 -1
- package/dist/src/core/TextNode.d.ts +0 -103
- package/dist/src/core/TextNode.js +0 -331
- package/dist/src/core/TextNode.js.map +0 -1
- package/dist/src/core/lib/Coords.d.ts +0 -14
- package/dist/src/core/lib/Coords.js +0 -55
- package/dist/src/core/lib/Coords.js.map +0 -1
- package/dist/src/core/lib/glm/common.d.ts +0 -162
- package/dist/src/core/lib/glm/common.js +0 -81
- package/dist/src/core/lib/glm/common.js.map +0 -1
- package/dist/src/core/lib/glm/index.d.ts +0 -11
- package/dist/src/core/lib/glm/index.js +0 -30
- package/dist/src/core/lib/glm/index.js.map +0 -1
- package/dist/src/core/lib/glm/mat2.d.ts +0 -219
- package/dist/src/core/lib/glm/mat2.js +0 -396
- package/dist/src/core/lib/glm/mat2.js.map +0 -1
- package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
- package/dist/src/core/lib/glm/mat2d.js +0 -442
- package/dist/src/core/lib/glm/mat2d.js.map +0 -1
- package/dist/src/core/lib/glm/mat3.d.ts +0 -283
- package/dist/src/core/lib/glm/mat3.js +0 -680
- package/dist/src/core/lib/glm/mat3.js.map +0 -1
- package/dist/src/core/lib/glm/mat4.d.ts +0 -550
- package/dist/src/core/lib/glm/mat4.js +0 -1802
- package/dist/src/core/lib/glm/mat4.js.map +0 -1
- package/dist/src/core/lib/glm/quat.d.ts +0 -363
- package/dist/src/core/lib/glm/quat.js +0 -693
- package/dist/src/core/lib/glm/quat.js.map +0 -1
- package/dist/src/core/lib/glm/quat2.d.ts +0 -356
- package/dist/src/core/lib/glm/quat2.js +0 -754
- package/dist/src/core/lib/glm/quat2.js.map +0 -1
- package/dist/src/core/lib/glm/vec2.d.ts +0 -365
- package/dist/src/core/lib/glm/vec2.js +0 -569
- package/dist/src/core/lib/glm/vec2.js.map +0 -1
- package/dist/src/core/lib/glm/vec3.d.ts +0 -406
- package/dist/src/core/lib/glm/vec3.js +0 -720
- package/dist/src/core/lib/glm/vec3.js.map +0 -1
- package/dist/src/core/lib/glm/vec4.d.ts +0 -330
- package/dist/src/core/lib/glm/vec4.js +0 -608
- package/dist/src/core/lib/glm/vec4.js.map +0 -1
- package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
- package/dist/src/core/renderers/CoreShaderManager.js +0 -33
- package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
- package/dist/src/core/scene/Scene.d.ts +0 -59
- package/dist/src/core/scene/Scene.js +0 -106
- package/dist/src/core/scene/Scene.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
- package/dist/src/main-api/ICoreDriver.d.ts +0 -27
- package/dist/src/main-api/ICoreDriver.js +0 -20
- package/dist/src/main-api/ICoreDriver.js.map +0 -1
- package/dist/src/main-api/IRenderDriver.d.ts +0 -20
- package/dist/src/main-api/IRenderDriver.js +0 -20
- package/dist/src/main-api/IRenderDriver.js.map +0 -1
- package/dist/src/main-api/IShaderController.d.ts +0 -14
- package/dist/src/main-api/IShaderController.js +0 -30
- package/dist/src/main-api/IShaderController.js.map +0 -1
- package/dist/src/main-api/IShaderNode.d.ts +0 -17
- package/dist/src/main-api/IShaderNode.js +0 -19
- package/dist/src/main-api/IShaderNode.js.map +0 -1
- package/dist/src/main-api/RendererMain.d.ts +0 -375
- package/dist/src/main-api/RendererMain.js +0 -365
- package/dist/src/main-api/RendererMain.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
- package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
- package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
- package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
- package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
- package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
- package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
- package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
- package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
- package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
- package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
- package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
- package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
- package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
- package/dist/src/render-drivers/utils.d.ts +0 -12
- package/dist/src/render-drivers/utils.js +0 -69
- package/dist/src/render-drivers/utils.js.map +0 -1
- package/scripts/please-use-pnpm.js +0 -13
- package/src/core/platform.ts +0 -64
- /package/dist/src/core/{CoreStuff.d.ts → temp.d.ts} +0 -0
|
@@ -1,188 +1,188 @@
|
|
|
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 { deepClone } from '../utils.js';
|
|
20
|
-
import {
|
|
21
|
-
CoreShaderNode,
|
|
22
|
-
resolveShaderProps,
|
|
23
|
-
type CoreShaderType,
|
|
24
|
-
} from './renderers/CoreShaderNode.js';
|
|
25
|
-
import type { CoreShaderProgram } from './renderers/CoreShaderProgram.js';
|
|
26
|
-
import type { Stage } from './Stage.js';
|
|
27
|
-
|
|
28
|
-
export type ShaderMap = Record<string, CoreShaderType>;
|
|
29
|
-
|
|
30
|
-
export type ExtractProps<Props> = {
|
|
31
|
-
[K in keyof Props]: Props[K] extends { default: infer D } ? D : Props[K];
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export type PartialShaderProps<Props> = Partial<ExtractProps<Props>>;
|
|
35
|
-
export type ExtractShaderProps<T extends keyof ShaderMap> = ExtractProps<
|
|
36
|
-
ShaderMap[T]['props']
|
|
37
|
-
>;
|
|
38
|
-
export type OptionalShaderProps<T extends keyof ShaderMap> = PartialShaderProps<
|
|
39
|
-
ShaderMap[T]['props']
|
|
40
|
-
>;
|
|
41
|
-
|
|
42
|
-
export class CoreShaderManager {
|
|
43
|
-
protected shTypes: ShaderMap = {};
|
|
44
|
-
protected shCache: Map<string, CoreShaderProgram> = new Map();
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* valuesCache is used to store calculations that can be shared between shader nodes.
|
|
48
|
-
*/
|
|
49
|
-
protected valuesCache: Map<string, Record<string, unknown>> = new Map();
|
|
50
|
-
protected valuesCacheUsage: Map<string, number> = new Map();
|
|
51
|
-
|
|
52
|
-
protected attachedShader: CoreShaderProgram | null = null;
|
|
53
|
-
|
|
54
|
-
constructor(readonly stage: Stage) {}
|
|
55
|
-
|
|
56
|
-
registerShaderType(name: string, shType: CoreShaderType): void {
|
|
57
|
-
/**
|
|
58
|
-
* block name duplicates
|
|
59
|
-
*/
|
|
60
|
-
if (this.shTypes[name] !== undefined) {
|
|
61
|
-
console.warn(
|
|
62
|
-
`ShaderType already exists with the name: ${name}. Breaking off registration.`,
|
|
63
|
-
);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Check renderer if shader type is supported.
|
|
68
|
-
*/
|
|
69
|
-
if (this.stage.renderer.supportsShaderType(shType) === false) {
|
|
70
|
-
console.warn(
|
|
71
|
-
`The renderer being used does not support this shader type. Breaking off registration.`,
|
|
72
|
-
);
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
this.shTypes[name] = deepClone(shType);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Loads a shader (if not already loaded) and returns a controller for it.
|
|
80
|
-
*
|
|
81
|
-
* @param shType
|
|
82
|
-
* @param props
|
|
83
|
-
* @returns
|
|
84
|
-
*/
|
|
85
|
-
createShader<Name extends keyof ShaderMap>(
|
|
86
|
-
name: Name,
|
|
87
|
-
props?: Record<string, unknown>,
|
|
88
|
-
): CoreShaderNode | null {
|
|
89
|
-
const shType = this.shTypes[name as string] as ShaderMap[Name];
|
|
90
|
-
if (shType === undefined) {
|
|
91
|
-
console.warn(
|
|
92
|
-
`ShaderType not found falling back on renderer default shader`,
|
|
93
|
-
);
|
|
94
|
-
return this.stage.defShaderNode;
|
|
95
|
-
}
|
|
96
|
-
let shaderKey = name as string;
|
|
97
|
-
if (shType.props !== undefined) {
|
|
98
|
-
/**
|
|
99
|
-
* if props is undefined create empty obj to fill
|
|
100
|
-
*/
|
|
101
|
-
props = props || {};
|
|
102
|
-
/**
|
|
103
|
-
* resolve shader values
|
|
104
|
-
*/
|
|
105
|
-
resolveShaderProps(props, shType.props);
|
|
106
|
-
if (shType.getCacheMarkers !== undefined) {
|
|
107
|
-
shaderKey += `-${shType.getCacheMarkers(props)}`;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
if (this.stage.renderer.mode === 'canvas') {
|
|
112
|
-
return this.stage.renderer.createShaderNode(shaderKey, shType, props);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* get shaderProgram by cacheKey
|
|
117
|
-
*/
|
|
118
|
-
let shProgram = this.shCache.get(shaderKey);
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* if shaderProgram was not found create a new one
|
|
122
|
-
*/
|
|
123
|
-
if (shProgram === undefined) {
|
|
124
|
-
shProgram = this.stage.renderer.createShaderProgram(shType, props)!;
|
|
125
|
-
this.shCache.set(shaderKey, shProgram);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return this.stage.renderer.createShaderNode(
|
|
129
|
-
shaderKey,
|
|
130
|
-
shType,
|
|
131
|
-
props,
|
|
132
|
-
shProgram,
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
mutateShaderValueUsage(key: string, mutation: number) {
|
|
137
|
-
let usage = this.valuesCacheUsage.get(key) || 0;
|
|
138
|
-
this.valuesCacheUsage.set(key, usage + mutation);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
getShaderValues(key: string) {
|
|
142
|
-
const values = this.valuesCache.get(key);
|
|
143
|
-
if (values === undefined) {
|
|
144
|
-
return undefined;
|
|
145
|
-
}
|
|
146
|
-
this.mutateShaderValueUsage(key, 1);
|
|
147
|
-
return values;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
setShaderValues(key: string, values: Record<string, unknown>) {
|
|
151
|
-
this.valuesCache.set(key, values);
|
|
152
|
-
this.mutateShaderValueUsage(key, 1);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
cleanup() {
|
|
156
|
-
const values = [...this.valuesCacheUsage.entries()].sort(
|
|
157
|
-
(entryA, entryB) => {
|
|
158
|
-
if (entryA[1] < entryB[1]) {
|
|
159
|
-
return -1;
|
|
160
|
-
} else if (entryA[1] > entryB[1]) {
|
|
161
|
-
return 1;
|
|
162
|
-
}
|
|
163
|
-
return 0;
|
|
164
|
-
},
|
|
165
|
-
);
|
|
166
|
-
|
|
167
|
-
for (let i = 0; i < values.length; i++) {
|
|
168
|
-
if (values[i]![1] > 0) {
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
this.valuesCacheUsage.delete(values[i]![0]);
|
|
172
|
-
this.valuesCache.delete(values[i]![0]);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
useShader(shader: CoreShaderProgram): void {
|
|
177
|
-
if (this.attachedShader === shader) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
if (this.attachedShader && this.attachedShader.detach) {
|
|
181
|
-
this.attachedShader.detach();
|
|
182
|
-
}
|
|
183
|
-
if (shader.attach) {
|
|
184
|
-
shader.attach();
|
|
185
|
-
}
|
|
186
|
-
this.attachedShader = shader;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
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 { deepClone } from '../utils.js';
|
|
20
|
+
import {
|
|
21
|
+
CoreShaderNode,
|
|
22
|
+
resolveShaderProps,
|
|
23
|
+
type CoreShaderType,
|
|
24
|
+
} from './renderers/CoreShaderNode.js';
|
|
25
|
+
import type { CoreShaderProgram } from './renderers/CoreShaderProgram.js';
|
|
26
|
+
import type { Stage } from './Stage.js';
|
|
27
|
+
|
|
28
|
+
export type ShaderMap = Record<string, CoreShaderType>;
|
|
29
|
+
|
|
30
|
+
export type ExtractProps<Props> = {
|
|
31
|
+
[K in keyof Props]: Props[K] extends { default: infer D } ? D : Props[K];
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export type PartialShaderProps<Props> = Partial<ExtractProps<Props>>;
|
|
35
|
+
export type ExtractShaderProps<T extends keyof ShaderMap> = ExtractProps<
|
|
36
|
+
ShaderMap[T]['props']
|
|
37
|
+
>;
|
|
38
|
+
export type OptionalShaderProps<T extends keyof ShaderMap> = PartialShaderProps<
|
|
39
|
+
ShaderMap[T]['props']
|
|
40
|
+
>;
|
|
41
|
+
|
|
42
|
+
export class CoreShaderManager {
|
|
43
|
+
protected shTypes: ShaderMap = {};
|
|
44
|
+
protected shCache: Map<string, CoreShaderProgram> = new Map();
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* valuesCache is used to store calculations that can be shared between shader nodes.
|
|
48
|
+
*/
|
|
49
|
+
protected valuesCache: Map<string, Record<string, unknown>> = new Map();
|
|
50
|
+
protected valuesCacheUsage: Map<string, number> = new Map();
|
|
51
|
+
|
|
52
|
+
protected attachedShader: CoreShaderProgram | null = null;
|
|
53
|
+
|
|
54
|
+
constructor(readonly stage: Stage) {}
|
|
55
|
+
|
|
56
|
+
registerShaderType(name: string, shType: CoreShaderType): void {
|
|
57
|
+
/**
|
|
58
|
+
* block name duplicates
|
|
59
|
+
*/
|
|
60
|
+
if (this.shTypes[name] !== undefined) {
|
|
61
|
+
console.warn(
|
|
62
|
+
`ShaderType already exists with the name: ${name}. Breaking off registration.`,
|
|
63
|
+
);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check renderer if shader type is supported.
|
|
68
|
+
*/
|
|
69
|
+
if (this.stage.renderer.supportsShaderType(shType) === false) {
|
|
70
|
+
console.warn(
|
|
71
|
+
`The renderer being used does not support this shader type. Breaking off registration.`,
|
|
72
|
+
);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
this.shTypes[name] = deepClone(shType);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Loads a shader (if not already loaded) and returns a controller for it.
|
|
80
|
+
*
|
|
81
|
+
* @param shType
|
|
82
|
+
* @param props
|
|
83
|
+
* @returns
|
|
84
|
+
*/
|
|
85
|
+
createShader<Name extends keyof ShaderMap>(
|
|
86
|
+
name: Name,
|
|
87
|
+
props?: Record<string, unknown>,
|
|
88
|
+
): CoreShaderNode | null {
|
|
89
|
+
const shType = this.shTypes[name as string] as ShaderMap[Name];
|
|
90
|
+
if (shType === undefined) {
|
|
91
|
+
console.warn(
|
|
92
|
+
`ShaderType not found falling back on renderer default shader`,
|
|
93
|
+
);
|
|
94
|
+
return this.stage.defShaderNode;
|
|
95
|
+
}
|
|
96
|
+
let shaderKey = name as string;
|
|
97
|
+
if (shType.props !== undefined) {
|
|
98
|
+
/**
|
|
99
|
+
* if props is undefined create empty obj to fill
|
|
100
|
+
*/
|
|
101
|
+
props = props || {};
|
|
102
|
+
/**
|
|
103
|
+
* resolve shader values
|
|
104
|
+
*/
|
|
105
|
+
resolveShaderProps(props, shType.props);
|
|
106
|
+
if (shType.getCacheMarkers !== undefined) {
|
|
107
|
+
shaderKey += `-${shType.getCacheMarkers(props)}`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (this.stage.renderer.mode === 'canvas') {
|
|
112
|
+
return this.stage.renderer.createShaderNode(shaderKey, shType, props);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* get shaderProgram by cacheKey
|
|
117
|
+
*/
|
|
118
|
+
let shProgram = this.shCache.get(shaderKey);
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* if shaderProgram was not found create a new one
|
|
122
|
+
*/
|
|
123
|
+
if (shProgram === undefined) {
|
|
124
|
+
shProgram = this.stage.renderer.createShaderProgram(shType, props)!;
|
|
125
|
+
this.shCache.set(shaderKey, shProgram);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return this.stage.renderer.createShaderNode(
|
|
129
|
+
shaderKey,
|
|
130
|
+
shType,
|
|
131
|
+
props,
|
|
132
|
+
shProgram,
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
mutateShaderValueUsage(key: string, mutation: number) {
|
|
137
|
+
let usage = this.valuesCacheUsage.get(key) || 0;
|
|
138
|
+
this.valuesCacheUsage.set(key, usage + mutation);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
getShaderValues(key: string) {
|
|
142
|
+
const values = this.valuesCache.get(key);
|
|
143
|
+
if (values === undefined) {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
this.mutateShaderValueUsage(key, 1);
|
|
147
|
+
return values;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
setShaderValues(key: string, values: Record<string, unknown>) {
|
|
151
|
+
this.valuesCache.set(key, values);
|
|
152
|
+
this.mutateShaderValueUsage(key, 1);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
cleanup() {
|
|
156
|
+
const values = [...this.valuesCacheUsage.entries()].sort(
|
|
157
|
+
(entryA, entryB) => {
|
|
158
|
+
if (entryA[1] < entryB[1]) {
|
|
159
|
+
return -1;
|
|
160
|
+
} else if (entryA[1] > entryB[1]) {
|
|
161
|
+
return 1;
|
|
162
|
+
}
|
|
163
|
+
return 0;
|
|
164
|
+
},
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
for (let i = 0; i < values.length; i++) {
|
|
168
|
+
if (values[i]![1] > 0) {
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
this.valuesCacheUsage.delete(values[i]![0]);
|
|
172
|
+
this.valuesCache.delete(values[i]![0]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
useShader(shader: CoreShaderProgram): void {
|
|
177
|
+
if (this.attachedShader === shader) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (this.attachedShader && this.attachedShader.detach) {
|
|
181
|
+
this.attachedShader.detach();
|
|
182
|
+
}
|
|
183
|
+
if (shader.attach) {
|
|
184
|
+
shader.attach();
|
|
185
|
+
}
|
|
186
|
+
this.attachedShader = shader;
|
|
187
|
+
}
|
|
188
|
+
}
|