@lightningjs/renderer 3.0.0-beta1 → 3.0.0-beta11
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/README.md +13 -27
- package/dist/exports/canvas.d.ts +1 -1
- package/dist/exports/canvas.js +1 -1
- package/dist/exports/canvas.js.map +1 -1
- package/dist/exports/index.d.ts +1 -5
- package/dist/exports/index.js +1 -5
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/utils.d.ts +2 -1
- package/dist/exports/utils.js +2 -1
- package/dist/exports/utils.js.map +1 -1
- package/dist/exports/webgl.d.ts +2 -1
- package/dist/exports/webgl.js +2 -1
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +45 -69
- package/dist/src/core/CoreNode.js +323 -305
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +3 -5
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +61 -87
- package/dist/src/core/CoreTextNode.js +276 -235
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +9 -11
- package/dist/src/core/CoreTextureManager.js +80 -91
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +75 -31
- package/dist/src/core/Stage.js +270 -136
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.d.ts +10 -1
- package/dist/src/core/TextureMemoryManager.js +112 -78
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.js +5 -0
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
- package/dist/src/core/animations/CoreAnimationController.js +11 -4
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +3 -2
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/RenderCoords.d.ts +9 -10
- package/dist/src/core/lib/RenderCoords.js +43 -55
- package/dist/src/core/lib/RenderCoords.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +51 -2
- package/dist/src/core/lib/WebGlContextWrapper.js +92 -22
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/colorCache.d.ts +1 -0
- package/dist/src/core/lib/colorCache.js +19 -0
- package/dist/src/core/lib/colorCache.js.map +1 -0
- package/dist/src/core/lib/colorParser.d.ts +21 -0
- package/dist/src/core/lib/colorParser.js +72 -0
- package/dist/src/core/lib/colorParser.js.map +1 -0
- package/dist/src/core/lib/utils.d.ts +3 -0
- package/dist/src/core/lib/utils.js +42 -0
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
- package/dist/src/core/lib/validateImageBitmap.js +4 -4
- package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
- package/dist/src/core/platform.js +29 -4
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/platforms/Platform.d.ts +37 -0
- package/dist/src/{main-api/IRenderDriver.js → core/platforms/Platform.js} +4 -2
- package/dist/src/core/platforms/Platform.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
- package/dist/src/core/platforms/web/WebPlatform.js +84 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +5 -2
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +3 -3
- package/dist/src/core/renderers/CoreShaderNode.js +8 -2
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +7 -6
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -2
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +10 -21
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +3 -5
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +2 -2
- package/dist/src/core/renderers/canvas/CanvasTexture.js +11 -9
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +3 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +5 -6
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +30 -18
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +5 -2
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +3 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +3 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +5 -6
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +30 -21
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +10 -2
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +37 -19
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +5 -3
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +144 -117
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +5 -3
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +55 -31
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/shaders/canvas/Border.js +1 -1
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +5 -3
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +13 -11
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +14 -6
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +10 -8
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +7 -5
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/utils.d.ts +5 -0
- package/dist/src/core/shaders/utils.js +41 -0
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.js +57 -34
- package/dist/src/core/shaders/webgl/Border.js.map +1 -1
- package/dist/src/core/shaders/webgl/HolePunch.js +4 -3
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/webgl/LinearGradient.js +5 -4
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +6 -5
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +79 -36
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +92 -42
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.js +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/shaders/webgl/Spinner.js +2 -0
- package/dist/src/core/shaders/webgl/Spinner.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +41 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js +159 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +22 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +366 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +152 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +368 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js +355 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +351 -0
- package/dist/src/{main-api/ICoreDriver.js → core/text-rendering/TextRenderer.js} +1 -1
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
- package/dist/src/core/text-rendering/Utils.d.ts +71 -0
- package/dist/src/core/text-rendering/Utils.js +212 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
- package/dist/src/{main-api/texture-usage-trackers/TextureUsageTracker.js → core/text-rendering/canvas/Settings.js} +3 -11
- package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
- package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
- package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
- package/dist/src/core/text-rendering/canvas/draw.js +132 -0
- package/dist/src/core/text-rendering/canvas/draw.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -6
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +30 -34
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
- package/dist/src/core/text-rendering/sdf/Utils.js +304 -0
- package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
- package/dist/src/core/{CoreExtension.js → text-rendering/sdf/index.js} +3 -12
- package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.d.ts +4 -3
- package/dist/src/core/textures/ImageTexture.js +36 -9
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +21 -2
- package/dist/src/core/textures/Texture.js +37 -6
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +1 -1
- package/dist/src/main-api/INode.d.ts +2 -2
- package/dist/src/main-api/Inspector.d.ts +6 -1
- package/dist/src/main-api/Inspector.js +43 -7
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +122 -46
- package/dist/src/main-api/Renderer.js +174 -37
- 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.ts +1 -1
- package/exports/index.ts +1 -8
- package/exports/utils.ts +7 -1
- package/exports/webgl.ts +3 -1
- package/package.json +2 -3
- package/src/core/CoreNode.test.ts +0 -1
- package/src/core/CoreNode.ts +403 -388
- package/src/core/CoreShaderManager.ts +5 -10
- package/src/core/CoreTextNode.ts +337 -302
- package/src/core/CoreTextureManager.ts +78 -110
- package/src/core/Stage.ts +344 -178
- package/src/core/TextureMemoryManager.ts +150 -100
- package/src/core/animations/CoreAnimation.ts +7 -0
- package/src/core/animations/CoreAnimationController.ts +13 -4
- package/src/core/lib/ImageWorker.ts +9 -2
- package/src/core/lib/RenderCoords.ts +52 -67
- package/src/core/lib/WebGlContextWrapper.ts +125 -68
- package/src/core/lib/colorCache.ts +20 -0
- package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +2 -2
- package/src/core/lib/utils.ts +51 -0
- package/src/core/lib/validateImageBitmap.ts +17 -6
- package/src/core/platforms/Platform.ts +77 -0
- package/src/core/platforms/web/WebPlatform.ts +121 -0
- package/src/core/renderers/CoreContextTexture.ts +1 -1
- package/src/core/renderers/CoreRenderer.ts +5 -2
- package/src/core/renderers/CoreShaderNode.ts +10 -6
- package/src/core/renderers/canvas/CanvasRenderer.ts +12 -28
- package/src/core/renderers/canvas/CanvasShaderNode.ts +3 -6
- package/src/core/renderers/canvas/CanvasTexture.ts +17 -14
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +5 -0
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +52 -43
- package/src/core/renderers/webgl/WebGlRenderOp.ts +46 -24
- package/src/core/renderers/webgl/WebGlRenderer.ts +177 -145
- package/src/core/renderers/webgl/WebGlShaderNode.ts +7 -5
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +68 -37
- package/src/core/shaders/canvas/Border.ts +1 -4
- package/src/core/shaders/canvas/LinearGradient.ts +8 -6
- package/src/core/shaders/canvas/RadialGradient.ts +22 -36
- package/src/core/shaders/canvas/RoundedWithBorder.ts +17 -11
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +14 -12
- package/src/core/shaders/canvas/RoundedWithShadow.ts +8 -7
- package/src/core/shaders/templates/BorderTemplate.ts +1 -1
- package/src/core/shaders/templates/HolePunchTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +1 -1
- package/src/core/shaders/templates/ShadowTemplate.ts +1 -1
- package/src/core/shaders/{templates/shaderUtils.ts → utils.ts} +2 -3
- package/src/core/shaders/webgl/Border.ts +57 -37
- package/src/core/shaders/webgl/HolePunch.ts +4 -7
- package/src/core/shaders/webgl/LinearGradient.ts +5 -4
- package/src/core/shaders/webgl/RadialGradient.ts +7 -6
- package/src/core/shaders/webgl/RoundedWithBorder.ts +80 -39
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +92 -50
- package/src/core/shaders/webgl/SdfShader.ts +1 -4
- package/src/core/text-rendering/CanvasFontHandler.ts +210 -0
- package/src/core/text-rendering/CanvasTextRenderer.ts +622 -0
- package/src/core/text-rendering/SdfFontHandler.ts +554 -0
- package/src/core/text-rendering/SdfTextRenderer.ts +466 -0
- package/src/core/text-rendering/TextRenderer.ts +406 -0
- package/src/core/text-rendering/{TextTextureRendererUtils.ts → Utils.ts} +5 -11
- package/src/core/text-rendering/canvas/Settings.ts +99 -0
- package/src/core/text-rendering/canvas/Utils.test.ts +206 -0
- package/src/core/text-rendering/canvas/Utils.ts +178 -0
- package/src/core/text-rendering/canvas/calculateRenderInfo.ts +299 -0
- package/src/core/text-rendering/canvas/draw.ts +165 -0
- package/src/core/text-rendering/sdf/Utils.test.ts +402 -0
- package/src/core/text-rendering/sdf/Utils.ts +436 -0
- package/src/core/text-rendering/sdf/index.ts +20 -0
- package/src/core/textures/ImageTexture.ts +69 -27
- package/src/core/textures/Texture.ts +50 -6
- package/src/main-api/INode.ts +4 -3
- package/src/main-api/Inspector.ts +53 -8
- package/src/main-api/Renderer.ts +311 -87
- package/src/utils.ts +10 -10
- 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.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.map +0 -1
- package/dist/src/main-api/IRenderDriver.d.ts +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.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/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
- package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
- package/src/core/text-rendering/TrFontManager.ts +0 -183
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
- package/src/core/text-rendering/font-face-types/utils.ts +0 -39
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -815
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -841
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +0 -32
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +0 -38
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
- package/src/core/text-rendering/renderers/TextRenderer.ts +0 -550
- /package/dist/src/core/{CoreStuff.d.ts → shaders/webgl/Spinner.d.ts} +0 -0
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
4
4
|
|
|
5
5
|
import { assertTruthy } from '../../utils.js';
|
|
6
|
+
import type {
|
|
7
|
+
Vec2,
|
|
8
|
+
Vec3,
|
|
9
|
+
Vec4,
|
|
10
|
+
} from '../renderers/webgl/internal/ShaderUtils.js';
|
|
6
11
|
import { isWebGl2 } from '../renderers/webgl/internal/WebGlUtils.js';
|
|
7
12
|
|
|
8
13
|
/**
|
|
@@ -45,6 +50,7 @@ export class WebGlContextWrapper {
|
|
|
45
50
|
private boundArrayBuffer: WebGLBuffer | null;
|
|
46
51
|
private boundElementArrayBuffer: WebGLBuffer | null;
|
|
47
52
|
private curProgram: WebGLProgram | null;
|
|
53
|
+
private curUniformLocations: Record<string, WebGLUniformLocation> = {};
|
|
48
54
|
//#endregion Cached WebGL State
|
|
49
55
|
|
|
50
56
|
//#region Canvas
|
|
@@ -684,16 +690,23 @@ export class WebGlContextWrapper {
|
|
|
684
690
|
* @param program
|
|
685
691
|
* @returns object with numbers
|
|
686
692
|
*/
|
|
687
|
-
getUniformLocations(
|
|
693
|
+
getUniformLocations(
|
|
694
|
+
program: WebGLProgram,
|
|
695
|
+
): Record<string, WebGLUniformLocation> {
|
|
688
696
|
const gl = this.gl;
|
|
689
697
|
const length = gl.getProgramParameter(
|
|
690
698
|
program,
|
|
691
699
|
gl.ACTIVE_UNIFORMS,
|
|
692
700
|
) as number;
|
|
693
|
-
const result = {} as Record<string,
|
|
701
|
+
const result = {} as Record<string, WebGLUniformLocation>;
|
|
694
702
|
for (let i = 0; i < length; i++) {
|
|
695
|
-
const
|
|
696
|
-
|
|
703
|
+
const info = gl.getActiveUniform(program, i) as WebGLActiveInfo;
|
|
704
|
+
//remove bracket + value from uniform name;
|
|
705
|
+
let name = info.name.replace(/\[.*?\]/g, '');
|
|
706
|
+
result[name] = gl.getUniformLocation(
|
|
707
|
+
program,
|
|
708
|
+
name,
|
|
709
|
+
) as WebGLUniformLocation;
|
|
697
710
|
}
|
|
698
711
|
return result;
|
|
699
712
|
}
|
|
@@ -725,12 +738,16 @@ export class WebGlContextWrapper {
|
|
|
725
738
|
* @param program
|
|
726
739
|
* @returns
|
|
727
740
|
*/
|
|
728
|
-
useProgram(
|
|
741
|
+
useProgram(
|
|
742
|
+
program: WebGLProgram | null,
|
|
743
|
+
uniformLocations: Record<string, WebGLUniformLocation>,
|
|
744
|
+
) {
|
|
729
745
|
if (this.curProgram === program) {
|
|
730
746
|
return;
|
|
731
747
|
}
|
|
732
748
|
this.gl.useProgram(program);
|
|
733
749
|
this.curProgram = program;
|
|
750
|
+
this.curUniformLocations = uniformLocations;
|
|
734
751
|
}
|
|
735
752
|
|
|
736
753
|
/**
|
|
@@ -740,10 +757,7 @@ export class WebGlContextWrapper {
|
|
|
740
757
|
* @param v0 - The value to set.
|
|
741
758
|
*/
|
|
742
759
|
uniform1f(location: string, v0: number) {
|
|
743
|
-
this.gl.uniform1f(
|
|
744
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
745
|
-
v0,
|
|
746
|
-
);
|
|
760
|
+
this.gl.uniform1f(this.curUniformLocations[location] || null, v0);
|
|
747
761
|
}
|
|
748
762
|
|
|
749
763
|
/**
|
|
@@ -753,10 +767,7 @@ export class WebGlContextWrapper {
|
|
|
753
767
|
* @param value - The array of values to set.
|
|
754
768
|
*/
|
|
755
769
|
uniform1fv(location: string, value: Float32Array) {
|
|
756
|
-
this.gl.uniform1fv(
|
|
757
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
758
|
-
value,
|
|
759
|
-
);
|
|
770
|
+
this.gl.uniform1fv(this.curUniformLocations[location] || null, value);
|
|
760
771
|
}
|
|
761
772
|
|
|
762
773
|
/**
|
|
@@ -766,10 +777,7 @@ export class WebGlContextWrapper {
|
|
|
766
777
|
* @param v0 - The value to set.
|
|
767
778
|
*/
|
|
768
779
|
uniform1i(location: string, v0: number) {
|
|
769
|
-
this.gl.uniform1i(
|
|
770
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
771
|
-
v0,
|
|
772
|
-
);
|
|
780
|
+
this.gl.uniform1i(this.curUniformLocations[location] || null, v0);
|
|
773
781
|
}
|
|
774
782
|
|
|
775
783
|
/**
|
|
@@ -779,10 +787,7 @@ export class WebGlContextWrapper {
|
|
|
779
787
|
* @param value - The array of values to set.
|
|
780
788
|
*/
|
|
781
789
|
uniform1iv(location: string, value: Int32Array) {
|
|
782
|
-
this.gl.uniform1iv(
|
|
783
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
784
|
-
value,
|
|
785
|
-
);
|
|
790
|
+
this.gl.uniform1iv(this.curUniformLocations[location] || null, value);
|
|
786
791
|
}
|
|
787
792
|
|
|
788
793
|
/**
|
|
@@ -793,10 +798,20 @@ export class WebGlContextWrapper {
|
|
|
793
798
|
* @param v1 - The second component of the vector.
|
|
794
799
|
*/
|
|
795
800
|
uniform2f(location: string, v0: number, v1: number) {
|
|
801
|
+
this.gl.uniform2f(this.curUniformLocations[location] || null, v0, v1);
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* Sets the value of a vec3 uniform variable.
|
|
806
|
+
*
|
|
807
|
+
* @param location - The location of the uniform variable.
|
|
808
|
+
* @param v - array of 4 numbers.
|
|
809
|
+
*/
|
|
810
|
+
uniform2fa(location: string, value: Vec2) {
|
|
796
811
|
this.gl.uniform2f(
|
|
797
|
-
this.
|
|
798
|
-
|
|
799
|
-
|
|
812
|
+
this.curUniformLocations[location] || null,
|
|
813
|
+
value[0],
|
|
814
|
+
value[1],
|
|
800
815
|
);
|
|
801
816
|
}
|
|
802
817
|
|
|
@@ -807,10 +822,7 @@ export class WebGlContextWrapper {
|
|
|
807
822
|
* @param value - The array of vec2 values to set.
|
|
808
823
|
*/
|
|
809
824
|
uniform2fv(location: string, value: Float32Array) {
|
|
810
|
-
this.gl.uniform2fv(
|
|
811
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
812
|
-
value,
|
|
813
|
-
);
|
|
825
|
+
this.gl.uniform2fv(this.curUniformLocations[location] || null, value);
|
|
814
826
|
}
|
|
815
827
|
|
|
816
828
|
/**
|
|
@@ -821,11 +833,7 @@ export class WebGlContextWrapper {
|
|
|
821
833
|
* @param v1 - The second component of the vector.
|
|
822
834
|
*/
|
|
823
835
|
uniform2i(location: string, v0: number, v1: number) {
|
|
824
|
-
this.gl.uniform2i(
|
|
825
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
826
|
-
v0,
|
|
827
|
-
v1,
|
|
828
|
-
);
|
|
836
|
+
this.gl.uniform2i(this.curUniformLocations[location] || null, v0, v1);
|
|
829
837
|
}
|
|
830
838
|
|
|
831
839
|
/**
|
|
@@ -835,10 +843,7 @@ export class WebGlContextWrapper {
|
|
|
835
843
|
* @param value - The array of ivec2 values to set.
|
|
836
844
|
*/
|
|
837
845
|
uniform2iv(location: string, value: Int32Array) {
|
|
838
|
-
this.gl.uniform2iv(
|
|
839
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
840
|
-
value,
|
|
841
|
-
);
|
|
846
|
+
this.gl.uniform2iv(this.curUniformLocations[location] || null, value);
|
|
842
847
|
}
|
|
843
848
|
|
|
844
849
|
/**
|
|
@@ -850,11 +855,21 @@ export class WebGlContextWrapper {
|
|
|
850
855
|
* @param v2 - The third component of the vector.
|
|
851
856
|
*/
|
|
852
857
|
uniform3f(location: string, v0: number, v1: number, v2: number) {
|
|
858
|
+
this.gl.uniform3f(this.curUniformLocations[location] || null, v0, v1, v2);
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
/**
|
|
862
|
+
* Sets the value of a vec3 uniform variable.
|
|
863
|
+
*
|
|
864
|
+
* @param location - The location of the uniform variable.
|
|
865
|
+
* @param v - array of 4 numbers.
|
|
866
|
+
*/
|
|
867
|
+
uniform3fa(location: string, value: Vec3) {
|
|
853
868
|
this.gl.uniform3f(
|
|
854
|
-
this.
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
869
|
+
this.curUniformLocations[location] || null,
|
|
870
|
+
value[0],
|
|
871
|
+
value[1],
|
|
872
|
+
value[2],
|
|
858
873
|
);
|
|
859
874
|
}
|
|
860
875
|
|
|
@@ -865,10 +880,7 @@ export class WebGlContextWrapper {
|
|
|
865
880
|
* @param value - The array of vec3 values to set.
|
|
866
881
|
*/
|
|
867
882
|
uniform3fv(location: string, value: Float32Array) {
|
|
868
|
-
this.gl.uniform3fv(
|
|
869
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
870
|
-
value,
|
|
871
|
-
);
|
|
883
|
+
this.gl.uniform3fv(this.curUniformLocations[location] || null, value);
|
|
872
884
|
}
|
|
873
885
|
|
|
874
886
|
/**
|
|
@@ -880,12 +892,7 @@ export class WebGlContextWrapper {
|
|
|
880
892
|
* @param v2 - The third component of the vector.
|
|
881
893
|
*/
|
|
882
894
|
uniform3i(location: string, v0: number, v1: number, v2: number) {
|
|
883
|
-
this.gl.uniform3i(
|
|
884
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
885
|
-
v0,
|
|
886
|
-
v1,
|
|
887
|
-
v2,
|
|
888
|
-
);
|
|
895
|
+
this.gl.uniform3i(this.curUniformLocations[location] || null, v0, v1, v2);
|
|
889
896
|
}
|
|
890
897
|
|
|
891
898
|
/**
|
|
@@ -895,10 +902,7 @@ export class WebGlContextWrapper {
|
|
|
895
902
|
* @param value - The array of ivec3 values to set.
|
|
896
903
|
*/
|
|
897
904
|
uniform3iv(location: string, value: Int32Array) {
|
|
898
|
-
this.gl.uniform3iv(
|
|
899
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
900
|
-
value,
|
|
901
|
-
);
|
|
905
|
+
this.gl.uniform3iv(this.curUniformLocations[location] || null, value);
|
|
902
906
|
}
|
|
903
907
|
|
|
904
908
|
/**
|
|
@@ -912,7 +916,7 @@ export class WebGlContextWrapper {
|
|
|
912
916
|
*/
|
|
913
917
|
uniform4f(location: string, v0: number, v1: number, v2: number, v3: number) {
|
|
914
918
|
this.gl.uniform4f(
|
|
915
|
-
this.
|
|
919
|
+
this.curUniformLocations[location] || null,
|
|
916
920
|
v0,
|
|
917
921
|
v1,
|
|
918
922
|
v2,
|
|
@@ -920,6 +924,22 @@ export class WebGlContextWrapper {
|
|
|
920
924
|
);
|
|
921
925
|
}
|
|
922
926
|
|
|
927
|
+
/**
|
|
928
|
+
* Sets the value of a vec4 uniform variable.
|
|
929
|
+
*
|
|
930
|
+
* @param location - The location of the uniform variable.
|
|
931
|
+
* @param v - array of 4 numbers.
|
|
932
|
+
*/
|
|
933
|
+
uniform4fa(location: string, value: Vec4) {
|
|
934
|
+
this.gl.uniform4f(
|
|
935
|
+
this.curUniformLocations[location] || null,
|
|
936
|
+
value[0],
|
|
937
|
+
value[1],
|
|
938
|
+
value[2],
|
|
939
|
+
value[3],
|
|
940
|
+
);
|
|
941
|
+
}
|
|
942
|
+
|
|
923
943
|
/**
|
|
924
944
|
* Sets the value of a vec4 array uniform variable.
|
|
925
945
|
*
|
|
@@ -927,10 +947,7 @@ export class WebGlContextWrapper {
|
|
|
927
947
|
* @param value - The array of vec4 values to set.
|
|
928
948
|
*/
|
|
929
949
|
uniform4fv(location: string, value: Float32Array) {
|
|
930
|
-
this.gl.uniform4fv(
|
|
931
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
932
|
-
value,
|
|
933
|
-
);
|
|
950
|
+
this.gl.uniform4fv(this.curUniformLocations[location] || null, value);
|
|
934
951
|
}
|
|
935
952
|
|
|
936
953
|
/**
|
|
@@ -944,7 +961,7 @@ export class WebGlContextWrapper {
|
|
|
944
961
|
*/
|
|
945
962
|
uniform4i(location: string, v0: number, v1: number, v2: number, v3: number) {
|
|
946
963
|
this.gl.uniform4i(
|
|
947
|
-
this.
|
|
964
|
+
this.curUniformLocations[location] || null,
|
|
948
965
|
v0,
|
|
949
966
|
v1,
|
|
950
967
|
v2,
|
|
@@ -959,10 +976,7 @@ export class WebGlContextWrapper {
|
|
|
959
976
|
* @param value - The array of ivec4 values to set.
|
|
960
977
|
*/
|
|
961
978
|
uniform4iv(location: string, value: Int32Array) {
|
|
962
|
-
this.gl.uniform4iv(
|
|
963
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
964
|
-
value,
|
|
965
|
-
);
|
|
979
|
+
this.gl.uniform4iv(this.curUniformLocations[location] || null, value);
|
|
966
980
|
}
|
|
967
981
|
|
|
968
982
|
/**
|
|
@@ -974,7 +988,7 @@ export class WebGlContextWrapper {
|
|
|
974
988
|
*/
|
|
975
989
|
uniformMatrix2fv(location: string, value: Float32Array) {
|
|
976
990
|
this.gl.uniformMatrix2fv(
|
|
977
|
-
this.
|
|
991
|
+
this.curUniformLocations[location] || null,
|
|
978
992
|
false,
|
|
979
993
|
value,
|
|
980
994
|
);
|
|
@@ -987,7 +1001,7 @@ export class WebGlContextWrapper {
|
|
|
987
1001
|
*/
|
|
988
1002
|
uniformMatrix3fv(location: string, value: Float32Array) {
|
|
989
1003
|
this.gl.uniformMatrix3fv(
|
|
990
|
-
this.
|
|
1004
|
+
this.curUniformLocations[location] || null,
|
|
991
1005
|
false,
|
|
992
1006
|
value,
|
|
993
1007
|
);
|
|
@@ -1000,7 +1014,7 @@ export class WebGlContextWrapper {
|
|
|
1000
1014
|
*/
|
|
1001
1015
|
uniformMatrix4fv(location: string, value: Float32Array) {
|
|
1002
1016
|
this.gl.uniformMatrix4fv(
|
|
1003
|
-
this.
|
|
1017
|
+
this.curUniformLocations[location] || null,
|
|
1004
1018
|
false,
|
|
1005
1019
|
value,
|
|
1006
1020
|
);
|
|
@@ -1032,6 +1046,19 @@ export class WebGlContextWrapper {
|
|
|
1032
1046
|
this.gl.drawElements(mode, count, type, offset);
|
|
1033
1047
|
}
|
|
1034
1048
|
|
|
1049
|
+
/**
|
|
1050
|
+
* ```
|
|
1051
|
+
* gl.drawArrays(mode, first, count);
|
|
1052
|
+
* ```
|
|
1053
|
+
*
|
|
1054
|
+
* @param mode
|
|
1055
|
+
* @param first
|
|
1056
|
+
* @param count
|
|
1057
|
+
*/
|
|
1058
|
+
drawArrays(mode: GLenum, first: GLint, count: GLsizei) {
|
|
1059
|
+
this.gl.drawArrays(mode, first, count);
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1035
1062
|
/**
|
|
1036
1063
|
* ```
|
|
1037
1064
|
* gl.drawArrays(mode, first, count);
|
|
@@ -1269,6 +1296,36 @@ export class WebGlContextWrapper {
|
|
|
1269
1296
|
deleteShader(shader: WebGLShader) {
|
|
1270
1297
|
this.gl.deleteShader(shader);
|
|
1271
1298
|
}
|
|
1299
|
+
|
|
1300
|
+
/**
|
|
1301
|
+
* ```
|
|
1302
|
+
* gl.deleteBuffer(buffer);
|
|
1303
|
+
* ```
|
|
1304
|
+
*
|
|
1305
|
+
* @param buffer - The buffer to delete
|
|
1306
|
+
*/
|
|
1307
|
+
deleteBuffer(buffer: WebGLBuffer) {
|
|
1308
|
+
const { gl } = this;
|
|
1309
|
+
gl.deleteBuffer(buffer);
|
|
1310
|
+
|
|
1311
|
+
// Reset bound buffers if they match the deleted buffer
|
|
1312
|
+
if (this.boundArrayBuffer === buffer) {
|
|
1313
|
+
this.boundArrayBuffer = null;
|
|
1314
|
+
}
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
/**
|
|
1318
|
+
* ```
|
|
1319
|
+
* gl.deleteVertexArray(vertexArray);
|
|
1320
|
+
* ```
|
|
1321
|
+
*
|
|
1322
|
+
* @param vertexArray - The vertex array object to delete
|
|
1323
|
+
*/
|
|
1324
|
+
deleteVertexArray(vertexArray: WebGLVertexArrayObject) {
|
|
1325
|
+
if (this.isWebGl2()) {
|
|
1326
|
+
(this.gl as WebGL2RenderingContext).deleteVertexArray(vertexArray);
|
|
1327
|
+
}
|
|
1328
|
+
}
|
|
1272
1329
|
}
|
|
1273
1330
|
|
|
1274
1331
|
// prettier-ignore
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { parseToAbgrString, parseToRgbaString } from './colorParser.js';
|
|
2
|
+
|
|
3
|
+
const parsedArgbColors: Map<number, string> = new Map();
|
|
4
|
+
const parsedRgbaColors: Map<number, string> = new Map();
|
|
5
|
+
|
|
6
|
+
export function normalizeCanvasColor(color: number, isRGBA: boolean = false) {
|
|
7
|
+
let targetCache = isRGBA === true ? parsedRgbaColors : parsedArgbColors;
|
|
8
|
+
let out = targetCache.get(color);
|
|
9
|
+
if (out !== undefined) {
|
|
10
|
+
return out;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (isRGBA === true) {
|
|
14
|
+
out = parseToRgbaString(color);
|
|
15
|
+
} else {
|
|
16
|
+
out = parseToAbgrString(color);
|
|
17
|
+
}
|
|
18
|
+
targetCache.set(color, out);
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
@@ -47,7 +47,7 @@ export function parseColor(abgr: number): IParsedColor {
|
|
|
47
47
|
return { isWhite: false, a, r, g, b };
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
export function parseToAbgrString(abgr: number) {
|
|
50
|
+
export function parseToAbgrString(abgr: number): string {
|
|
51
51
|
const a = ((abgr >>> 24) & 0xff) / 255;
|
|
52
52
|
const b = (abgr >>> 16) & 0xff & 0xff;
|
|
53
53
|
const g = (abgr >>> 8) & 0xff & 0xff;
|
|
@@ -55,7 +55,7 @@ export function parseToAbgrString(abgr: number) {
|
|
|
55
55
|
return `rgba(${r},${g},${b},${a})`;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
export function parseToRgbaString(rgba: number) {
|
|
58
|
+
export function parseToRgbaString(rgba: number): string {
|
|
59
59
|
const r = (rgba >>> 24) & 0xff;
|
|
60
60
|
const g = (rgba >>> 16) & 0xff & 0xff;
|
|
61
61
|
const b = (rgba >>> 8) & 0xff & 0xff;
|
package/src/core/lib/utils.ts
CHANGED
|
@@ -255,6 +255,10 @@ export function boundLargeThanBound(bound1: Bound, bound2: Bound) {
|
|
|
255
255
|
);
|
|
256
256
|
}
|
|
257
257
|
|
|
258
|
+
export function pointInBound(x: number, y: number, bound: Bound) {
|
|
259
|
+
return !(x < bound.x1 || x > bound.x2 || y < bound.y1 || y > bound.y2);
|
|
260
|
+
}
|
|
261
|
+
|
|
258
262
|
export function isBoundPositive(bound: Bound): boolean {
|
|
259
263
|
return bound.x1 < bound.x2 && bound.y1 < bound.y2;
|
|
260
264
|
}
|
|
@@ -359,3 +363,50 @@ export function calcFactoredRadiusArray(
|
|
|
359
363
|
result[3] *= factor;
|
|
360
364
|
return result;
|
|
361
365
|
}
|
|
366
|
+
|
|
367
|
+
export function dataURIToBlob(dataURI: string): Blob {
|
|
368
|
+
dataURI = dataURI.replace(/^data:/, '');
|
|
369
|
+
|
|
370
|
+
const type = dataURI.match(/image\/[^;]+/)?.[0] || '';
|
|
371
|
+
const base64 = dataURI.replace(/^[^,]+,/, '');
|
|
372
|
+
|
|
373
|
+
const sliceSize = 1024;
|
|
374
|
+
const byteCharacters = atob(base64);
|
|
375
|
+
const bytesLength = byteCharacters.length;
|
|
376
|
+
const slicesCount = Math.ceil(bytesLength / sliceSize);
|
|
377
|
+
const byteArrays = new Array(slicesCount);
|
|
378
|
+
|
|
379
|
+
for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
|
|
380
|
+
const begin = sliceIndex * sliceSize;
|
|
381
|
+
const end = Math.min(begin + sliceSize, bytesLength);
|
|
382
|
+
|
|
383
|
+
const bytes = new Array(end - begin);
|
|
384
|
+
for (let offset = begin, i = 0; offset < end; ++i, ++offset) {
|
|
385
|
+
bytes[i] = byteCharacters[offset]?.charCodeAt(0);
|
|
386
|
+
}
|
|
387
|
+
byteArrays[sliceIndex] = new Uint8Array(bytes);
|
|
388
|
+
}
|
|
389
|
+
return new Blob(byteArrays, { type });
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
export function fetchJson(
|
|
393
|
+
url: string,
|
|
394
|
+
responseType: XMLHttpRequestResponseType = '',
|
|
395
|
+
): Promise<unknown> {
|
|
396
|
+
return new Promise((resolve, reject) => {
|
|
397
|
+
const xhr = new XMLHttpRequest();
|
|
398
|
+
xhr.responseType = responseType;
|
|
399
|
+
xhr.onreadystatechange = function () {
|
|
400
|
+
if (xhr.readyState == XMLHttpRequest.DONE) {
|
|
401
|
+
// On most devices like WebOS and Tizen, the file protocol returns 0 while http(s) protocol returns 200
|
|
402
|
+
if (xhr.status === 0 || xhr.status === 200) {
|
|
403
|
+
resolve(xhr.response);
|
|
404
|
+
} else {
|
|
405
|
+
reject(xhr.statusText);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
};
|
|
409
|
+
xhr.open('GET', url, true);
|
|
410
|
+
xhr.send(null);
|
|
411
|
+
});
|
|
412
|
+
}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import type { Platform } from '../platforms/Platform.js';
|
|
2
|
+
|
|
1
3
|
export interface CreateImageBitmapSupport {
|
|
2
4
|
basic: boolean; // Supports createImageBitmap(image)
|
|
3
5
|
options: boolean; // Supports createImageBitmap(image, options)
|
|
4
6
|
full: boolean; // Supports createImageBitmap(image, sx, sy, sw, sh, options)
|
|
5
7
|
}
|
|
6
8
|
|
|
7
|
-
export async function validateCreateImageBitmap(
|
|
9
|
+
export async function validateCreateImageBitmap(
|
|
10
|
+
platform: Platform,
|
|
11
|
+
): Promise<CreateImageBitmapSupport> {
|
|
8
12
|
// Test if createImageBitmap is supported using a simple 1x1 PNG image
|
|
9
13
|
// prettier-ignore
|
|
10
14
|
const pngBinaryData = new Uint8Array([
|
|
@@ -47,14 +51,14 @@ export async function validateCreateImageBitmap(): Promise<CreateImageBitmapSupp
|
|
|
47
51
|
|
|
48
52
|
// Test basic createImageBitmap support
|
|
49
53
|
const blob = new Blob([pngBinaryData], { type: 'image/png' });
|
|
50
|
-
const bitmap = await createImageBitmap(blob);
|
|
54
|
+
const bitmap = await platform.createImageBitmap(blob);
|
|
51
55
|
bitmap.close?.();
|
|
52
56
|
support.basic = true;
|
|
53
57
|
|
|
54
58
|
// Test createImageBitmap with options support
|
|
55
59
|
try {
|
|
56
60
|
const options = { premultiplyAlpha: 'none' as const };
|
|
57
|
-
const bitmapWithOptions = await createImageBitmap(blob, options);
|
|
61
|
+
const bitmapWithOptions = await platform.createImageBitmap(blob, options);
|
|
58
62
|
bitmapWithOptions.close?.();
|
|
59
63
|
support.options = true;
|
|
60
64
|
} catch (e) {
|
|
@@ -63,9 +67,16 @@ export async function validateCreateImageBitmap(): Promise<CreateImageBitmapSupp
|
|
|
63
67
|
|
|
64
68
|
// Test createImageBitmap with full options support
|
|
65
69
|
try {
|
|
66
|
-
const bitmapWithFullOptions = await createImageBitmap(
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
const bitmapWithFullOptions = await platform.createImageBitmap(
|
|
71
|
+
blob,
|
|
72
|
+
0,
|
|
73
|
+
0,
|
|
74
|
+
1,
|
|
75
|
+
1,
|
|
76
|
+
{
|
|
77
|
+
premultiplyAlpha: 'none',
|
|
78
|
+
},
|
|
79
|
+
);
|
|
69
80
|
bitmapWithFullOptions.close?.();
|
|
70
81
|
support.full = true;
|
|
71
82
|
} catch (e) {
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
|
|
20
|
+
import { type Stage } from '../Stage.js';
|
|
21
|
+
|
|
22
|
+
export abstract class Platform {
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new canvas element.
|
|
25
|
+
* @returns The created HTMLCanvasElement.
|
|
26
|
+
*/
|
|
27
|
+
abstract createCanvas(): HTMLCanvasElement;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Get a DOM element by ID
|
|
31
|
+
* @returns The DOM element (or null)
|
|
32
|
+
*/
|
|
33
|
+
abstract getElementById(id: string): HTMLElement | null;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Starts the main rendering loop, calling the provided update function every frame.
|
|
37
|
+
* @param Stage - The stage for rendering
|
|
38
|
+
*/
|
|
39
|
+
abstract startLoop(stage: Stage): void;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Abstracted createImageBitmap method.
|
|
43
|
+
* @param blob - The image source to create the ImageBitmap from.
|
|
44
|
+
* @param sxOrOptions - The source rectangle x coordinate or ImageBitmapOptions.
|
|
45
|
+
* @param sy - The source rectangle y coordinate.
|
|
46
|
+
* @param sw - The source rectangle width.
|
|
47
|
+
* @param sh - The source rectangle height.
|
|
48
|
+
* @param options - The ImageBitmapOptions.
|
|
49
|
+
* @returns A promise that resolves with the created ImageBitmap.
|
|
50
|
+
*/
|
|
51
|
+
abstract createImageBitmap(blob: ImageBitmapSource): Promise<ImageBitmap>;
|
|
52
|
+
abstract createImageBitmap(
|
|
53
|
+
blob: ImageBitmapSource,
|
|
54
|
+
options: ImageBitmapOptions,
|
|
55
|
+
): Promise<ImageBitmap>;
|
|
56
|
+
abstract createImageBitmap(
|
|
57
|
+
blob: ImageBitmapSource,
|
|
58
|
+
sx: number,
|
|
59
|
+
sy: number,
|
|
60
|
+
sw: number,
|
|
61
|
+
sh: number,
|
|
62
|
+
): Promise<ImageBitmap>;
|
|
63
|
+
abstract createImageBitmap(
|
|
64
|
+
blob: ImageBitmapSource,
|
|
65
|
+
sx: number,
|
|
66
|
+
sy: number,
|
|
67
|
+
sw: number,
|
|
68
|
+
sh: number,
|
|
69
|
+
options: ImageBitmapOptions,
|
|
70
|
+
): Promise<ImageBitmap>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Retrieves the current timestamp.
|
|
74
|
+
* @returns The current timestamp.
|
|
75
|
+
*/
|
|
76
|
+
abstract getTimeStamp(): number;
|
|
77
|
+
}
|