@lightningtv/renderer 2.16.1 → 3.2.3
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/NOTICE +4 -0
- package/README.md +22 -28
- package/dist/exports/canvas-shaders.js +0 -16
- package/dist/exports/canvas-shaders.js.map +1 -1
- package/dist/exports/canvas.d.ts +8 -2
- package/dist/exports/canvas.js +8 -20
- package/dist/exports/canvas.js.map +1 -1
- package/dist/exports/index.d.ts +18 -13
- package/dist/exports/index.js +9 -27
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/inspector.js +0 -18
- package/dist/exports/inspector.js.map +1 -1
- package/dist/exports/utils.d.ts +2 -1
- package/dist/exports/utils.js +2 -19
- package/dist/exports/utils.js.map +1 -1
- package/dist/exports/webgl-shaders.js +0 -16
- package/dist/exports/webgl-shaders.js.map +1 -1
- package/dist/exports/webgl.d.ts +11 -2
- package/dist/exports/webgl.js +11 -20
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/common/CommonTypes.d.ts +15 -3
- package/dist/src/common/CommonTypes.js +0 -18
- package/dist/src/common/CommonTypes.js.map +1 -1
- package/dist/src/common/EventEmitter.js +0 -18
- package/dist/src/common/EventEmitter.js.map +1 -1
- package/dist/src/common/IEventEmitter.js +0 -16
- package/dist/src/common/IEventEmitter.js.map +1 -1
- package/dist/src/core/Autosizer.d.ts +35 -0
- package/dist/src/core/Autosizer.js +178 -0
- package/dist/src/core/Autosizer.js.map +1 -0
- package/dist/src/core/CoreNode.d.ts +138 -105
- package/dist/src/core/CoreNode.js +805 -526
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +29 -73
- package/dist/src/core/CoreShaderManager.js +92 -97
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +75 -87
- package/dist/src/core/CoreTextNode.js +380 -258
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +18 -3
- package/dist/src/core/CoreTextureManager.js +63 -107
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +82 -55
- package/dist/src/core/Stage.js +410 -247
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureError.d.ts +11 -0
- package/dist/src/core/TextureError.js +37 -0
- package/dist/src/core/TextureError.js.map +1 -0
- package/dist/src/core/TextureMemoryManager.d.ts +4 -3
- package/dist/src/core/TextureMemoryManager.js +103 -135
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/AnimationManager.js +0 -18
- package/dist/src/core/animations/AnimationManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +3 -4
- package/dist/src/core/animations/CoreAnimation.js +9 -76
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.js +0 -18
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/lib/ContextSpy.js +0 -18
- package/dist/src/core/lib/ContextSpy.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.d.ts +2 -2
- package/dist/src/core/lib/ImageWorker.js +31 -30
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/Matrix3d.d.ts +1 -0
- package/dist/src/core/lib/Matrix3d.js +7 -19
- package/dist/src/core/lib/Matrix3d.js.map +1 -1
- package/dist/src/core/lib/RenderCoords.d.ts +9 -10
- package/dist/src/core/lib/RenderCoords.js +27 -55
- package/dist/src/core/lib/RenderCoords.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +147 -59
- package/dist/src/core/lib/WebGlContextWrapper.js +252 -158
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/collectionUtils.d.ts +5 -0
- package/dist/src/core/lib/collectionUtils.js +82 -0
- package/dist/src/core/lib/collectionUtils.js.map +1 -0
- 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/{renderers/canvas/internal/ColorUtils.d.ts → lib/colorParser.d.ts} +2 -0
- package/dist/src/core/{renderers/canvas/internal/ColorUtils.js → lib/colorParser.js} +15 -19
- package/dist/src/core/lib/colorParser.js.map +1 -0
- package/dist/src/core/lib/textureCompression.d.ts +14 -2
- package/dist/src/core/lib/textureCompression.js +320 -86
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/lib/textureSvg.js +0 -18
- package/dist/src/core/lib/textureSvg.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +8 -2
- package/dist/src/core/lib/utils.js +21 -20
- 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/platforms/Platform.d.ts +5 -0
- package/dist/src/core/platforms/Platform.js +0 -18
- package/dist/src/core/platforms/Platform.js.map +1 -1
- package/dist/src/core/platforms/web/WebPlatform.d.ts +1 -0
- package/dist/src/core/platforms/web/WebPlatform.js +39 -7
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
- package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -0
- package/dist/src/core/renderers/CoreContextTexture.js +0 -18
- package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderOp.js +0 -18
- package/dist/src/core/renderers/CoreRenderOp.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +25 -23
- package/dist/src/core/renderers/CoreRenderer.js +1 -24
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +10 -0
- package/dist/src/core/renderers/CoreShaderNode.js +19 -2
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderProgram.js +0 -18
- package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +3 -5
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +86 -83
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +2 -17
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +3 -2
- package/dist/src/core/renderers/canvas/CanvasTexture.js +17 -31
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +33 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.js +80 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +2 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -24
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +13 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -23
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +16 -6
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +102 -67
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +31 -19
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +297 -200
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -4
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +5 -5
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +61 -34
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +1 -0
- package/dist/src/core/renderers/webgl/internal/BufferCollection.js +12 -21
- package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +0 -18
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +32 -5
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -18
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.js +0 -18
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.js.map +1 -1
- package/dist/src/core/shaders/canvas/Border.d.ts +8 -2
- package/dist/src/core/shaders/canvas/Border.js +67 -41
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/canvas/HolePunch.js +3 -19
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +2 -18
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +5 -21
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/Rounded.js +1 -17
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +6 -3
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +40 -26
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +2 -3
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +43 -23
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +4 -18
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/Shadow.js +0 -16
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/utils/render.d.ts +1 -1
- package/dist/src/core/shaders/canvas/utils/render.js +31 -34
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +11 -2
- package/dist/src/core/shaders/templates/BorderTemplate.js +30 -26
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +2 -18
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -16
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -18
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js +0 -16
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -16
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -2
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +3 -17
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -16
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -16
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -1
- package/dist/src/core/shaders/utils.js +0 -16
- package/dist/src/core/shaders/utils.js.map +1 -1
- package/dist/src/core/shaders/webgl/Border.js +75 -31
- package/dist/src/core/shaders/webgl/Border.js.map +1 -1
- package/dist/src/core/shaders/webgl/Default.js +6 -41
- package/dist/src/core/shaders/webgl/Default.js.map +1 -1
- package/dist/src/core/shaders/webgl/HolePunch.js +2 -18
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/webgl/LinearGradient.js +68 -30
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +52 -45
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/Rounded.js +25 -23
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +110 -48
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +114 -54
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +73 -34
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
- package/dist/src/core/shaders/webgl/SdfShader.js +7 -35
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/shaders/webgl/Shadow.js +39 -34
- package/dist/src/core/shaders/webgl/Shadow.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js +206 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +139 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +167 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +371 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +18 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js +301 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +384 -0
- package/dist/src/core/text-rendering/TextRenderer.js +2 -0
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/Utils.d.ts +30 -0
- package/dist/src/core/text-rendering/Utils.js +66 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/src/core/textures/ColorTexture.d.ts +1 -1
- package/dist/src/core/textures/ColorTexture.js +3 -22
- package/dist/src/core/textures/ColorTexture.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +10 -3
- package/dist/src/core/textures/ImageTexture.js +33 -62
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
- package/dist/src/core/textures/NoiseTexture.js +8 -26
- package/dist/src/core/textures/NoiseTexture.js.map +1 -1
- package/dist/src/core/textures/RenderTexture.d.ts +7 -7
- package/dist/src/core/textures/RenderTexture.js +12 -30
- package/dist/src/core/textures/RenderTexture.js.map +1 -1
- package/dist/src/core/textures/SubTexture.d.ts +6 -8
- package/dist/src/core/textures/SubTexture.js +19 -55
- package/dist/src/core/textures/SubTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +80 -16
- package/dist/src/core/textures/Texture.js +131 -37
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +2 -1
- package/dist/src/core/utils.js +1 -19
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/main-api/INode.d.ts +9 -9
- package/dist/src/main-api/INode.js.map +1 -1
- package/dist/src/main-api/Inspector.d.ts +135 -2
- package/dist/src/main-api/Inspector.js +507 -30
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +246 -162
- package/dist/src/main-api/Renderer.js +192 -152
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/utils.d.ts +23 -4
- package/dist/src/utils.js +50 -27
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/exports/canvas-shaders.ts +11 -0
- package/exports/canvas.ts +8 -20
- package/exports/index.ts +24 -44
- package/exports/inspector.ts +0 -19
- package/exports/utils.ts +7 -19
- package/exports/webgl-shaders.ts +12 -0
- package/exports/webgl.ts +15 -20
- package/package.json +23 -20
- package/src/common/CommonTypes.ts +20 -22
- package/src/common/EventEmitter.ts +0 -19
- package/src/common/IAnimationController.ts +0 -18
- package/src/common/IEventEmitter.ts +0 -17
- package/src/core/Autosizer.ts +205 -0
- package/src/core/CoreNode.test.ts +378 -46
- package/src/core/CoreNode.ts +1007 -659
- package/src/core/CoreShaderManager.ts +128 -250
- package/src/core/CoreTextNode.ts +457 -321
- package/src/core/CoreTextureManager.ts +94 -115
- package/src/core/Stage.ts +516 -312
- package/src/core/TextureError.ts +46 -0
- package/src/core/TextureMemoryManager.ts +139 -175
- package/src/core/animations/AnimationManager.ts +0 -19
- package/src/core/animations/CoreAnimation.ts +16 -96
- package/src/core/animations/CoreAnimationController.ts +0 -19
- package/src/core/lib/ContextSpy.ts +0 -19
- package/src/core/lib/ImageWorker.ts +43 -31
- package/src/core/lib/Matrix3d.ts +7 -20
- package/src/core/lib/RenderCoords.ts +36 -67
- package/src/core/lib/WebGlContextWrapper.ts +353 -237
- package/src/core/lib/collectionUtils.ts +99 -0
- package/src/core/lib/colorCache.ts +20 -0
- package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +16 -19
- package/src/core/lib/textureCompression.ts +434 -94
- package/src/core/lib/textureSvg.ts +0 -19
- package/src/core/lib/utils.ts +31 -19
- package/src/core/lib/validateImageBitmap.ts +17 -6
- package/src/core/platforms/Platform.ts +64 -0
- package/src/core/platforms/web/WebPlatform.ts +132 -0
- package/src/core/renderers/CoreContextTexture.ts +1 -19
- package/src/core/renderers/CoreRenderOp.ts +0 -19
- package/src/core/renderers/CoreRenderer.ts +34 -49
- package/src/core/renderers/CoreShaderNode.ts +202 -0
- package/src/core/renderers/CoreShaderProgram.ts +4 -0
- package/src/core/renderers/canvas/CanvasRenderer.ts +270 -0
- package/src/core/renderers/canvas/CanvasShaderNode.ts +79 -0
- package/src/core/renderers/canvas/{CanvasCoreTexture.ts → CanvasTexture.ts} +15 -27
- package/src/core/renderers/webgl/SdfRenderOp.ts +88 -0
- package/src/core/renderers/webgl/{WebGlCoreCtxRenderTexture.ts → WebGlCtxRenderTexture.ts} +15 -36
- package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +76 -0
- package/src/core/renderers/webgl/{WebGlCoreCtxTexture.ts → WebGlCtxTexture.ts} +89 -70
- package/src/core/renderers/webgl/WebGlRenderer.ts +850 -0
- package/src/core/renderers/webgl/WebGlShaderNode.ts +430 -0
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +356 -0
- package/src/core/renderers/webgl/internal/BufferCollection.ts +15 -23
- package/src/core/renderers/webgl/internal/RendererUtils.ts +0 -19
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -24
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +0 -19
- package/src/core/shaders/canvas/Border.ts +119 -0
- package/src/core/shaders/canvas/HolePunch.ts +38 -0
- package/src/core/shaders/canvas/LinearGradient.ts +54 -0
- package/src/core/shaders/canvas/RadialGradient.ts +82 -0
- package/src/core/shaders/canvas/Rounded.ts +38 -0
- package/src/core/shaders/canvas/RoundedWithBorder.ts +105 -0
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +118 -0
- package/src/core/shaders/canvas/RoundedWithShadow.ts +56 -0
- package/src/core/shaders/canvas/Shadow.ts +35 -0
- package/src/core/shaders/canvas/utils/render.ts +143 -0
- package/src/core/shaders/templates/BorderTemplate.ts +128 -0
- package/src/core/shaders/templates/HolePunchTemplate.ts +65 -0
- package/src/core/shaders/templates/LinearGradientTemplate.ts +54 -0
- package/src/core/shaders/templates/RadialGradientTemplate.ts +66 -0
- package/src/core/shaders/templates/RoundedTemplate.ts +81 -0
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +21 -0
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +23 -0
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +18 -0
- package/src/core/shaders/templates/ShadowTemplate.ts +89 -0
- package/src/core/shaders/utils.ts +30 -0
- package/src/core/shaders/webgl/Border.ts +159 -0
- package/src/core/shaders/webgl/Default.ts +52 -0
- package/src/core/shaders/webgl/HolePunch.ts +58 -0
- package/src/core/shaders/webgl/LinearGradient.ts +119 -0
- package/src/core/shaders/webgl/RadialGradient.ts +91 -0
- package/src/core/shaders/webgl/Rounded.ts +97 -0
- package/src/core/shaders/webgl/RoundedWithBorder.ts +212 -0
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +234 -0
- package/src/core/shaders/webgl/RoundedWithShadow.ts +132 -0
- package/src/core/shaders/webgl/SdfShader.ts +104 -0
- package/src/core/shaders/webgl/Shadow.ts +119 -0
- package/src/core/text-rendering/CanvasFontHandler.ts +285 -0
- package/src/core/text-rendering/CanvasTextRenderer.ts +236 -0
- package/src/core/text-rendering/SdfFontHandler.ts +566 -0
- package/src/core/text-rendering/SdfTextRenderer.ts +406 -0
- package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
- package/src/core/text-rendering/TextRenderer.ts +426 -0
- package/src/core/text-rendering/Utils.ts +80 -0
- package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +434 -0
- package/src/core/textures/ColorTexture.ts +7 -24
- package/src/core/textures/ImageTexture.ts +72 -78
- package/src/core/textures/NoiseTexture.ts +14 -31
- package/src/core/textures/RenderTexture.ts +18 -35
- package/src/core/textures/SubTexture.ts +25 -65
- package/src/core/textures/Texture.ts +182 -53
- package/src/core/utils.ts +9 -26
- package/src/main-api/INode.ts +10 -29
- package/src/main-api/Inspector.ts +794 -38
- package/src/main-api/Renderer.ts +476 -274
- package/src/utils.ts +83 -29
- package/dist/src/core/animations/SimpleAnimation.d.ts +0 -28
- package/dist/src/core/animations/SimpleAnimation.js +0 -96
- package/dist/src/core/animations/SimpleAnimation.js.map +0 -1
- package/dist/src/core/platform.d.ts +0 -10
- package/dist/src/core/platform.js +0 -81
- package/dist/src/core/platform.js.map +0 -1
- package/dist/src/core/renderers/CoreShader.d.ts +0 -9
- package/dist/src/core/renderers/CoreShader.js +0 -28
- package/dist/src/core/renderers/CoreShader.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -16
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -124
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -14
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +0 -138
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +0 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +0 -1
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -58
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -56
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -239
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -616
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -233
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -118
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
- package/dist/src/core/shaders/templates/shaderUtils.d.ts +0 -5
- package/dist/src/core/shaders/templates/shaderUtils.js +0 -41
- package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
- package/dist/src/core/shaders/webgl/Magnifier.d.ts +0 -46
- package/dist/src/core/shaders/webgl/Magnifier.js +0 -107
- package/dist/src/core/shaders/webgl/Magnifier.js.map +0 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder copy.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RoundedWithBorder copy.js +0 -218
- package/dist/src/core/shaders/webgl/RoundedWithBorder copy.js.map +0 -1
- package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +0 -12
- package/dist/src/core/text-rendering/TextRenderingUtils.js +0 -14
- package/dist/src/core/text-rendering/TextRenderingUtils.js.map +0 -1
- package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +0 -72
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js +0 -217
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +0 -1
- package/dist/src/core/text-rendering/TrFontManager.d.ts +0 -26
- package/dist/src/core/text-rendering/TrFontManager.js +0 -131
- package/dist/src/core/text-rendering/TrFontManager.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +0 -39
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +0 -125
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +0 -103
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +0 -21
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +0 -62
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +0 -88
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -118
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -63
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +0 -14
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -66
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/utils.d.ts +0 -1
- package/dist/src/core/text-rendering/font-face-types/utils.js +0 -38
- package/dist/src/core/text-rendering/font-face-types/utils.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +0 -59
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -397
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -120
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -551
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +0 -92
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -607
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +0 -12
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +0 -61
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +0 -33
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +0 -52
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +0 -13
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +0 -32
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +0 -23
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +0 -84
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +0 -4
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +0 -34
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +0 -20
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +0 -308
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +0 -10
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +0 -40
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +0 -26
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +0 -70
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +0 -16
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +0 -39
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +0 -373
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -178
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +0 -1
- package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
- package/dist/src/main-api/DynamicShaderController.js +0 -58
- package/dist/src/main-api/DynamicShaderController.js.map +0 -1
- package/dist/src/main-api/ShaderController.d.ts +0 -31
- package/dist/src/main-api/ShaderController.js +0 -37
- package/dist/src/main-api/ShaderController.js.map +0 -1
- package/scripts/please-use-pnpm.js +0 -13
- package/src/core/platform.ts +0 -100
- package/src/core/renderers/CoreShader.ts +0 -41
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +0 -375
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -231
- package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +0 -48
- package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +0 -50
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +0 -125
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +0 -821
- package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -365
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +0 -93
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -132
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +0 -580
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +0 -167
- package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -204
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +0 -87
- package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +0 -159
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +0 -127
- package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +0 -148
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +0 -67
- package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +0 -157
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +0 -171
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +0 -168
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +0 -187
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +0 -110
- package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +0 -196
- package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
- package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
- 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 -808
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -853
- 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 -557
- package/src/main-api/DynamicShaderController.ts +0 -104
- package/src/main-api/ShaderController.ts +0 -80
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
4
|
-
import { assertTruthy } from '../../utils.js';
|
|
4
|
+
import { assertTruthy, isProductionEnvironment } from '../../utils.js';
|
|
5
5
|
import { isWebGl2 } from '../renderers/webgl/internal/WebGlUtils.js';
|
|
6
6
|
/**
|
|
7
7
|
* Optimized WebGL Context Wrapper
|
|
@@ -41,6 +41,7 @@ export class WebGlContextWrapper {
|
|
|
41
41
|
boundArrayBuffer;
|
|
42
42
|
boundElementArrayBuffer;
|
|
43
43
|
curProgram;
|
|
44
|
+
curUniformLocations = {};
|
|
44
45
|
//#endregion Cached WebGL State
|
|
45
46
|
//#region Canvas
|
|
46
47
|
canvas;
|
|
@@ -61,6 +62,7 @@ export class WebGlContextWrapper {
|
|
|
61
62
|
TEXTURE_WRAP_S;
|
|
62
63
|
TEXTURE_WRAP_T;
|
|
63
64
|
LINEAR;
|
|
65
|
+
LINEAR_MIPMAP_LINEAR;
|
|
64
66
|
CLAMP_TO_EDGE;
|
|
65
67
|
RGB;
|
|
66
68
|
RGBA;
|
|
@@ -133,6 +135,7 @@ export class WebGlContextWrapper {
|
|
|
133
135
|
this.TEXTURE_WRAP_S = gl.TEXTURE_WRAP_S;
|
|
134
136
|
this.TEXTURE_WRAP_T = gl.TEXTURE_WRAP_T;
|
|
135
137
|
this.LINEAR = gl.LINEAR;
|
|
138
|
+
this.LINEAR_MIPMAP_LINEAR = gl.LINEAR_MIPMAP_LINEAR;
|
|
136
139
|
this.CLAMP_TO_EDGE = gl.CLAMP_TO_EDGE;
|
|
137
140
|
this.RGB = gl.RGB;
|
|
138
141
|
this.RGBA = gl.RGBA;
|
|
@@ -176,9 +179,8 @@ export class WebGlContextWrapper {
|
|
|
176
179
|
* @param textureUnit
|
|
177
180
|
*/
|
|
178
181
|
activeTexture(textureUnit) {
|
|
179
|
-
const { gl } = this;
|
|
180
182
|
if (this.activeTextureUnit !== textureUnit) {
|
|
181
|
-
gl.activeTexture(textureUnit + gl.TEXTURE0);
|
|
183
|
+
this.gl.activeTexture(textureUnit + this.gl.TEXTURE0);
|
|
182
184
|
this.activeTextureUnit = textureUnit;
|
|
183
185
|
}
|
|
184
186
|
}
|
|
@@ -192,16 +194,14 @@ export class WebGlContextWrapper {
|
|
|
192
194
|
* @param texture
|
|
193
195
|
*/
|
|
194
196
|
bindTexture(texture) {
|
|
195
|
-
|
|
196
|
-
if (texture2dUnits[activeTextureUnit] === texture) {
|
|
197
|
+
if (this.texture2dUnits[this.activeTextureUnit] === texture) {
|
|
197
198
|
return;
|
|
198
199
|
}
|
|
199
|
-
texture2dUnits[activeTextureUnit] = texture;
|
|
200
|
-
gl.bindTexture(this.gl.TEXTURE_2D, texture);
|
|
200
|
+
this.texture2dUnits[this.activeTextureUnit] = texture;
|
|
201
|
+
this.gl.bindTexture(this.gl.TEXTURE_2D, texture);
|
|
201
202
|
}
|
|
202
203
|
_getActiveTexture() {
|
|
203
|
-
|
|
204
|
-
return texture2dUnits[activeTextureUnit];
|
|
204
|
+
return this.texture2dUnits[this.activeTextureUnit];
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
207
207
|
* ```
|
|
@@ -215,29 +215,27 @@ export class WebGlContextWrapper {
|
|
|
215
215
|
* @returns
|
|
216
216
|
*/
|
|
217
217
|
texParameteri(pname, param) {
|
|
218
|
-
const { gl, texture2dParams } = this;
|
|
219
218
|
const activeTexture = this._getActiveTexture();
|
|
220
219
|
if (!activeTexture) {
|
|
221
220
|
throw new Error('No active texture');
|
|
222
221
|
}
|
|
223
|
-
let textureParams = texture2dParams.get(activeTexture);
|
|
222
|
+
let textureParams = this.texture2dParams.get(activeTexture);
|
|
224
223
|
if (!textureParams) {
|
|
225
224
|
textureParams = {};
|
|
226
|
-
texture2dParams.set(activeTexture, textureParams);
|
|
225
|
+
this.texture2dParams.set(activeTexture, textureParams);
|
|
227
226
|
}
|
|
228
227
|
if (textureParams[pname] === param) {
|
|
229
228
|
return;
|
|
230
229
|
}
|
|
231
230
|
textureParams[pname] = param;
|
|
232
|
-
gl.texParameteri(gl.TEXTURE_2D, pname, param);
|
|
231
|
+
this.gl.texParameteri(this.gl.TEXTURE_2D, pname, param);
|
|
233
232
|
}
|
|
234
233
|
texImage2D(level, internalFormat, widthOrFormat, heightOrType, borderOrSource, format, type, pixels) {
|
|
235
|
-
const { gl } = this;
|
|
236
234
|
if (format) {
|
|
237
|
-
gl.texImage2D(gl.TEXTURE_2D, level, internalFormat, widthOrFormat, heightOrType, borderOrSource, format, type, pixels);
|
|
235
|
+
this.gl.texImage2D(this.gl.TEXTURE_2D, level, internalFormat, widthOrFormat, heightOrType, borderOrSource, format, type, pixels);
|
|
238
236
|
}
|
|
239
237
|
else {
|
|
240
|
-
gl.texImage2D(gl.TEXTURE_2D, level, internalFormat, widthOrFormat, heightOrType, borderOrSource);
|
|
238
|
+
this.gl.texImage2D(this.gl.TEXTURE_2D, level, internalFormat, widthOrFormat, heightOrType, borderOrSource);
|
|
241
239
|
}
|
|
242
240
|
}
|
|
243
241
|
/**
|
|
@@ -249,8 +247,7 @@ export class WebGlContextWrapper {
|
|
|
249
247
|
* **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
|
|
250
248
|
*/
|
|
251
249
|
compressedTexImage2D(level, internalformat, width, height, border, data) {
|
|
252
|
-
|
|
253
|
-
gl.compressedTexImage2D(gl.TEXTURE_2D, level, internalformat, width, height, border, data);
|
|
250
|
+
this.gl.compressedTexImage2D(this.gl.TEXTURE_2D, level, internalformat, width, height, border, data);
|
|
254
251
|
}
|
|
255
252
|
/**
|
|
256
253
|
* ```
|
|
@@ -261,8 +258,7 @@ export class WebGlContextWrapper {
|
|
|
261
258
|
* @param param
|
|
262
259
|
*/
|
|
263
260
|
pixelStorei(pname, param) {
|
|
264
|
-
|
|
265
|
-
gl.pixelStorei(pname, param);
|
|
261
|
+
this.gl.pixelStorei(pname, param);
|
|
266
262
|
}
|
|
267
263
|
/**
|
|
268
264
|
* ```
|
|
@@ -273,8 +269,7 @@ export class WebGlContextWrapper {
|
|
|
273
269
|
* **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
|
|
274
270
|
*/
|
|
275
271
|
generateMipmap() {
|
|
276
|
-
|
|
277
|
-
gl.generateMipmap(gl.TEXTURE_2D);
|
|
272
|
+
this.gl.generateMipmap(this.gl.TEXTURE_2D);
|
|
278
273
|
}
|
|
279
274
|
/**
|
|
280
275
|
* ```
|
|
@@ -284,8 +279,7 @@ export class WebGlContextWrapper {
|
|
|
284
279
|
* @returns
|
|
285
280
|
*/
|
|
286
281
|
createTexture() {
|
|
287
|
-
|
|
288
|
-
return gl.createTexture();
|
|
282
|
+
return this.gl.createTexture();
|
|
289
283
|
}
|
|
290
284
|
/**
|
|
291
285
|
* ```
|
|
@@ -295,11 +289,10 @@ export class WebGlContextWrapper {
|
|
|
295
289
|
* @param texture
|
|
296
290
|
*/
|
|
297
291
|
deleteTexture(texture) {
|
|
298
|
-
const { gl } = this;
|
|
299
292
|
if (texture) {
|
|
300
293
|
this.texture2dParams.delete(texture);
|
|
301
294
|
}
|
|
302
|
-
gl.deleteTexture(texture);
|
|
295
|
+
this.gl.deleteTexture(texture);
|
|
303
296
|
}
|
|
304
297
|
/**
|
|
305
298
|
* ```
|
|
@@ -316,8 +309,7 @@ export class WebGlContextWrapper {
|
|
|
316
309
|
* ```
|
|
317
310
|
*/
|
|
318
311
|
viewport(x, y, width, height) {
|
|
319
|
-
|
|
320
|
-
gl.viewport(x, y, width, height);
|
|
312
|
+
this.gl.viewport(x, y, width, height);
|
|
321
313
|
}
|
|
322
314
|
/**
|
|
323
315
|
* ```
|
|
@@ -330,8 +322,7 @@ export class WebGlContextWrapper {
|
|
|
330
322
|
* @param alpha
|
|
331
323
|
*/
|
|
332
324
|
clearColor(red, green, blue, alpha) {
|
|
333
|
-
|
|
334
|
-
gl.clearColor(red, green, blue, alpha);
|
|
325
|
+
this.gl.clearColor(red, green, blue, alpha);
|
|
335
326
|
}
|
|
336
327
|
/**
|
|
337
328
|
* ```
|
|
@@ -340,15 +331,14 @@ export class WebGlContextWrapper {
|
|
|
340
331
|
* @param enable
|
|
341
332
|
*/
|
|
342
333
|
setScissorTest(enable) {
|
|
343
|
-
|
|
344
|
-
if (enable === scissorEnabled) {
|
|
334
|
+
if (enable === this.scissorEnabled) {
|
|
345
335
|
return;
|
|
346
336
|
}
|
|
347
337
|
if (enable) {
|
|
348
|
-
gl.enable(gl.SCISSOR_TEST);
|
|
338
|
+
this.gl.enable(this.gl.SCISSOR_TEST);
|
|
349
339
|
}
|
|
350
340
|
else {
|
|
351
|
-
gl.disable(gl.SCISSOR_TEST);
|
|
341
|
+
this.gl.disable(this.gl.SCISSOR_TEST);
|
|
352
342
|
}
|
|
353
343
|
this.scissorEnabled = enable;
|
|
354
344
|
}
|
|
@@ -363,12 +353,11 @@ export class WebGlContextWrapper {
|
|
|
363
353
|
* @param height
|
|
364
354
|
*/
|
|
365
355
|
scissor(x, y, width, height) {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
gl.scissor(x, y, width, height);
|
|
356
|
+
if (x !== this.scissorX ||
|
|
357
|
+
y !== this.scissorY ||
|
|
358
|
+
width !== this.scissorWidth ||
|
|
359
|
+
height !== this.scissorHeight) {
|
|
360
|
+
this.gl.scissor(x, y, width, height);
|
|
372
361
|
this.scissorX = x;
|
|
373
362
|
this.scissorY = y;
|
|
374
363
|
this.scissorWidth = width;
|
|
@@ -384,15 +373,14 @@ export class WebGlContextWrapper {
|
|
|
384
373
|
* @returns
|
|
385
374
|
*/
|
|
386
375
|
setBlend(blend) {
|
|
387
|
-
|
|
388
|
-
if (blend === blendEnabled) {
|
|
376
|
+
if (blend === this.blendEnabled) {
|
|
389
377
|
return;
|
|
390
378
|
}
|
|
391
379
|
if (blend) {
|
|
392
|
-
gl.enable(gl.BLEND);
|
|
380
|
+
this.gl.enable(this.gl.BLEND);
|
|
393
381
|
}
|
|
394
382
|
else {
|
|
395
|
-
gl.disable(gl.BLEND);
|
|
383
|
+
this.gl.disable(this.gl.BLEND);
|
|
396
384
|
}
|
|
397
385
|
this.blendEnabled = blend;
|
|
398
386
|
}
|
|
@@ -405,12 +393,11 @@ export class WebGlContextWrapper {
|
|
|
405
393
|
* @param dst
|
|
406
394
|
*/
|
|
407
395
|
blendFunc(src, dst) {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
dst
|
|
413
|
-
gl.blendFunc(src, dst);
|
|
396
|
+
if (src !== this.blendSrcRgb ||
|
|
397
|
+
dst !== this.blendDstRgb ||
|
|
398
|
+
src !== this.blendSrcAlpha ||
|
|
399
|
+
dst !== this.blendDstAlpha) {
|
|
400
|
+
this.gl.blendFunc(src, dst);
|
|
414
401
|
this.blendSrcRgb = src;
|
|
415
402
|
this.blendDstRgb = dst;
|
|
416
403
|
this.blendSrcAlpha = src;
|
|
@@ -425,8 +412,7 @@ export class WebGlContextWrapper {
|
|
|
425
412
|
* @returns
|
|
426
413
|
*/
|
|
427
414
|
createBuffer() {
|
|
428
|
-
|
|
429
|
-
return gl.createBuffer();
|
|
415
|
+
return this.gl.createBuffer();
|
|
430
416
|
}
|
|
431
417
|
/**
|
|
432
418
|
* ```
|
|
@@ -435,8 +421,7 @@ export class WebGlContextWrapper {
|
|
|
435
421
|
* @returns
|
|
436
422
|
*/
|
|
437
423
|
createFramebuffer() {
|
|
438
|
-
|
|
439
|
-
return gl.createFramebuffer();
|
|
424
|
+
return this.gl.createFramebuffer();
|
|
440
425
|
}
|
|
441
426
|
/**
|
|
442
427
|
* ```
|
|
@@ -446,8 +431,7 @@ export class WebGlContextWrapper {
|
|
|
446
431
|
* @param framebuffer
|
|
447
432
|
*/
|
|
448
433
|
bindFramebuffer(framebuffer) {
|
|
449
|
-
|
|
450
|
-
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
|
|
434
|
+
this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, framebuffer);
|
|
451
435
|
}
|
|
452
436
|
/**
|
|
453
437
|
* ```
|
|
@@ -457,7 +441,7 @@ export class WebGlContextWrapper {
|
|
|
457
441
|
* **WebGL Difference**: Bind target is always `gl.FRAMEBUFFER` and textarget is always `gl.TEXTURE_2D`
|
|
458
442
|
*/
|
|
459
443
|
framebufferTexture2D(attachment, texture, level) {
|
|
460
|
-
const
|
|
444
|
+
const gl = this.gl;
|
|
461
445
|
gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, gl.TEXTURE_2D, texture, level);
|
|
462
446
|
}
|
|
463
447
|
/**
|
|
@@ -469,8 +453,7 @@ export class WebGlContextWrapper {
|
|
|
469
453
|
* **WebGL Difference**: Clear mask is always `gl.COLOR_BUFFER_BIT`
|
|
470
454
|
*/
|
|
471
455
|
clear() {
|
|
472
|
-
|
|
473
|
-
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
456
|
+
this.gl.clear(this.gl.COLOR_BUFFER_BIT);
|
|
474
457
|
}
|
|
475
458
|
/**
|
|
476
459
|
* ```
|
|
@@ -486,12 +469,32 @@ export class WebGlContextWrapper {
|
|
|
486
469
|
* @param usage
|
|
487
470
|
*/
|
|
488
471
|
arrayBufferData(buffer, data, usage) {
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
472
|
+
if (this.boundArrayBuffer !== buffer) {
|
|
473
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
|
|
492
474
|
this.boundArrayBuffer = buffer;
|
|
493
475
|
}
|
|
494
|
-
gl.bufferData(gl.ARRAY_BUFFER, data, usage);
|
|
476
|
+
this.gl.bufferData(this.gl.ARRAY_BUFFER, data, usage);
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* ```
|
|
480
|
+
* gl.bindBuffer(gl.ARRAY_BUFFER, buffer); // if needed
|
|
481
|
+
* gl.bufferSubData(gl.ARRAY_BUFFER, dstByteOffset, data);
|
|
482
|
+
* ```
|
|
483
|
+
*
|
|
484
|
+
* @remarks
|
|
485
|
+
* **WebGL Combo**: `gl.bindBuffer` is only called when the buffer changes.
|
|
486
|
+
* Used to surgically update a subset of the GPU buffer without reallocating it.
|
|
487
|
+
*
|
|
488
|
+
* @param buffer
|
|
489
|
+
* @param dstByteOffset - Byte offset into the GPU buffer where `data` will be written
|
|
490
|
+
* @param data
|
|
491
|
+
*/
|
|
492
|
+
arrayBufferSubData(buffer, dstByteOffset, data) {
|
|
493
|
+
if (this.boundArrayBuffer !== buffer) {
|
|
494
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
|
|
495
|
+
this.boundArrayBuffer = buffer;
|
|
496
|
+
}
|
|
497
|
+
this.gl.bufferSubData(this.gl.ARRAY_BUFFER, dstByteOffset, data);
|
|
495
498
|
}
|
|
496
499
|
/**
|
|
497
500
|
* ```
|
|
@@ -506,12 +509,11 @@ export class WebGlContextWrapper {
|
|
|
506
509
|
* @param usage
|
|
507
510
|
*/
|
|
508
511
|
elementArrayBufferData(buffer, data, usage) {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
512
|
+
if (this.boundElementArrayBuffer !== buffer) {
|
|
513
|
+
this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
512
514
|
this.boundElementArrayBuffer = buffer;
|
|
513
515
|
}
|
|
514
|
-
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, usage);
|
|
516
|
+
this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER, data, usage);
|
|
515
517
|
}
|
|
516
518
|
/**
|
|
517
519
|
* ```
|
|
@@ -531,12 +533,44 @@ export class WebGlContextWrapper {
|
|
|
531
533
|
* @param offset
|
|
532
534
|
*/
|
|
533
535
|
vertexAttribPointer(buffer, index, size, type, normalized, stride, offset) {
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
536
|
+
if (this.boundArrayBuffer !== buffer) {
|
|
537
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
|
|
537
538
|
this.boundArrayBuffer = buffer;
|
|
538
539
|
}
|
|
539
|
-
gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
|
|
540
|
+
this.gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Returns object with Attribute names as key and numbers as location values
|
|
544
|
+
*
|
|
545
|
+
* @param program
|
|
546
|
+
* @returns object with numbers
|
|
547
|
+
*/
|
|
548
|
+
getUniformLocations(program) {
|
|
549
|
+
const gl = this.gl;
|
|
550
|
+
const length = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
|
|
551
|
+
const result = {};
|
|
552
|
+
for (let i = 0; i < length; i++) {
|
|
553
|
+
const info = gl.getActiveUniform(program, i);
|
|
554
|
+
//remove bracket + value from uniform name;
|
|
555
|
+
let name = info.name.replace(/\[.*?\]/g, '');
|
|
556
|
+
result[name] = gl.getUniformLocation(program, name);
|
|
557
|
+
}
|
|
558
|
+
return result;
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Returns object with Attribute names as key and numbers as location values
|
|
562
|
+
* @param program
|
|
563
|
+
* @returns object with numbers
|
|
564
|
+
*/
|
|
565
|
+
getAttributeLocations(program) {
|
|
566
|
+
const gl = this.gl;
|
|
567
|
+
const length = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
|
|
568
|
+
const result = [];
|
|
569
|
+
for (let i = 0; i < length; i++) {
|
|
570
|
+
const { name } = gl.getActiveAttrib(program, i);
|
|
571
|
+
result[gl.getAttribLocation(program, name)] = name;
|
|
572
|
+
}
|
|
573
|
+
return result;
|
|
540
574
|
}
|
|
541
575
|
/**
|
|
542
576
|
* ```
|
|
@@ -546,13 +580,13 @@ export class WebGlContextWrapper {
|
|
|
546
580
|
* @param program
|
|
547
581
|
* @returns
|
|
548
582
|
*/
|
|
549
|
-
useProgram(program) {
|
|
550
|
-
|
|
551
|
-
if (curProgram === program) {
|
|
583
|
+
useProgram(program, uniformLocations) {
|
|
584
|
+
if (this.curProgram === program) {
|
|
552
585
|
return;
|
|
553
586
|
}
|
|
554
|
-
gl.useProgram(program);
|
|
587
|
+
this.gl.useProgram(program);
|
|
555
588
|
this.curProgram = program;
|
|
589
|
+
this.curUniformLocations = uniformLocations;
|
|
556
590
|
}
|
|
557
591
|
/**
|
|
558
592
|
* Sets the value of a single float uniform variable.
|
|
@@ -561,8 +595,7 @@ export class WebGlContextWrapper {
|
|
|
561
595
|
* @param v0 - The value to set.
|
|
562
596
|
*/
|
|
563
597
|
uniform1f(location, v0) {
|
|
564
|
-
|
|
565
|
-
gl.uniform1f(location, v0);
|
|
598
|
+
this.gl.uniform1f(this.curUniformLocations[location] || null, v0);
|
|
566
599
|
}
|
|
567
600
|
/**
|
|
568
601
|
* Sets the value of a float array uniform variable.
|
|
@@ -571,8 +604,7 @@ export class WebGlContextWrapper {
|
|
|
571
604
|
* @param value - The array of values to set.
|
|
572
605
|
*/
|
|
573
606
|
uniform1fv(location, value) {
|
|
574
|
-
|
|
575
|
-
gl.uniform1fv(location, value);
|
|
607
|
+
this.gl.uniform1fv(this.curUniformLocations[location] || null, value);
|
|
576
608
|
}
|
|
577
609
|
/**
|
|
578
610
|
* Sets the value of a single integer uniform variable.
|
|
@@ -581,8 +613,7 @@ export class WebGlContextWrapper {
|
|
|
581
613
|
* @param v0 - The value to set.
|
|
582
614
|
*/
|
|
583
615
|
uniform1i(location, v0) {
|
|
584
|
-
|
|
585
|
-
gl.uniform1i(location, v0);
|
|
616
|
+
this.gl.uniform1i(this.curUniformLocations[location] || null, v0);
|
|
586
617
|
}
|
|
587
618
|
/**
|
|
588
619
|
* Sets the value of an integer array uniform variable.
|
|
@@ -591,8 +622,7 @@ export class WebGlContextWrapper {
|
|
|
591
622
|
* @param value - The array of values to set.
|
|
592
623
|
*/
|
|
593
624
|
uniform1iv(location, value) {
|
|
594
|
-
|
|
595
|
-
gl.uniform1iv(location, value);
|
|
625
|
+
this.gl.uniform1iv(this.curUniformLocations[location] || null, value);
|
|
596
626
|
}
|
|
597
627
|
/**
|
|
598
628
|
* Sets the value of a vec2 uniform variable.
|
|
@@ -602,8 +632,16 @@ export class WebGlContextWrapper {
|
|
|
602
632
|
* @param v1 - The second component of the vector.
|
|
603
633
|
*/
|
|
604
634
|
uniform2f(location, v0, v1) {
|
|
605
|
-
|
|
606
|
-
|
|
635
|
+
this.gl.uniform2f(this.curUniformLocations[location] || null, v0, v1);
|
|
636
|
+
}
|
|
637
|
+
/**
|
|
638
|
+
* Sets the value of a vec3 uniform variable.
|
|
639
|
+
*
|
|
640
|
+
* @param location - The location of the uniform variable.
|
|
641
|
+
* @param v - array of 4 numbers.
|
|
642
|
+
*/
|
|
643
|
+
uniform2fa(location, value) {
|
|
644
|
+
this.gl.uniform2f(this.curUniformLocations[location] || null, value[0], value[1]);
|
|
607
645
|
}
|
|
608
646
|
/**
|
|
609
647
|
* Sets the value of a vec2 array uniform variable.
|
|
@@ -612,8 +650,7 @@ export class WebGlContextWrapper {
|
|
|
612
650
|
* @param value - The array of vec2 values to set.
|
|
613
651
|
*/
|
|
614
652
|
uniform2fv(location, value) {
|
|
615
|
-
|
|
616
|
-
gl.uniform2fv(location, value);
|
|
653
|
+
this.gl.uniform2fv(this.curUniformLocations[location] || null, value);
|
|
617
654
|
}
|
|
618
655
|
/**
|
|
619
656
|
* Sets the value of a ivec2 uniform variable.
|
|
@@ -623,8 +660,7 @@ export class WebGlContextWrapper {
|
|
|
623
660
|
* @param v1 - The second component of the vector.
|
|
624
661
|
*/
|
|
625
662
|
uniform2i(location, v0, v1) {
|
|
626
|
-
|
|
627
|
-
gl.uniform2i(location, v0, v1);
|
|
663
|
+
this.gl.uniform2i(this.curUniformLocations[location] || null, v0, v1);
|
|
628
664
|
}
|
|
629
665
|
/**
|
|
630
666
|
* Sets the value of an ivec2 array uniform variable.
|
|
@@ -633,8 +669,7 @@ export class WebGlContextWrapper {
|
|
|
633
669
|
* @param value - The array of ivec2 values to set.
|
|
634
670
|
*/
|
|
635
671
|
uniform2iv(location, value) {
|
|
636
|
-
|
|
637
|
-
gl.uniform2iv(location, value);
|
|
672
|
+
this.gl.uniform2iv(this.curUniformLocations[location] || null, value);
|
|
638
673
|
}
|
|
639
674
|
/**
|
|
640
675
|
* Sets the value of a vec3 uniform variable.
|
|
@@ -645,8 +680,16 @@ export class WebGlContextWrapper {
|
|
|
645
680
|
* @param v2 - The third component of the vector.
|
|
646
681
|
*/
|
|
647
682
|
uniform3f(location, v0, v1, v2) {
|
|
648
|
-
|
|
649
|
-
|
|
683
|
+
this.gl.uniform3f(this.curUniformLocations[location] || null, v0, v1, v2);
|
|
684
|
+
}
|
|
685
|
+
/**
|
|
686
|
+
* Sets the value of a vec3 uniform variable.
|
|
687
|
+
*
|
|
688
|
+
* @param location - The location of the uniform variable.
|
|
689
|
+
* @param v - array of 4 numbers.
|
|
690
|
+
*/
|
|
691
|
+
uniform3fa(location, value) {
|
|
692
|
+
this.gl.uniform3f(this.curUniformLocations[location] || null, value[0], value[1], value[2]);
|
|
650
693
|
}
|
|
651
694
|
/**
|
|
652
695
|
* Sets the value of a vec3 array uniform variable.
|
|
@@ -655,8 +698,7 @@ export class WebGlContextWrapper {
|
|
|
655
698
|
* @param value - The array of vec3 values to set.
|
|
656
699
|
*/
|
|
657
700
|
uniform3fv(location, value) {
|
|
658
|
-
|
|
659
|
-
gl.uniform3fv(location, value);
|
|
701
|
+
this.gl.uniform3fv(this.curUniformLocations[location] || null, value);
|
|
660
702
|
}
|
|
661
703
|
/**
|
|
662
704
|
* Sets the value of a ivec3 uniform variable.
|
|
@@ -667,8 +709,7 @@ export class WebGlContextWrapper {
|
|
|
667
709
|
* @param v2 - The third component of the vector.
|
|
668
710
|
*/
|
|
669
711
|
uniform3i(location, v0, v1, v2) {
|
|
670
|
-
|
|
671
|
-
gl.uniform3i(location, v0, v1, v2);
|
|
712
|
+
this.gl.uniform3i(this.curUniformLocations[location] || null, v0, v1, v2);
|
|
672
713
|
}
|
|
673
714
|
/**
|
|
674
715
|
* Sets the value of an ivec3 array uniform variable.
|
|
@@ -677,8 +718,7 @@ export class WebGlContextWrapper {
|
|
|
677
718
|
* @param value - The array of ivec3 values to set.
|
|
678
719
|
*/
|
|
679
720
|
uniform3iv(location, value) {
|
|
680
|
-
|
|
681
|
-
gl.uniform3iv(location, value);
|
|
721
|
+
this.gl.uniform3iv(this.curUniformLocations[location] || null, value);
|
|
682
722
|
}
|
|
683
723
|
/**
|
|
684
724
|
* Sets the value of a vec4 uniform variable.
|
|
@@ -690,8 +730,16 @@ export class WebGlContextWrapper {
|
|
|
690
730
|
* @param v3 - The fourth component of the vector.
|
|
691
731
|
*/
|
|
692
732
|
uniform4f(location, v0, v1, v2, v3) {
|
|
693
|
-
|
|
694
|
-
|
|
733
|
+
this.gl.uniform4f(this.curUniformLocations[location] || null, v0, v1, v2, v3);
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Sets the value of a vec4 uniform variable.
|
|
737
|
+
*
|
|
738
|
+
* @param location - The location of the uniform variable.
|
|
739
|
+
* @param v - array of 4 numbers.
|
|
740
|
+
*/
|
|
741
|
+
uniform4fa(location, value) {
|
|
742
|
+
this.gl.uniform4f(this.curUniformLocations[location] || null, value[0], value[1], value[2], value[3]);
|
|
695
743
|
}
|
|
696
744
|
/**
|
|
697
745
|
* Sets the value of a vec4 array uniform variable.
|
|
@@ -700,8 +748,7 @@ export class WebGlContextWrapper {
|
|
|
700
748
|
* @param value - The array of vec4 values to set.
|
|
701
749
|
*/
|
|
702
750
|
uniform4fv(location, value) {
|
|
703
|
-
|
|
704
|
-
gl.uniform4fv(location, value);
|
|
751
|
+
this.gl.uniform4fv(this.curUniformLocations[location] || null, value);
|
|
705
752
|
}
|
|
706
753
|
/**
|
|
707
754
|
* Sets the value of a ivec4 uniform variable.
|
|
@@ -713,8 +760,7 @@ export class WebGlContextWrapper {
|
|
|
713
760
|
* @param v3 - The fourth component of the vector.
|
|
714
761
|
*/
|
|
715
762
|
uniform4i(location, v0, v1, v2, v3) {
|
|
716
|
-
|
|
717
|
-
gl.uniform4i(location, v0, v1, v2, v3);
|
|
763
|
+
this.gl.uniform4i(this.curUniformLocations[location] || null, v0, v1, v2, v3);
|
|
718
764
|
}
|
|
719
765
|
/**
|
|
720
766
|
* Sets the value of an ivec4 array uniform variable.
|
|
@@ -723,8 +769,7 @@ export class WebGlContextWrapper {
|
|
|
723
769
|
* @param value - The array of ivec4 values to set.
|
|
724
770
|
*/
|
|
725
771
|
uniform4iv(location, value) {
|
|
726
|
-
|
|
727
|
-
gl.uniform4iv(location, value);
|
|
772
|
+
this.gl.uniform4iv(this.curUniformLocations[location] || null, value);
|
|
728
773
|
}
|
|
729
774
|
/**
|
|
730
775
|
* Sets the value of a mat2 uniform variable.
|
|
@@ -734,8 +779,7 @@ export class WebGlContextWrapper {
|
|
|
734
779
|
* @param value - The array of mat2 values to set.
|
|
735
780
|
*/
|
|
736
781
|
uniformMatrix2fv(location, value) {
|
|
737
|
-
|
|
738
|
-
gl.uniformMatrix2fv(location, false, value);
|
|
782
|
+
this.gl.uniformMatrix2fv(this.curUniformLocations[location] || null, false, value);
|
|
739
783
|
}
|
|
740
784
|
/**
|
|
741
785
|
* Sets the value of a mat2 uniform variable.
|
|
@@ -743,8 +787,7 @@ export class WebGlContextWrapper {
|
|
|
743
787
|
* @param value - The array of mat2 values to set.
|
|
744
788
|
*/
|
|
745
789
|
uniformMatrix3fv(location, value) {
|
|
746
|
-
|
|
747
|
-
gl.uniformMatrix3fv(location, false, value);
|
|
790
|
+
this.gl.uniformMatrix3fv(this.curUniformLocations[location] || null, false, value);
|
|
748
791
|
}
|
|
749
792
|
/**
|
|
750
793
|
* Sets the value of a mat4 uniform variable.
|
|
@@ -752,8 +795,7 @@ export class WebGlContextWrapper {
|
|
|
752
795
|
* @param value - The array of mat4 values to set.
|
|
753
796
|
*/
|
|
754
797
|
uniformMatrix4fv(location, value) {
|
|
755
|
-
|
|
756
|
-
gl.uniformMatrix4fv(location, false, value);
|
|
798
|
+
this.gl.uniformMatrix4fv(this.curUniformLocations[location] || null, false, value);
|
|
757
799
|
}
|
|
758
800
|
/**
|
|
759
801
|
* ```
|
|
@@ -764,8 +806,7 @@ export class WebGlContextWrapper {
|
|
|
764
806
|
* @returns
|
|
765
807
|
*/
|
|
766
808
|
getParameter(pname) {
|
|
767
|
-
|
|
768
|
-
return gl.getParameter(pname);
|
|
809
|
+
return this.gl.getParameter(pname);
|
|
769
810
|
}
|
|
770
811
|
/**
|
|
771
812
|
* ```
|
|
@@ -778,8 +819,19 @@ export class WebGlContextWrapper {
|
|
|
778
819
|
* @param offset
|
|
779
820
|
*/
|
|
780
821
|
drawElements(mode, count, type, offset) {
|
|
781
|
-
|
|
782
|
-
|
|
822
|
+
this.gl.drawElements(mode, count, type, offset);
|
|
823
|
+
}
|
|
824
|
+
/**
|
|
825
|
+
* ```
|
|
826
|
+
* gl.drawArrays(mode, first, count);
|
|
827
|
+
* ```
|
|
828
|
+
*
|
|
829
|
+
* @param mode
|
|
830
|
+
* @param first
|
|
831
|
+
* @param count
|
|
832
|
+
*/
|
|
833
|
+
drawArrays(mode, first, count) {
|
|
834
|
+
this.gl.drawArrays(mode, first, count);
|
|
783
835
|
}
|
|
784
836
|
/**
|
|
785
837
|
* ```
|
|
@@ -790,8 +842,7 @@ export class WebGlContextWrapper {
|
|
|
790
842
|
* @returns
|
|
791
843
|
*/
|
|
792
844
|
getExtension(name) {
|
|
793
|
-
|
|
794
|
-
return gl.getExtension(name);
|
|
845
|
+
return this.gl.getExtension(name);
|
|
795
846
|
}
|
|
796
847
|
/**
|
|
797
848
|
* ```
|
|
@@ -801,8 +852,7 @@ export class WebGlContextWrapper {
|
|
|
801
852
|
* @returns
|
|
802
853
|
*/
|
|
803
854
|
getError() {
|
|
804
|
-
|
|
805
|
-
return gl.getError();
|
|
855
|
+
return this.gl.getError();
|
|
806
856
|
}
|
|
807
857
|
/**
|
|
808
858
|
* ```
|
|
@@ -812,9 +862,10 @@ export class WebGlContextWrapper {
|
|
|
812
862
|
* @returns
|
|
813
863
|
*/
|
|
814
864
|
createVertexArray() {
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
865
|
+
if (this.gl instanceof WebGL2RenderingContext) {
|
|
866
|
+
return this.gl.createVertexArray();
|
|
867
|
+
}
|
|
868
|
+
return undefined;
|
|
818
869
|
}
|
|
819
870
|
/**
|
|
820
871
|
* ```
|
|
@@ -824,9 +875,9 @@ export class WebGlContextWrapper {
|
|
|
824
875
|
* @param vertexArray
|
|
825
876
|
*/
|
|
826
877
|
bindVertexArray(vertexArray) {
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
878
|
+
if (this.gl instanceof WebGL2RenderingContext) {
|
|
879
|
+
this.gl.bindVertexArray(vertexArray);
|
|
880
|
+
}
|
|
830
881
|
}
|
|
831
882
|
/**
|
|
832
883
|
* ```
|
|
@@ -838,8 +889,7 @@ export class WebGlContextWrapper {
|
|
|
838
889
|
* @returns
|
|
839
890
|
*/
|
|
840
891
|
getAttribLocation(program, name) {
|
|
841
|
-
|
|
842
|
-
return gl.getAttribLocation(program, name);
|
|
892
|
+
return this.gl.getAttribLocation(program, name);
|
|
843
893
|
}
|
|
844
894
|
/**
|
|
845
895
|
* ```
|
|
@@ -851,8 +901,7 @@ export class WebGlContextWrapper {
|
|
|
851
901
|
* @returns
|
|
852
902
|
*/
|
|
853
903
|
getUniformLocation(program, name) {
|
|
854
|
-
|
|
855
|
-
return gl.getUniformLocation(program, name);
|
|
904
|
+
return this.gl.getUniformLocation(program, name);
|
|
856
905
|
}
|
|
857
906
|
/**
|
|
858
907
|
* ```
|
|
@@ -862,8 +911,7 @@ export class WebGlContextWrapper {
|
|
|
862
911
|
* @param index
|
|
863
912
|
*/
|
|
864
913
|
enableVertexAttribArray(index) {
|
|
865
|
-
|
|
866
|
-
gl.enableVertexAttribArray(index);
|
|
914
|
+
this.gl.enableVertexAttribArray(index);
|
|
867
915
|
}
|
|
868
916
|
/**
|
|
869
917
|
* ```
|
|
@@ -873,8 +921,7 @@ export class WebGlContextWrapper {
|
|
|
873
921
|
* @param index
|
|
874
922
|
*/
|
|
875
923
|
disableVertexAttribArray(index) {
|
|
876
|
-
|
|
877
|
-
gl.disableVertexAttribArray(index);
|
|
924
|
+
this.gl.disableVertexAttribArray(index);
|
|
878
925
|
}
|
|
879
926
|
/**
|
|
880
927
|
* ```
|
|
@@ -885,8 +932,7 @@ export class WebGlContextWrapper {
|
|
|
885
932
|
* @returns
|
|
886
933
|
*/
|
|
887
934
|
createShader(type) {
|
|
888
|
-
|
|
889
|
-
return gl.createShader(type);
|
|
935
|
+
return this.gl.createShader(type);
|
|
890
936
|
}
|
|
891
937
|
/**
|
|
892
938
|
* ```
|
|
@@ -897,8 +943,7 @@ export class WebGlContextWrapper {
|
|
|
897
943
|
* @returns
|
|
898
944
|
*/
|
|
899
945
|
compileShader(shader) {
|
|
900
|
-
|
|
901
|
-
gl.compileShader(shader);
|
|
946
|
+
this.gl.compileShader(shader);
|
|
902
947
|
}
|
|
903
948
|
/**
|
|
904
949
|
* ```
|
|
@@ -909,8 +954,7 @@ export class WebGlContextWrapper {
|
|
|
909
954
|
* @param shader
|
|
910
955
|
*/
|
|
911
956
|
attachShader(program, shader) {
|
|
912
|
-
|
|
913
|
-
gl.attachShader(program, shader);
|
|
957
|
+
this.gl.attachShader(program, shader);
|
|
914
958
|
}
|
|
915
959
|
/**
|
|
916
960
|
* ```
|
|
@@ -920,8 +964,7 @@ export class WebGlContextWrapper {
|
|
|
920
964
|
* @param program
|
|
921
965
|
*/
|
|
922
966
|
linkProgram(program) {
|
|
923
|
-
|
|
924
|
-
gl.linkProgram(program);
|
|
967
|
+
this.gl.linkProgram(program);
|
|
925
968
|
}
|
|
926
969
|
/**
|
|
927
970
|
* ```
|
|
@@ -931,8 +974,7 @@ export class WebGlContextWrapper {
|
|
|
931
974
|
* @param shader
|
|
932
975
|
*/
|
|
933
976
|
deleteProgram(shader) {
|
|
934
|
-
|
|
935
|
-
gl.deleteProgram(shader);
|
|
977
|
+
this.gl.deleteProgram(shader);
|
|
936
978
|
}
|
|
937
979
|
/**
|
|
938
980
|
* ```
|
|
@@ -943,8 +985,7 @@ export class WebGlContextWrapper {
|
|
|
943
985
|
* @param pname
|
|
944
986
|
*/
|
|
945
987
|
getShaderParameter(shader, pname) {
|
|
946
|
-
|
|
947
|
-
return gl.getShaderParameter(shader, pname);
|
|
988
|
+
return this.gl.getShaderParameter(shader, pname);
|
|
948
989
|
}
|
|
949
990
|
/**
|
|
950
991
|
* ```
|
|
@@ -954,8 +995,7 @@ export class WebGlContextWrapper {
|
|
|
954
995
|
* @param shader
|
|
955
996
|
*/
|
|
956
997
|
getShaderInfoLog(shader) {
|
|
957
|
-
|
|
958
|
-
return gl.getShaderInfoLog(shader);
|
|
998
|
+
return this.gl.getShaderInfoLog(shader);
|
|
959
999
|
}
|
|
960
1000
|
/**
|
|
961
1001
|
* ```
|
|
@@ -965,8 +1005,7 @@ export class WebGlContextWrapper {
|
|
|
965
1005
|
* @returns
|
|
966
1006
|
*/
|
|
967
1007
|
createProgram() {
|
|
968
|
-
|
|
969
|
-
return gl.createProgram();
|
|
1008
|
+
return this.gl.createProgram();
|
|
970
1009
|
}
|
|
971
1010
|
/**
|
|
972
1011
|
* ```
|
|
@@ -978,8 +1017,7 @@ export class WebGlContextWrapper {
|
|
|
978
1017
|
* @returns
|
|
979
1018
|
*/
|
|
980
1019
|
getProgramParameter(program, pname) {
|
|
981
|
-
|
|
982
|
-
return gl.getProgramParameter(program, pname);
|
|
1020
|
+
return this.gl.getProgramParameter(program, pname);
|
|
983
1021
|
}
|
|
984
1022
|
/**
|
|
985
1023
|
* ```
|
|
@@ -990,8 +1028,7 @@ export class WebGlContextWrapper {
|
|
|
990
1028
|
* @returns
|
|
991
1029
|
*/
|
|
992
1030
|
getProgramInfoLog(program) {
|
|
993
|
-
|
|
994
|
-
return gl.getProgramInfoLog(program);
|
|
1031
|
+
return this.gl.getProgramInfoLog(program);
|
|
995
1032
|
}
|
|
996
1033
|
/**
|
|
997
1034
|
* ```
|
|
@@ -1002,8 +1039,7 @@ export class WebGlContextWrapper {
|
|
|
1002
1039
|
* @param source
|
|
1003
1040
|
*/
|
|
1004
1041
|
shaderSource(shader, source) {
|
|
1005
|
-
|
|
1006
|
-
gl.shaderSource(shader, source);
|
|
1042
|
+
this.gl.shaderSource(shader, source);
|
|
1007
1043
|
}
|
|
1008
1044
|
/**
|
|
1009
1045
|
* ```
|
|
@@ -1013,8 +1049,66 @@ export class WebGlContextWrapper {
|
|
|
1013
1049
|
* @param shader
|
|
1014
1050
|
*/
|
|
1015
1051
|
deleteShader(shader) {
|
|
1052
|
+
this.gl.deleteShader(shader);
|
|
1053
|
+
}
|
|
1054
|
+
/**
|
|
1055
|
+
* ```
|
|
1056
|
+
* gl.deleteBuffer(buffer);
|
|
1057
|
+
* ```
|
|
1058
|
+
*
|
|
1059
|
+
* @param buffer - The buffer to delete
|
|
1060
|
+
*/
|
|
1061
|
+
deleteBuffer(buffer) {
|
|
1016
1062
|
const { gl } = this;
|
|
1017
|
-
gl.
|
|
1063
|
+
gl.deleteBuffer(buffer);
|
|
1064
|
+
// Reset bound buffers if they match the deleted buffer
|
|
1065
|
+
if (this.boundArrayBuffer === buffer) {
|
|
1066
|
+
this.boundArrayBuffer = null;
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
/**
|
|
1070
|
+
* ```
|
|
1071
|
+
* gl.deleteVertexArray(vertexArray);
|
|
1072
|
+
* ```
|
|
1073
|
+
*
|
|
1074
|
+
* @param vertexArray - The vertex array object to delete
|
|
1075
|
+
*/
|
|
1076
|
+
deleteVertexArray(vertexArray) {
|
|
1077
|
+
if (this.isWebGl2()) {
|
|
1078
|
+
this.gl.deleteVertexArray(vertexArray);
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
/**
|
|
1082
|
+
* Check for WebGL errors and return error information
|
|
1083
|
+
* @param operation Description of the operation for error reporting
|
|
1084
|
+
* @returns Object with error information or null if no error
|
|
1085
|
+
*/
|
|
1086
|
+
checkError(operation) {
|
|
1087
|
+
const error = this.getError();
|
|
1088
|
+
if (error !== 0) {
|
|
1089
|
+
// 0 is GL_NO_ERROR
|
|
1090
|
+
let errorName = 'UNKNOWN_ERROR';
|
|
1091
|
+
switch (error) {
|
|
1092
|
+
case this.INVALID_ENUM:
|
|
1093
|
+
errorName = 'INVALID_ENUM';
|
|
1094
|
+
break;
|
|
1095
|
+
case 0x0501: // GL_INVALID_VALUE
|
|
1096
|
+
errorName = 'INVALID_VALUE';
|
|
1097
|
+
break;
|
|
1098
|
+
case this.INVALID_OPERATION:
|
|
1099
|
+
errorName = 'INVALID_OPERATION';
|
|
1100
|
+
break;
|
|
1101
|
+
case 0x0505: // GL_OUT_OF_MEMORY
|
|
1102
|
+
errorName = 'OUT_OF_MEMORY';
|
|
1103
|
+
break;
|
|
1104
|
+
case 0x9242: // GL_CONTEXT_LOST_WEBGL
|
|
1105
|
+
errorName = 'CONTEXT_LOST_WEBGL';
|
|
1106
|
+
break;
|
|
1107
|
+
}
|
|
1108
|
+
const message = `WebGL ${errorName} (0x${error.toString(16)}) during ${operation}`;
|
|
1109
|
+
return { error, errorName, message };
|
|
1110
|
+
}
|
|
1111
|
+
return null;
|
|
1018
1112
|
}
|
|
1019
1113
|
}
|
|
1020
1114
|
/**
|