@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
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
4
4
|
|
|
5
|
-
import { assertTruthy } from '../../utils.js';
|
|
5
|
+
import { assertTruthy, isProductionEnvironment } 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
|
|
@@ -67,6 +73,7 @@ export class WebGlContextWrapper {
|
|
|
67
73
|
public readonly TEXTURE_WRAP_S;
|
|
68
74
|
public readonly TEXTURE_WRAP_T;
|
|
69
75
|
public readonly LINEAR;
|
|
76
|
+
public readonly LINEAR_MIPMAP_LINEAR;
|
|
70
77
|
public readonly CLAMP_TO_EDGE;
|
|
71
78
|
public readonly RGB;
|
|
72
79
|
public readonly RGBA;
|
|
@@ -158,6 +165,7 @@ export class WebGlContextWrapper {
|
|
|
158
165
|
this.TEXTURE_WRAP_S = gl.TEXTURE_WRAP_S;
|
|
159
166
|
this.TEXTURE_WRAP_T = gl.TEXTURE_WRAP_T;
|
|
160
167
|
this.LINEAR = gl.LINEAR;
|
|
168
|
+
this.LINEAR_MIPMAP_LINEAR = gl.LINEAR_MIPMAP_LINEAR;
|
|
161
169
|
this.CLAMP_TO_EDGE = gl.CLAMP_TO_EDGE;
|
|
162
170
|
this.RGB = gl.RGB;
|
|
163
171
|
this.RGBA = gl.RGBA;
|
|
@@ -202,9 +210,8 @@ export class WebGlContextWrapper {
|
|
|
202
210
|
* @param textureUnit
|
|
203
211
|
*/
|
|
204
212
|
activeTexture(textureUnit: number) {
|
|
205
|
-
const { gl } = this;
|
|
206
213
|
if (this.activeTextureUnit !== textureUnit) {
|
|
207
|
-
gl.activeTexture(textureUnit + gl.TEXTURE0);
|
|
214
|
+
this.gl.activeTexture(textureUnit + this.gl.TEXTURE0);
|
|
208
215
|
this.activeTextureUnit = textureUnit;
|
|
209
216
|
}
|
|
210
217
|
}
|
|
@@ -219,19 +226,16 @@ export class WebGlContextWrapper {
|
|
|
219
226
|
* @param texture
|
|
220
227
|
*/
|
|
221
228
|
bindTexture(texture: WebGLTexture | null) {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
if (texture2dUnits[activeTextureUnit] === texture) {
|
|
229
|
+
if (this.texture2dUnits[this.activeTextureUnit] === texture) {
|
|
225
230
|
return;
|
|
226
231
|
}
|
|
227
|
-
texture2dUnits[activeTextureUnit] = texture;
|
|
232
|
+
this.texture2dUnits[this.activeTextureUnit] = texture;
|
|
228
233
|
|
|
229
|
-
gl.bindTexture(this.gl.TEXTURE_2D, texture);
|
|
234
|
+
this.gl.bindTexture(this.gl.TEXTURE_2D, texture);
|
|
230
235
|
}
|
|
231
236
|
|
|
232
237
|
private _getActiveTexture(): WebGLTexture | null {
|
|
233
|
-
|
|
234
|
-
return texture2dUnits[activeTextureUnit]!;
|
|
238
|
+
return this.texture2dUnits[this.activeTextureUnit]!;
|
|
235
239
|
}
|
|
236
240
|
|
|
237
241
|
/**
|
|
@@ -246,22 +250,20 @@ export class WebGlContextWrapper {
|
|
|
246
250
|
* @returns
|
|
247
251
|
*/
|
|
248
252
|
texParameteri(pname: number, param: number) {
|
|
249
|
-
const { gl, texture2dParams } = this;
|
|
250
|
-
|
|
251
253
|
const activeTexture = this._getActiveTexture();
|
|
252
254
|
if (!activeTexture) {
|
|
253
255
|
throw new Error('No active texture');
|
|
254
256
|
}
|
|
255
|
-
let textureParams = texture2dParams.get(activeTexture);
|
|
257
|
+
let textureParams = this.texture2dParams.get(activeTexture);
|
|
256
258
|
if (!textureParams) {
|
|
257
259
|
textureParams = {};
|
|
258
|
-
texture2dParams.set(activeTexture, textureParams);
|
|
260
|
+
this.texture2dParams.set(activeTexture, textureParams);
|
|
259
261
|
}
|
|
260
262
|
if (textureParams[pname] === param) {
|
|
261
263
|
return;
|
|
262
264
|
}
|
|
263
265
|
textureParams[pname] = param;
|
|
264
|
-
gl.texParameteri(gl.TEXTURE_2D, pname, param);
|
|
266
|
+
this.gl.texParameteri(this.gl.TEXTURE_2D, pname, param);
|
|
265
267
|
}
|
|
266
268
|
|
|
267
269
|
/**
|
|
@@ -317,10 +319,9 @@ export class WebGlContextWrapper {
|
|
|
317
319
|
type?: any,
|
|
318
320
|
pixels?: any,
|
|
319
321
|
) {
|
|
320
|
-
const { gl } = this;
|
|
321
322
|
if (format) {
|
|
322
|
-
gl.texImage2D(
|
|
323
|
-
gl.TEXTURE_2D,
|
|
323
|
+
this.gl.texImage2D(
|
|
324
|
+
this.gl.TEXTURE_2D,
|
|
324
325
|
level,
|
|
325
326
|
internalFormat,
|
|
326
327
|
widthOrFormat,
|
|
@@ -331,8 +332,8 @@ export class WebGlContextWrapper {
|
|
|
331
332
|
pixels,
|
|
332
333
|
);
|
|
333
334
|
} else {
|
|
334
|
-
gl.texImage2D(
|
|
335
|
-
gl.TEXTURE_2D,
|
|
335
|
+
this.gl.texImage2D(
|
|
336
|
+
this.gl.TEXTURE_2D,
|
|
336
337
|
level,
|
|
337
338
|
internalFormat,
|
|
338
339
|
widthOrFormat,
|
|
@@ -358,9 +359,8 @@ export class WebGlContextWrapper {
|
|
|
358
359
|
border: GLint,
|
|
359
360
|
data?: ArrayBufferView,
|
|
360
361
|
): void {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
gl.TEXTURE_2D,
|
|
362
|
+
this.gl.compressedTexImage2D(
|
|
363
|
+
this.gl.TEXTURE_2D,
|
|
364
364
|
level,
|
|
365
365
|
internalformat,
|
|
366
366
|
width,
|
|
@@ -378,8 +378,7 @@ export class WebGlContextWrapper {
|
|
|
378
378
|
* @param param
|
|
379
379
|
*/
|
|
380
380
|
pixelStorei(pname: GLenum, param: GLint | GLboolean) {
|
|
381
|
-
|
|
382
|
-
gl.pixelStorei(pname, param);
|
|
381
|
+
this.gl.pixelStorei(pname, param);
|
|
383
382
|
}
|
|
384
383
|
|
|
385
384
|
/**
|
|
@@ -391,8 +390,7 @@ export class WebGlContextWrapper {
|
|
|
391
390
|
* **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
|
|
392
391
|
*/
|
|
393
392
|
generateMipmap() {
|
|
394
|
-
|
|
395
|
-
gl.generateMipmap(gl.TEXTURE_2D);
|
|
393
|
+
this.gl.generateMipmap(this.gl.TEXTURE_2D);
|
|
396
394
|
}
|
|
397
395
|
|
|
398
396
|
/**
|
|
@@ -403,8 +401,7 @@ export class WebGlContextWrapper {
|
|
|
403
401
|
* @returns
|
|
404
402
|
*/
|
|
405
403
|
createTexture() {
|
|
406
|
-
|
|
407
|
-
return gl.createTexture();
|
|
404
|
+
return this.gl.createTexture();
|
|
408
405
|
}
|
|
409
406
|
|
|
410
407
|
/**
|
|
@@ -415,11 +412,10 @@ export class WebGlContextWrapper {
|
|
|
415
412
|
* @param texture
|
|
416
413
|
*/
|
|
417
414
|
deleteTexture(texture: WebGLTexture | null) {
|
|
418
|
-
const { gl } = this;
|
|
419
415
|
if (texture) {
|
|
420
416
|
this.texture2dParams.delete(texture);
|
|
421
417
|
}
|
|
422
|
-
gl.deleteTexture(texture);
|
|
418
|
+
this.gl.deleteTexture(texture);
|
|
423
419
|
}
|
|
424
420
|
|
|
425
421
|
/**
|
|
@@ -438,8 +434,7 @@ export class WebGlContextWrapper {
|
|
|
438
434
|
* ```
|
|
439
435
|
*/
|
|
440
436
|
viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
|
|
441
|
-
|
|
442
|
-
gl.viewport(x, y, width, height);
|
|
437
|
+
this.gl.viewport(x, y, width, height);
|
|
443
438
|
}
|
|
444
439
|
|
|
445
440
|
/**
|
|
@@ -453,8 +448,7 @@ export class WebGlContextWrapper {
|
|
|
453
448
|
* @param alpha
|
|
454
449
|
*/
|
|
455
450
|
clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) {
|
|
456
|
-
|
|
457
|
-
gl.clearColor(red, green, blue, alpha);
|
|
451
|
+
this.gl.clearColor(red, green, blue, alpha);
|
|
458
452
|
}
|
|
459
453
|
|
|
460
454
|
/**
|
|
@@ -464,14 +458,13 @@ export class WebGlContextWrapper {
|
|
|
464
458
|
* @param enable
|
|
465
459
|
*/
|
|
466
460
|
setScissorTest(enable: boolean) {
|
|
467
|
-
|
|
468
|
-
if (enable === scissorEnabled) {
|
|
461
|
+
if (enable === this.scissorEnabled) {
|
|
469
462
|
return;
|
|
470
463
|
}
|
|
471
464
|
if (enable) {
|
|
472
|
-
gl.enable(gl.SCISSOR_TEST);
|
|
465
|
+
this.gl.enable(this.gl.SCISSOR_TEST);
|
|
473
466
|
} else {
|
|
474
|
-
gl.disable(gl.SCISSOR_TEST);
|
|
467
|
+
this.gl.disable(this.gl.SCISSOR_TEST);
|
|
475
468
|
}
|
|
476
469
|
this.scissorEnabled = enable;
|
|
477
470
|
}
|
|
@@ -487,14 +480,13 @@ export class WebGlContextWrapper {
|
|
|
487
480
|
* @param height
|
|
488
481
|
*/
|
|
489
482
|
scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
|
|
490
|
-
const { gl, scissorX, scissorY, scissorWidth, scissorHeight } = this;
|
|
491
483
|
if (
|
|
492
|
-
x !== scissorX ||
|
|
493
|
-
y !== scissorY ||
|
|
494
|
-
width !== scissorWidth ||
|
|
495
|
-
height !== scissorHeight
|
|
484
|
+
x !== this.scissorX ||
|
|
485
|
+
y !== this.scissorY ||
|
|
486
|
+
width !== this.scissorWidth ||
|
|
487
|
+
height !== this.scissorHeight
|
|
496
488
|
) {
|
|
497
|
-
gl.scissor(x, y, width, height);
|
|
489
|
+
this.gl.scissor(x, y, width, height);
|
|
498
490
|
this.scissorX = x;
|
|
499
491
|
this.scissorY = y;
|
|
500
492
|
this.scissorWidth = width;
|
|
@@ -511,14 +503,13 @@ export class WebGlContextWrapper {
|
|
|
511
503
|
* @returns
|
|
512
504
|
*/
|
|
513
505
|
setBlend(blend: boolean) {
|
|
514
|
-
|
|
515
|
-
if (blend === blendEnabled) {
|
|
506
|
+
if (blend === this.blendEnabled) {
|
|
516
507
|
return;
|
|
517
508
|
}
|
|
518
509
|
if (blend) {
|
|
519
|
-
gl.enable(gl.BLEND);
|
|
510
|
+
this.gl.enable(this.gl.BLEND);
|
|
520
511
|
} else {
|
|
521
|
-
gl.disable(gl.BLEND);
|
|
512
|
+
this.gl.disable(this.gl.BLEND);
|
|
522
513
|
}
|
|
523
514
|
this.blendEnabled = blend;
|
|
524
515
|
}
|
|
@@ -532,14 +523,13 @@ export class WebGlContextWrapper {
|
|
|
532
523
|
* @param dst
|
|
533
524
|
*/
|
|
534
525
|
blendFunc(src: GLenum, dst: GLenum) {
|
|
535
|
-
const { gl, blendSrcRgb, blendDstRgb, blendSrcAlpha, blendDstAlpha } = this;
|
|
536
526
|
if (
|
|
537
|
-
src !== blendSrcRgb ||
|
|
538
|
-
dst !== blendDstRgb ||
|
|
539
|
-
src !== blendSrcAlpha ||
|
|
540
|
-
dst !== blendDstAlpha
|
|
527
|
+
src !== this.blendSrcRgb ||
|
|
528
|
+
dst !== this.blendDstRgb ||
|
|
529
|
+
src !== this.blendSrcAlpha ||
|
|
530
|
+
dst !== this.blendDstAlpha
|
|
541
531
|
) {
|
|
542
|
-
gl.blendFunc(src, dst);
|
|
532
|
+
this.gl.blendFunc(src, dst);
|
|
543
533
|
this.blendSrcRgb = src;
|
|
544
534
|
this.blendDstRgb = dst;
|
|
545
535
|
this.blendSrcAlpha = src;
|
|
@@ -555,8 +545,7 @@ export class WebGlContextWrapper {
|
|
|
555
545
|
* @returns
|
|
556
546
|
*/
|
|
557
547
|
createBuffer() {
|
|
558
|
-
|
|
559
|
-
return gl.createBuffer();
|
|
548
|
+
return this.gl.createBuffer();
|
|
560
549
|
}
|
|
561
550
|
|
|
562
551
|
/**
|
|
@@ -566,8 +555,7 @@ export class WebGlContextWrapper {
|
|
|
566
555
|
* @returns
|
|
567
556
|
*/
|
|
568
557
|
createFramebuffer() {
|
|
569
|
-
|
|
570
|
-
return gl.createFramebuffer();
|
|
558
|
+
return this.gl.createFramebuffer();
|
|
571
559
|
}
|
|
572
560
|
|
|
573
561
|
/**
|
|
@@ -578,8 +566,7 @@ export class WebGlContextWrapper {
|
|
|
578
566
|
* @param framebuffer
|
|
579
567
|
*/
|
|
580
568
|
bindFramebuffer(framebuffer: WebGLFramebuffer | null) {
|
|
581
|
-
|
|
582
|
-
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
|
|
569
|
+
this.gl.bindFramebuffer(this.gl.FRAMEBUFFER, framebuffer);
|
|
583
570
|
}
|
|
584
571
|
|
|
585
572
|
/**
|
|
@@ -595,7 +582,7 @@ export class WebGlContextWrapper {
|
|
|
595
582
|
texture: WebGLTexture | null,
|
|
596
583
|
level: GLint,
|
|
597
584
|
) {
|
|
598
|
-
const
|
|
585
|
+
const gl = this.gl;
|
|
599
586
|
gl.framebufferTexture2D(
|
|
600
587
|
gl.FRAMEBUFFER,
|
|
601
588
|
attachment,
|
|
@@ -614,8 +601,7 @@ export class WebGlContextWrapper {
|
|
|
614
601
|
* **WebGL Difference**: Clear mask is always `gl.COLOR_BUFFER_BIT`
|
|
615
602
|
*/
|
|
616
603
|
clear() {
|
|
617
|
-
|
|
618
|
-
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
604
|
+
this.gl.clear(this.gl.COLOR_BUFFER_BIT);
|
|
619
605
|
}
|
|
620
606
|
|
|
621
607
|
/**
|
|
@@ -636,12 +622,37 @@ export class WebGlContextWrapper {
|
|
|
636
622
|
data: ArrayBufferView,
|
|
637
623
|
usage: GLenum,
|
|
638
624
|
) {
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
625
|
+
if (this.boundArrayBuffer !== buffer) {
|
|
626
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
|
|
642
627
|
this.boundArrayBuffer = buffer;
|
|
643
628
|
}
|
|
644
|
-
gl.bufferData(gl.ARRAY_BUFFER, data, usage);
|
|
629
|
+
this.gl.bufferData(this.gl.ARRAY_BUFFER, data, usage);
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* ```
|
|
634
|
+
* gl.bindBuffer(gl.ARRAY_BUFFER, buffer); // if needed
|
|
635
|
+
* gl.bufferSubData(gl.ARRAY_BUFFER, dstByteOffset, data);
|
|
636
|
+
* ```
|
|
637
|
+
*
|
|
638
|
+
* @remarks
|
|
639
|
+
* **WebGL Combo**: `gl.bindBuffer` is only called when the buffer changes.
|
|
640
|
+
* Used to surgically update a subset of the GPU buffer without reallocating it.
|
|
641
|
+
*
|
|
642
|
+
* @param buffer
|
|
643
|
+
* @param dstByteOffset - Byte offset into the GPU buffer where `data` will be written
|
|
644
|
+
* @param data
|
|
645
|
+
*/
|
|
646
|
+
arrayBufferSubData(
|
|
647
|
+
buffer: WebGLBuffer | null,
|
|
648
|
+
dstByteOffset: number,
|
|
649
|
+
data: ArrayBufferView,
|
|
650
|
+
) {
|
|
651
|
+
if (this.boundArrayBuffer !== buffer) {
|
|
652
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
|
|
653
|
+
this.boundArrayBuffer = buffer;
|
|
654
|
+
}
|
|
655
|
+
this.gl.bufferSubData(this.gl.ARRAY_BUFFER, dstByteOffset, data);
|
|
645
656
|
}
|
|
646
657
|
|
|
647
658
|
/**
|
|
@@ -661,12 +672,11 @@ export class WebGlContextWrapper {
|
|
|
661
672
|
data: ArrayBufferView,
|
|
662
673
|
usage: GLenum,
|
|
663
674
|
) {
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
675
|
+
if (this.boundElementArrayBuffer !== buffer) {
|
|
676
|
+
this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
667
677
|
this.boundElementArrayBuffer = buffer;
|
|
668
678
|
}
|
|
669
|
-
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, usage);
|
|
679
|
+
this.gl.bufferData(this.gl.ELEMENT_ARRAY_BUFFER, data, usage);
|
|
670
680
|
}
|
|
671
681
|
|
|
672
682
|
/**
|
|
@@ -695,12 +705,58 @@ export class WebGlContextWrapper {
|
|
|
695
705
|
stride: GLsizei,
|
|
696
706
|
offset: GLintptr,
|
|
697
707
|
) {
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
708
|
+
if (this.boundArrayBuffer !== buffer) {
|
|
709
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
|
|
701
710
|
this.boundArrayBuffer = buffer;
|
|
702
711
|
}
|
|
703
|
-
gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
|
|
712
|
+
this.gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
/**
|
|
716
|
+
* Returns object with Attribute names as key and numbers as location values
|
|
717
|
+
*
|
|
718
|
+
* @param program
|
|
719
|
+
* @returns object with numbers
|
|
720
|
+
*/
|
|
721
|
+
getUniformLocations(
|
|
722
|
+
program: WebGLProgram,
|
|
723
|
+
): Record<string, WebGLUniformLocation> {
|
|
724
|
+
const gl = this.gl;
|
|
725
|
+
const length = gl.getProgramParameter(
|
|
726
|
+
program,
|
|
727
|
+
gl.ACTIVE_UNIFORMS,
|
|
728
|
+
) as number;
|
|
729
|
+
const result = {} as Record<string, WebGLUniformLocation>;
|
|
730
|
+
for (let i = 0; i < length; i++) {
|
|
731
|
+
const info = gl.getActiveUniform(program, i) as WebGLActiveInfo;
|
|
732
|
+
//remove bracket + value from uniform name;
|
|
733
|
+
let name = info.name.replace(/\[.*?\]/g, '');
|
|
734
|
+
result[name] = gl.getUniformLocation(
|
|
735
|
+
program,
|
|
736
|
+
name,
|
|
737
|
+
) as WebGLUniformLocation;
|
|
738
|
+
}
|
|
739
|
+
return result;
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
/**
|
|
743
|
+
* Returns object with Attribute names as key and numbers as location values
|
|
744
|
+
* @param program
|
|
745
|
+
* @returns object with numbers
|
|
746
|
+
*/
|
|
747
|
+
getAttributeLocations(program: WebGLProgram): string[] {
|
|
748
|
+
const gl = this.gl;
|
|
749
|
+
const length = gl.getProgramParameter(
|
|
750
|
+
program,
|
|
751
|
+
gl.ACTIVE_ATTRIBUTES,
|
|
752
|
+
) as number;
|
|
753
|
+
|
|
754
|
+
const result: string[] = [];
|
|
755
|
+
for (let i = 0; i < length; i++) {
|
|
756
|
+
const { name } = gl.getActiveAttrib(program, i) as WebGLActiveInfo;
|
|
757
|
+
result[gl.getAttribLocation(program, name)] = name;
|
|
758
|
+
}
|
|
759
|
+
return result;
|
|
704
760
|
}
|
|
705
761
|
|
|
706
762
|
/**
|
|
@@ -711,13 +767,16 @@ export class WebGlContextWrapper {
|
|
|
711
767
|
* @param program
|
|
712
768
|
* @returns
|
|
713
769
|
*/
|
|
714
|
-
useProgram(
|
|
715
|
-
|
|
716
|
-
|
|
770
|
+
useProgram(
|
|
771
|
+
program: WebGLProgram | null,
|
|
772
|
+
uniformLocations: Record<string, WebGLUniformLocation>,
|
|
773
|
+
) {
|
|
774
|
+
if (this.curProgram === program) {
|
|
717
775
|
return;
|
|
718
776
|
}
|
|
719
|
-
gl.useProgram(program);
|
|
777
|
+
this.gl.useProgram(program);
|
|
720
778
|
this.curProgram = program;
|
|
779
|
+
this.curUniformLocations = uniformLocations;
|
|
721
780
|
}
|
|
722
781
|
|
|
723
782
|
/**
|
|
@@ -726,9 +785,8 @@ export class WebGlContextWrapper {
|
|
|
726
785
|
* @param location - The location of the uniform variable.
|
|
727
786
|
* @param v0 - The value to set.
|
|
728
787
|
*/
|
|
729
|
-
uniform1f(location:
|
|
730
|
-
|
|
731
|
-
gl.uniform1f(location, v0);
|
|
788
|
+
uniform1f(location: string, v0: number) {
|
|
789
|
+
this.gl.uniform1f(this.curUniformLocations[location] || null, v0);
|
|
732
790
|
}
|
|
733
791
|
|
|
734
792
|
/**
|
|
@@ -737,12 +795,8 @@ export class WebGlContextWrapper {
|
|
|
737
795
|
* @param location - The location of the uniform variable.
|
|
738
796
|
* @param value - The array of values to set.
|
|
739
797
|
*/
|
|
740
|
-
uniform1fv(
|
|
741
|
-
location
|
|
742
|
-
value: Float32Array | number[],
|
|
743
|
-
) {
|
|
744
|
-
const { gl } = this;
|
|
745
|
-
gl.uniform1fv(location, value);
|
|
798
|
+
uniform1fv(location: string, value: Float32Array) {
|
|
799
|
+
this.gl.uniform1fv(this.curUniformLocations[location] || null, value);
|
|
746
800
|
}
|
|
747
801
|
|
|
748
802
|
/**
|
|
@@ -751,9 +805,8 @@ export class WebGlContextWrapper {
|
|
|
751
805
|
* @param location - The location of the uniform variable.
|
|
752
806
|
* @param v0 - The value to set.
|
|
753
807
|
*/
|
|
754
|
-
uniform1i(location:
|
|
755
|
-
|
|
756
|
-
gl.uniform1i(location, v0);
|
|
808
|
+
uniform1i(location: string, v0: number) {
|
|
809
|
+
this.gl.uniform1i(this.curUniformLocations[location] || null, v0);
|
|
757
810
|
}
|
|
758
811
|
|
|
759
812
|
/**
|
|
@@ -762,12 +815,8 @@ export class WebGlContextWrapper {
|
|
|
762
815
|
* @param location - The location of the uniform variable.
|
|
763
816
|
* @param value - The array of values to set.
|
|
764
817
|
*/
|
|
765
|
-
uniform1iv(
|
|
766
|
-
location
|
|
767
|
-
value: Int32Array | number[],
|
|
768
|
-
) {
|
|
769
|
-
const { gl } = this;
|
|
770
|
-
gl.uniform1iv(location, value);
|
|
818
|
+
uniform1iv(location: string, value: Int32Array) {
|
|
819
|
+
this.gl.uniform1iv(this.curUniformLocations[location] || null, value);
|
|
771
820
|
}
|
|
772
821
|
|
|
773
822
|
/**
|
|
@@ -777,9 +826,22 @@ export class WebGlContextWrapper {
|
|
|
777
826
|
* @param v0 - The first component of the vector.
|
|
778
827
|
* @param v1 - The second component of the vector.
|
|
779
828
|
*/
|
|
780
|
-
uniform2f(location:
|
|
781
|
-
|
|
782
|
-
|
|
829
|
+
uniform2f(location: string, v0: number, v1: number) {
|
|
830
|
+
this.gl.uniform2f(this.curUniformLocations[location] || null, v0, v1);
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
/**
|
|
834
|
+
* Sets the value of a vec3 uniform variable.
|
|
835
|
+
*
|
|
836
|
+
* @param location - The location of the uniform variable.
|
|
837
|
+
* @param v - array of 4 numbers.
|
|
838
|
+
*/
|
|
839
|
+
uniform2fa(location: string, value: Vec2) {
|
|
840
|
+
this.gl.uniform2f(
|
|
841
|
+
this.curUniformLocations[location] || null,
|
|
842
|
+
value[0],
|
|
843
|
+
value[1],
|
|
844
|
+
);
|
|
783
845
|
}
|
|
784
846
|
|
|
785
847
|
/**
|
|
@@ -788,12 +850,8 @@ export class WebGlContextWrapper {
|
|
|
788
850
|
* @param location - The location of the uniform variable.
|
|
789
851
|
* @param value - The array of vec2 values to set.
|
|
790
852
|
*/
|
|
791
|
-
uniform2fv(
|
|
792
|
-
location
|
|
793
|
-
value: Float32Array | number[],
|
|
794
|
-
) {
|
|
795
|
-
const { gl } = this;
|
|
796
|
-
gl.uniform2fv(location, value);
|
|
853
|
+
uniform2fv(location: string, value: Float32Array) {
|
|
854
|
+
this.gl.uniform2fv(this.curUniformLocations[location] || null, value);
|
|
797
855
|
}
|
|
798
856
|
|
|
799
857
|
/**
|
|
@@ -803,9 +861,8 @@ export class WebGlContextWrapper {
|
|
|
803
861
|
* @param v0 - The first component of the vector.
|
|
804
862
|
* @param v1 - The second component of the vector.
|
|
805
863
|
*/
|
|
806
|
-
uniform2i(location:
|
|
807
|
-
|
|
808
|
-
gl.uniform2i(location, v0, v1);
|
|
864
|
+
uniform2i(location: string, v0: number, v1: number) {
|
|
865
|
+
this.gl.uniform2i(this.curUniformLocations[location] || null, v0, v1);
|
|
809
866
|
}
|
|
810
867
|
|
|
811
868
|
/**
|
|
@@ -814,12 +871,8 @@ export class WebGlContextWrapper {
|
|
|
814
871
|
* @param location - The location of the uniform variable.
|
|
815
872
|
* @param value - The array of ivec2 values to set.
|
|
816
873
|
*/
|
|
817
|
-
uniform2iv(
|
|
818
|
-
location
|
|
819
|
-
value: Int32Array | number[],
|
|
820
|
-
) {
|
|
821
|
-
const { gl } = this;
|
|
822
|
-
gl.uniform2iv(location, value);
|
|
874
|
+
uniform2iv(location: string, value: Int32Array) {
|
|
875
|
+
this.gl.uniform2iv(this.curUniformLocations[location] || null, value);
|
|
823
876
|
}
|
|
824
877
|
|
|
825
878
|
/**
|
|
@@ -830,14 +883,23 @@ export class WebGlContextWrapper {
|
|
|
830
883
|
* @param v1 - The second component of the vector.
|
|
831
884
|
* @param v2 - The third component of the vector.
|
|
832
885
|
*/
|
|
833
|
-
uniform3f(
|
|
834
|
-
location
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
886
|
+
uniform3f(location: string, v0: number, v1: number, v2: number) {
|
|
887
|
+
this.gl.uniform3f(this.curUniformLocations[location] || null, v0, v1, v2);
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
/**
|
|
891
|
+
* Sets the value of a vec3 uniform variable.
|
|
892
|
+
*
|
|
893
|
+
* @param location - The location of the uniform variable.
|
|
894
|
+
* @param v - array of 4 numbers.
|
|
895
|
+
*/
|
|
896
|
+
uniform3fa(location: string, value: Vec3) {
|
|
897
|
+
this.gl.uniform3f(
|
|
898
|
+
this.curUniformLocations[location] || null,
|
|
899
|
+
value[0],
|
|
900
|
+
value[1],
|
|
901
|
+
value[2],
|
|
902
|
+
);
|
|
841
903
|
}
|
|
842
904
|
|
|
843
905
|
/**
|
|
@@ -846,12 +908,8 @@ export class WebGlContextWrapper {
|
|
|
846
908
|
* @param location - The location of the uniform variable.
|
|
847
909
|
* @param value - The array of vec3 values to set.
|
|
848
910
|
*/
|
|
849
|
-
uniform3fv(
|
|
850
|
-
location
|
|
851
|
-
value: Float32Array | number[],
|
|
852
|
-
) {
|
|
853
|
-
const { gl } = this;
|
|
854
|
-
gl.uniform3fv(location, value);
|
|
911
|
+
uniform3fv(location: string, value: Float32Array) {
|
|
912
|
+
this.gl.uniform3fv(this.curUniformLocations[location] || null, value);
|
|
855
913
|
}
|
|
856
914
|
|
|
857
915
|
/**
|
|
@@ -862,14 +920,8 @@ export class WebGlContextWrapper {
|
|
|
862
920
|
* @param v1 - The second component of the vector.
|
|
863
921
|
* @param v2 - The third component of the vector.
|
|
864
922
|
*/
|
|
865
|
-
uniform3i(
|
|
866
|
-
location
|
|
867
|
-
v0: number,
|
|
868
|
-
v1: number,
|
|
869
|
-
v2: number,
|
|
870
|
-
) {
|
|
871
|
-
const { gl } = this;
|
|
872
|
-
gl.uniform3i(location, v0, v1, v2);
|
|
923
|
+
uniform3i(location: string, v0: number, v1: number, v2: number) {
|
|
924
|
+
this.gl.uniform3i(this.curUniformLocations[location] || null, v0, v1, v2);
|
|
873
925
|
}
|
|
874
926
|
|
|
875
927
|
/**
|
|
@@ -878,12 +930,8 @@ export class WebGlContextWrapper {
|
|
|
878
930
|
* @param location - The location of the uniform variable.
|
|
879
931
|
* @param value - The array of ivec3 values to set.
|
|
880
932
|
*/
|
|
881
|
-
uniform3iv(
|
|
882
|
-
location
|
|
883
|
-
value: Int32Array | number[],
|
|
884
|
-
) {
|
|
885
|
-
const { gl } = this;
|
|
886
|
-
gl.uniform3iv(location, value);
|
|
933
|
+
uniform3iv(location: string, value: Int32Array) {
|
|
934
|
+
this.gl.uniform3iv(this.curUniformLocations[location] || null, value);
|
|
887
935
|
}
|
|
888
936
|
|
|
889
937
|
/**
|
|
@@ -895,15 +943,30 @@ export class WebGlContextWrapper {
|
|
|
895
943
|
* @param v2 - The third component of the vector.
|
|
896
944
|
* @param v3 - The fourth component of the vector.
|
|
897
945
|
*/
|
|
898
|
-
uniform4f(
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
946
|
+
uniform4f(location: string, v0: number, v1: number, v2: number, v3: number) {
|
|
947
|
+
this.gl.uniform4f(
|
|
948
|
+
this.curUniformLocations[location] || null,
|
|
949
|
+
v0,
|
|
950
|
+
v1,
|
|
951
|
+
v2,
|
|
952
|
+
v3,
|
|
953
|
+
);
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
/**
|
|
957
|
+
* Sets the value of a vec4 uniform variable.
|
|
958
|
+
*
|
|
959
|
+
* @param location - The location of the uniform variable.
|
|
960
|
+
* @param v - array of 4 numbers.
|
|
961
|
+
*/
|
|
962
|
+
uniform4fa(location: string, value: Vec4) {
|
|
963
|
+
this.gl.uniform4f(
|
|
964
|
+
this.curUniformLocations[location] || null,
|
|
965
|
+
value[0],
|
|
966
|
+
value[1],
|
|
967
|
+
value[2],
|
|
968
|
+
value[3],
|
|
969
|
+
);
|
|
907
970
|
}
|
|
908
971
|
|
|
909
972
|
/**
|
|
@@ -912,12 +975,8 @@ export class WebGlContextWrapper {
|
|
|
912
975
|
* @param location - The location of the uniform variable.
|
|
913
976
|
* @param value - The array of vec4 values to set.
|
|
914
977
|
*/
|
|
915
|
-
uniform4fv(
|
|
916
|
-
location
|
|
917
|
-
value: Float32Array | number[],
|
|
918
|
-
) {
|
|
919
|
-
const { gl } = this;
|
|
920
|
-
gl.uniform4fv(location, value);
|
|
978
|
+
uniform4fv(location: string, value: Float32Array) {
|
|
979
|
+
this.gl.uniform4fv(this.curUniformLocations[location] || null, value);
|
|
921
980
|
}
|
|
922
981
|
|
|
923
982
|
/**
|
|
@@ -929,15 +988,14 @@ export class WebGlContextWrapper {
|
|
|
929
988
|
* @param v2 - The third component of the vector.
|
|
930
989
|
* @param v3 - The fourth component of the vector.
|
|
931
990
|
*/
|
|
932
|
-
uniform4i(
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
gl.uniform4i(location, v0, v1, v2, v3);
|
|
991
|
+
uniform4i(location: string, v0: number, v1: number, v2: number, v3: number) {
|
|
992
|
+
this.gl.uniform4i(
|
|
993
|
+
this.curUniformLocations[location] || null,
|
|
994
|
+
v0,
|
|
995
|
+
v1,
|
|
996
|
+
v2,
|
|
997
|
+
v3,
|
|
998
|
+
);
|
|
941
999
|
}
|
|
942
1000
|
|
|
943
1001
|
/**
|
|
@@ -946,12 +1004,8 @@ export class WebGlContextWrapper {
|
|
|
946
1004
|
* @param location - The location of the uniform variable.
|
|
947
1005
|
* @param value - The array of ivec4 values to set.
|
|
948
1006
|
*/
|
|
949
|
-
uniform4iv(
|
|
950
|
-
location
|
|
951
|
-
value: Int32Array | number[],
|
|
952
|
-
) {
|
|
953
|
-
const { gl } = this;
|
|
954
|
-
gl.uniform4iv(location, value);
|
|
1007
|
+
uniform4iv(location: string, value: Int32Array) {
|
|
1008
|
+
this.gl.uniform4iv(this.curUniformLocations[location] || null, value);
|
|
955
1009
|
}
|
|
956
1010
|
|
|
957
1011
|
/**
|
|
@@ -961,12 +1015,12 @@ export class WebGlContextWrapper {
|
|
|
961
1015
|
* @param transpose - Whether to transpose the matrix.
|
|
962
1016
|
* @param value - The array of mat2 values to set.
|
|
963
1017
|
*/
|
|
964
|
-
uniformMatrix2fv(
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
1018
|
+
uniformMatrix2fv(location: string, value: Float32Array) {
|
|
1019
|
+
this.gl.uniformMatrix2fv(
|
|
1020
|
+
this.curUniformLocations[location] || null,
|
|
1021
|
+
false,
|
|
1022
|
+
value,
|
|
1023
|
+
);
|
|
970
1024
|
}
|
|
971
1025
|
|
|
972
1026
|
/**
|
|
@@ -974,12 +1028,12 @@ export class WebGlContextWrapper {
|
|
|
974
1028
|
* @param location - The location of the uniform variable.
|
|
975
1029
|
* @param value - The array of mat2 values to set.
|
|
976
1030
|
*/
|
|
977
|
-
uniformMatrix3fv(
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
1031
|
+
uniformMatrix3fv(location: string, value: Float32Array) {
|
|
1032
|
+
this.gl.uniformMatrix3fv(
|
|
1033
|
+
this.curUniformLocations[location] || null,
|
|
1034
|
+
false,
|
|
1035
|
+
value,
|
|
1036
|
+
);
|
|
983
1037
|
}
|
|
984
1038
|
|
|
985
1039
|
/**
|
|
@@ -987,12 +1041,12 @@ export class WebGlContextWrapper {
|
|
|
987
1041
|
* @param location - The location of the uniform variable.
|
|
988
1042
|
* @param value - The array of mat4 values to set.
|
|
989
1043
|
*/
|
|
990
|
-
uniformMatrix4fv(
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
1044
|
+
uniformMatrix4fv(location: string, value: Float32Array) {
|
|
1045
|
+
this.gl.uniformMatrix4fv(
|
|
1046
|
+
this.curUniformLocations[location] || null,
|
|
1047
|
+
false,
|
|
1048
|
+
value,
|
|
1049
|
+
);
|
|
996
1050
|
}
|
|
997
1051
|
|
|
998
1052
|
/**
|
|
@@ -1004,8 +1058,7 @@ export class WebGlContextWrapper {
|
|
|
1004
1058
|
* @returns
|
|
1005
1059
|
*/
|
|
1006
1060
|
getParameter(pname: GLenum): any {
|
|
1007
|
-
|
|
1008
|
-
return gl.getParameter(pname);
|
|
1061
|
+
return this.gl.getParameter(pname);
|
|
1009
1062
|
}
|
|
1010
1063
|
|
|
1011
1064
|
/**
|
|
@@ -1019,8 +1072,20 @@ export class WebGlContextWrapper {
|
|
|
1019
1072
|
* @param offset
|
|
1020
1073
|
*/
|
|
1021
1074
|
drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr) {
|
|
1022
|
-
|
|
1023
|
-
|
|
1075
|
+
this.gl.drawElements(mode, count, type, offset);
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
/**
|
|
1079
|
+
* ```
|
|
1080
|
+
* gl.drawArrays(mode, first, count);
|
|
1081
|
+
* ```
|
|
1082
|
+
*
|
|
1083
|
+
* @param mode
|
|
1084
|
+
* @param first
|
|
1085
|
+
* @param count
|
|
1086
|
+
*/
|
|
1087
|
+
drawArrays(mode: GLenum, first: GLint, count: GLsizei) {
|
|
1088
|
+
this.gl.drawArrays(mode, first, count);
|
|
1024
1089
|
}
|
|
1025
1090
|
|
|
1026
1091
|
/**
|
|
@@ -1032,8 +1097,7 @@ export class WebGlContextWrapper {
|
|
|
1032
1097
|
* @returns
|
|
1033
1098
|
*/
|
|
1034
1099
|
getExtension(name: string) {
|
|
1035
|
-
|
|
1036
|
-
return gl.getExtension(name);
|
|
1100
|
+
return this.gl.getExtension(name);
|
|
1037
1101
|
}
|
|
1038
1102
|
|
|
1039
1103
|
/**
|
|
@@ -1044,8 +1108,7 @@ export class WebGlContextWrapper {
|
|
|
1044
1108
|
* @returns
|
|
1045
1109
|
*/
|
|
1046
1110
|
getError() {
|
|
1047
|
-
|
|
1048
|
-
return gl.getError();
|
|
1111
|
+
return this.gl.getError();
|
|
1049
1112
|
}
|
|
1050
1113
|
|
|
1051
1114
|
/**
|
|
@@ -1056,9 +1119,10 @@ export class WebGlContextWrapper {
|
|
|
1056
1119
|
* @returns
|
|
1057
1120
|
*/
|
|
1058
1121
|
createVertexArray() {
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1122
|
+
if (this.gl instanceof WebGL2RenderingContext) {
|
|
1123
|
+
return this.gl.createVertexArray();
|
|
1124
|
+
}
|
|
1125
|
+
return undefined;
|
|
1062
1126
|
}
|
|
1063
1127
|
|
|
1064
1128
|
/**
|
|
@@ -1069,9 +1133,9 @@ export class WebGlContextWrapper {
|
|
|
1069
1133
|
* @param vertexArray
|
|
1070
1134
|
*/
|
|
1071
1135
|
bindVertexArray(vertexArray: WebGLVertexArrayObject | null) {
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1136
|
+
if (this.gl instanceof WebGL2RenderingContext) {
|
|
1137
|
+
this.gl.bindVertexArray(vertexArray);
|
|
1138
|
+
}
|
|
1075
1139
|
}
|
|
1076
1140
|
|
|
1077
1141
|
/**
|
|
@@ -1084,8 +1148,7 @@ export class WebGlContextWrapper {
|
|
|
1084
1148
|
* @returns
|
|
1085
1149
|
*/
|
|
1086
1150
|
getAttribLocation(program: WebGLProgram, name: string) {
|
|
1087
|
-
|
|
1088
|
-
return gl.getAttribLocation(program, name);
|
|
1151
|
+
return this.gl.getAttribLocation(program, name);
|
|
1089
1152
|
}
|
|
1090
1153
|
|
|
1091
1154
|
/**
|
|
@@ -1098,8 +1161,7 @@ export class WebGlContextWrapper {
|
|
|
1098
1161
|
* @returns
|
|
1099
1162
|
*/
|
|
1100
1163
|
getUniformLocation(program: WebGLProgram, name: string) {
|
|
1101
|
-
|
|
1102
|
-
return gl.getUniformLocation(program, name);
|
|
1164
|
+
return this.gl.getUniformLocation(program, name);
|
|
1103
1165
|
}
|
|
1104
1166
|
|
|
1105
1167
|
/**
|
|
@@ -1110,8 +1172,7 @@ export class WebGlContextWrapper {
|
|
|
1110
1172
|
* @param index
|
|
1111
1173
|
*/
|
|
1112
1174
|
enableVertexAttribArray(index: number) {
|
|
1113
|
-
|
|
1114
|
-
gl.enableVertexAttribArray(index);
|
|
1175
|
+
this.gl.enableVertexAttribArray(index);
|
|
1115
1176
|
}
|
|
1116
1177
|
|
|
1117
1178
|
/**
|
|
@@ -1122,8 +1183,7 @@ export class WebGlContextWrapper {
|
|
|
1122
1183
|
* @param index
|
|
1123
1184
|
*/
|
|
1124
1185
|
disableVertexAttribArray(index: number) {
|
|
1125
|
-
|
|
1126
|
-
gl.disableVertexAttribArray(index);
|
|
1186
|
+
this.gl.disableVertexAttribArray(index);
|
|
1127
1187
|
}
|
|
1128
1188
|
|
|
1129
1189
|
/**
|
|
@@ -1135,8 +1195,7 @@ export class WebGlContextWrapper {
|
|
|
1135
1195
|
* @returns
|
|
1136
1196
|
*/
|
|
1137
1197
|
createShader(type: number) {
|
|
1138
|
-
|
|
1139
|
-
return gl.createShader(type);
|
|
1198
|
+
return this.gl.createShader(type);
|
|
1140
1199
|
}
|
|
1141
1200
|
|
|
1142
1201
|
/**
|
|
@@ -1148,8 +1207,7 @@ export class WebGlContextWrapper {
|
|
|
1148
1207
|
* @returns
|
|
1149
1208
|
*/
|
|
1150
1209
|
compileShader(shader: WebGLShader) {
|
|
1151
|
-
|
|
1152
|
-
gl.compileShader(shader);
|
|
1210
|
+
this.gl.compileShader(shader);
|
|
1153
1211
|
}
|
|
1154
1212
|
|
|
1155
1213
|
/**
|
|
@@ -1161,8 +1219,7 @@ export class WebGlContextWrapper {
|
|
|
1161
1219
|
* @param shader
|
|
1162
1220
|
*/
|
|
1163
1221
|
attachShader(program: WebGLProgram, shader: WebGLShader) {
|
|
1164
|
-
|
|
1165
|
-
gl.attachShader(program, shader);
|
|
1222
|
+
this.gl.attachShader(program, shader);
|
|
1166
1223
|
}
|
|
1167
1224
|
|
|
1168
1225
|
/**
|
|
@@ -1173,8 +1230,7 @@ export class WebGlContextWrapper {
|
|
|
1173
1230
|
* @param program
|
|
1174
1231
|
*/
|
|
1175
1232
|
linkProgram(program: WebGLProgram) {
|
|
1176
|
-
|
|
1177
|
-
gl.linkProgram(program);
|
|
1233
|
+
this.gl.linkProgram(program);
|
|
1178
1234
|
}
|
|
1179
1235
|
|
|
1180
1236
|
/**
|
|
@@ -1185,8 +1241,7 @@ export class WebGlContextWrapper {
|
|
|
1185
1241
|
* @param shader
|
|
1186
1242
|
*/
|
|
1187
1243
|
deleteProgram(shader: WebGLProgram) {
|
|
1188
|
-
|
|
1189
|
-
gl.deleteProgram(shader);
|
|
1244
|
+
this.gl.deleteProgram(shader);
|
|
1190
1245
|
}
|
|
1191
1246
|
|
|
1192
1247
|
/**
|
|
@@ -1198,8 +1253,7 @@ export class WebGlContextWrapper {
|
|
|
1198
1253
|
* @param pname
|
|
1199
1254
|
*/
|
|
1200
1255
|
getShaderParameter(shader: WebGLShader, pname: GLenum) {
|
|
1201
|
-
|
|
1202
|
-
return gl.getShaderParameter(shader, pname);
|
|
1256
|
+
return this.gl.getShaderParameter(shader, pname);
|
|
1203
1257
|
}
|
|
1204
1258
|
|
|
1205
1259
|
/**
|
|
@@ -1210,8 +1264,7 @@ export class WebGlContextWrapper {
|
|
|
1210
1264
|
* @param shader
|
|
1211
1265
|
*/
|
|
1212
1266
|
getShaderInfoLog(shader: WebGLShader) {
|
|
1213
|
-
|
|
1214
|
-
return gl.getShaderInfoLog(shader);
|
|
1267
|
+
return this.gl.getShaderInfoLog(shader);
|
|
1215
1268
|
}
|
|
1216
1269
|
|
|
1217
1270
|
/**
|
|
@@ -1222,8 +1275,7 @@ export class WebGlContextWrapper {
|
|
|
1222
1275
|
* @returns
|
|
1223
1276
|
*/
|
|
1224
1277
|
createProgram() {
|
|
1225
|
-
|
|
1226
|
-
return gl.createProgram();
|
|
1278
|
+
return this.gl.createProgram();
|
|
1227
1279
|
}
|
|
1228
1280
|
|
|
1229
1281
|
/**
|
|
@@ -1236,8 +1288,7 @@ export class WebGlContextWrapper {
|
|
|
1236
1288
|
* @returns
|
|
1237
1289
|
*/
|
|
1238
1290
|
getProgramParameter(program: WebGLProgram, pname: GLenum) {
|
|
1239
|
-
|
|
1240
|
-
return gl.getProgramParameter(program, pname);
|
|
1291
|
+
return this.gl.getProgramParameter(program, pname);
|
|
1241
1292
|
}
|
|
1242
1293
|
|
|
1243
1294
|
/**
|
|
@@ -1249,8 +1300,7 @@ export class WebGlContextWrapper {
|
|
|
1249
1300
|
* @returns
|
|
1250
1301
|
*/
|
|
1251
1302
|
getProgramInfoLog(program: WebGLProgram) {
|
|
1252
|
-
|
|
1253
|
-
return gl.getProgramInfoLog(program);
|
|
1303
|
+
return this.gl.getProgramInfoLog(program);
|
|
1254
1304
|
}
|
|
1255
1305
|
|
|
1256
1306
|
/**
|
|
@@ -1262,8 +1312,7 @@ export class WebGlContextWrapper {
|
|
|
1262
1312
|
* @param source
|
|
1263
1313
|
*/
|
|
1264
1314
|
shaderSource(shader: WebGLShader, source: string) {
|
|
1265
|
-
|
|
1266
|
-
gl.shaderSource(shader, source);
|
|
1315
|
+
this.gl.shaderSource(shader, source);
|
|
1267
1316
|
}
|
|
1268
1317
|
|
|
1269
1318
|
/**
|
|
@@ -1274,8 +1323,75 @@ export class WebGlContextWrapper {
|
|
|
1274
1323
|
* @param shader
|
|
1275
1324
|
*/
|
|
1276
1325
|
deleteShader(shader: WebGLShader) {
|
|
1326
|
+
this.gl.deleteShader(shader);
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
/**
|
|
1330
|
+
* ```
|
|
1331
|
+
* gl.deleteBuffer(buffer);
|
|
1332
|
+
* ```
|
|
1333
|
+
*
|
|
1334
|
+
* @param buffer - The buffer to delete
|
|
1335
|
+
*/
|
|
1336
|
+
deleteBuffer(buffer: WebGLBuffer) {
|
|
1277
1337
|
const { gl } = this;
|
|
1278
|
-
gl.
|
|
1338
|
+
gl.deleteBuffer(buffer);
|
|
1339
|
+
|
|
1340
|
+
// Reset bound buffers if they match the deleted buffer
|
|
1341
|
+
if (this.boundArrayBuffer === buffer) {
|
|
1342
|
+
this.boundArrayBuffer = null;
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
/**
|
|
1347
|
+
* ```
|
|
1348
|
+
* gl.deleteVertexArray(vertexArray);
|
|
1349
|
+
* ```
|
|
1350
|
+
*
|
|
1351
|
+
* @param vertexArray - The vertex array object to delete
|
|
1352
|
+
*/
|
|
1353
|
+
deleteVertexArray(vertexArray: WebGLVertexArrayObject) {
|
|
1354
|
+
if (this.isWebGl2()) {
|
|
1355
|
+
(this.gl as WebGL2RenderingContext).deleteVertexArray(vertexArray);
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
/**
|
|
1360
|
+
* Check for WebGL errors and return error information
|
|
1361
|
+
* @param operation Description of the operation for error reporting
|
|
1362
|
+
* @returns Object with error information or null if no error
|
|
1363
|
+
*/
|
|
1364
|
+
checkError(
|
|
1365
|
+
operation: string,
|
|
1366
|
+
): { error: number; errorName: string; message: string } | null {
|
|
1367
|
+
const error = this.getError();
|
|
1368
|
+
if (error !== 0) {
|
|
1369
|
+
// 0 is GL_NO_ERROR
|
|
1370
|
+
let errorName = 'UNKNOWN_ERROR';
|
|
1371
|
+
switch (error) {
|
|
1372
|
+
case this.INVALID_ENUM:
|
|
1373
|
+
errorName = 'INVALID_ENUM';
|
|
1374
|
+
break;
|
|
1375
|
+
case 0x0501: // GL_INVALID_VALUE
|
|
1376
|
+
errorName = 'INVALID_VALUE';
|
|
1377
|
+
break;
|
|
1378
|
+
case this.INVALID_OPERATION:
|
|
1379
|
+
errorName = 'INVALID_OPERATION';
|
|
1380
|
+
break;
|
|
1381
|
+
case 0x0505: // GL_OUT_OF_MEMORY
|
|
1382
|
+
errorName = 'OUT_OF_MEMORY';
|
|
1383
|
+
break;
|
|
1384
|
+
case 0x9242: // GL_CONTEXT_LOST_WEBGL
|
|
1385
|
+
errorName = 'CONTEXT_LOST_WEBGL';
|
|
1386
|
+
break;
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
const message = `WebGL ${errorName} (0x${error.toString(
|
|
1390
|
+
16,
|
|
1391
|
+
)}) during ${operation}`;
|
|
1392
|
+
return { error, errorName, message };
|
|
1393
|
+
}
|
|
1394
|
+
return null;
|
|
1279
1395
|
}
|
|
1280
1396
|
}
|
|
1281
1397
|
|