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