@lightningjs/renderer 2.13.5 → 2.14.0
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 +147 -147
- package/dist/src/core/CoreTextureManager.d.ts +3 -8
- package/dist/src/core/CoreTextureManager.js +34 -63
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- 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/shaders/DefaultShader.js +45 -45
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/canvas.ts +39 -39
- package/exports/index.ts +89 -89
- package/exports/inspector.ts +24 -24
- package/exports/utils.ts +44 -44
- package/exports/webgl.ts +38 -38
- package/package.json +1 -1
- package/scripts/please-use-pnpm.js +13 -13
- package/src/common/CommonTypes.ts +146 -146
- package/src/common/EventEmitter.ts +77 -77
- package/src/common/IAnimationController.ts +92 -92
- package/src/common/IEventEmitter.ts +28 -28
- package/src/core/CoreNode.test.ts +202 -202
- package/src/core/CoreNode.ts +2462 -2462
- package/src/core/CoreShaderManager.ts +292 -292
- package/src/core/CoreTextNode.ts +455 -455
- package/src/core/CoreTextureManager.ts +558 -604
- package/src/core/Stage.ts +743 -743
- package/src/core/TextureMemoryManager.ts +404 -404
- package/src/core/animations/AnimationManager.ts +38 -38
- package/src/core/animations/CoreAnimation.ts +347 -347
- package/src/core/animations/CoreAnimationController.ts +164 -164
- package/src/core/lib/ContextSpy.ts +41 -41
- package/src/core/lib/ImageWorker.ts +280 -280
- package/src/core/lib/Matrix3d.ts +244 -244
- package/src/core/lib/RenderCoords.ts +86 -86
- package/src/core/lib/WebGlContextWrapper.ts +1332 -1332
- package/src/core/lib/textureCompression.ts +152 -152
- package/src/core/lib/textureSvg.ts +78 -78
- package/src/core/lib/utils.ts +384 -384
- package/src/core/lib/validateImageBitmap.ts +76 -76
- package/src/core/platform.ts +63 -63
- package/src/core/renderers/CoreContextTexture.ts +43 -43
- package/src/core/renderers/CoreRenderOp.ts +22 -22
- package/src/core/renderers/CoreRenderer.ts +115 -115
- package/src/core/renderers/CoreShader.ts +41 -41
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +375 -375
- package/src/core/renderers/canvas/CanvasCoreTexture.ts +153 -153
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +231 -231
- package/src/core/renderers/canvas/internal/ColorUtils.ts +69 -69
- package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +48 -48
- package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +86 -86
- package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +50 -50
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +301 -301
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +125 -125
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +815 -815
- package/src/core/renderers/webgl/WebGlCoreShader.ts +362 -362
- package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
- package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -143
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +93 -93
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +580 -580
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +167 -167
- package/src/core/renderers/webgl/shaders/SdfShader.ts +204 -204
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +87 -87
- package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +159 -159
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +127 -127
- package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +148 -148
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
- package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +157 -157
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +171 -171
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +168 -168
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +187 -187
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +110 -110
- package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +196 -196
- package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
- package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
- package/src/core/text-rendering/TrFontManager.ts +183 -183
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
- package/src/core/text-rendering/font-face-types/utils.ts +39 -39
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -509
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +808 -808
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +853 -853
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +408 -408
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
- package/src/core/text-rendering/renderers/TextRenderer.ts +557 -557
- package/src/core/textures/ColorTexture.ts +102 -102
- package/src/core/textures/ImageTexture.ts +399 -399
- package/src/core/textures/NoiseTexture.ts +104 -104
- package/src/core/textures/RenderTexture.ts +85 -85
- package/src/core/textures/SubTexture.ts +205 -205
- package/src/core/textures/Texture.ts +367 -367
- package/src/core/utils.ts +227 -227
- package/src/env.d.ts +7 -7
- package/src/main-api/DynamicShaderController.ts +104 -104
- package/src/main-api/INode.ts +101 -101
- package/src/main-api/Inspector.ts +522 -522
- package/src/main-api/Renderer.ts +751 -751
- package/src/main-api/ShaderController.ts +80 -80
- package/src/main-api/utils.ts +45 -45
- package/src/utils.ts +248 -248
- package/COPYING +0 -1
- package/dist/exports/canvas-shaders.d.ts +0 -10
- package/dist/exports/canvas-shaders.js +0 -27
- package/dist/exports/canvas-shaders.js.map +0 -1
- package/dist/exports/webgl-shaders.d.ts +0 -11
- package/dist/exports/webgl-shaders.js +0 -28
- package/dist/exports/webgl-shaders.js.map +0 -1
- package/dist/src/core/platforms/Platform.d.ts +0 -37
- package/dist/src/core/platforms/Platform.js +0 -22
- package/dist/src/core/platforms/Platform.js.map +0 -1
- package/dist/src/core/platforms/web/WebPlatform.d.ts +0 -9
- package/dist/src/core/platforms/web/WebPlatform.js +0 -58
- package/dist/src/core/platforms/web/WebPlatform.js.map +0 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +0 -58
- package/dist/src/core/renderers/CoreShaderNode.js +0 -104
- package/dist/src/core/renderers/CoreShaderNode.js.map +0 -1
- package/dist/src/core/renderers/CoreShaderProgram.d.ts +0 -4
- package/dist/src/core/renderers/CoreShaderProgram.js +0 -20
- package/dist/src/core/renderers/CoreShaderProgram.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -36
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +0 -212
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +0 -21
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +0 -60
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +0 -16
- package/dist/src/core/renderers/canvas/CanvasTexture.js +0 -124
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +0 -12
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +0 -55
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +0 -9
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +0 -38
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +0 -57
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -227
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.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/WebGlRenderer.d.ts +0 -135
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +0 -571
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +0 -222
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +0 -334
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +0 -35
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +0 -201
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +0 -1
- package/dist/src/core/shaders/canvas/Border.d.ts +0 -9
- package/dist/src/core/shaders/canvas/Border.js +0 -57
- package/dist/src/core/shaders/canvas/Border.js.map +0 -1
- package/dist/src/core/shaders/canvas/HolePunch.d.ts +0 -7
- package/dist/src/core/shaders/canvas/HolePunch.js +0 -38
- package/dist/src/core/shaders/canvas/HolePunch.js.map +0 -1
- package/dist/src/core/shaders/canvas/LinearGradient.d.ts +0 -10
- package/dist/src/core/shaders/canvas/LinearGradient.js +0 -46
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +0 -1
- package/dist/src/core/shaders/canvas/RadialGradient.d.ts +0 -11
- package/dist/src/core/shaders/canvas/RadialGradient.js +0 -68
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +0 -1
- package/dist/src/core/shaders/canvas/Rounded.d.ts +0 -7
- package/dist/src/core/shaders/canvas/Rounded.js +0 -33
- package/dist/src/core/shaders/canvas/Rounded.js.map +0 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +0 -7
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +0 -41
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +0 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +0 -8
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +0 -39
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +0 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +0 -7
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +0 -38
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +0 -1
- package/dist/src/core/shaders/canvas/Shadow.d.ts +0 -8
- package/dist/src/core/shaders/canvas/Shadow.js +0 -31
- package/dist/src/core/shaders/canvas/Shadow.js.map +0 -1
- package/dist/src/core/shaders/canvas/utils/render.d.ts +0 -5
- package/dist/src/core/shaders/canvas/utils/render.js +0 -84
- package/dist/src/core/shaders/canvas/utils/render.js.map +0 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +0 -37
- package/dist/src/core/shaders/templates/BorderTemplate.js +0 -73
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +0 -46
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +0 -35
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +0 -23
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -47
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +0 -31
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +0 -49
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +0 -29
- package/dist/src/core/shaders/templates/RoundedTemplate.js +0 -67
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +0 -7
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -24
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +0 -6
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +0 -23
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +0 -6
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -23
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +0 -34
- package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -66
- package/dist/src/core/shaders/templates/ShadowTemplate.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/Border.d.ts +0 -3
- package/dist/src/core/shaders/webgl/Border.js +0 -110
- package/dist/src/core/shaders/webgl/Border.js.map +0 -1
- package/dist/src/core/shaders/webgl/Default.d.ts +0 -2
- package/dist/src/core/shaders/webgl/Default.js +0 -86
- package/dist/src/core/shaders/webgl/Default.js.map +0 -1
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +0 -2
- package/dist/src/core/shaders/webgl/DefaultBatched.js +0 -104
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +0 -1
- package/dist/src/core/shaders/webgl/HolePunch.d.ts +0 -3
- package/dist/src/core/shaders/webgl/HolePunch.js +0 -64
- package/dist/src/core/shaders/webgl/HolePunch.js.map +0 -1
- package/dist/src/core/shaders/webgl/LinearGradient.d.ts +0 -3
- package/dist/src/core/shaders/webgl/LinearGradient.js +0 -75
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +0 -1
- package/dist/src/core/shaders/webgl/RadialGradient.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RadialGradient.js +0 -73
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +0 -1
- package/dist/src/core/shaders/webgl/Rounded.d.ts +0 -7
- package/dist/src/core/shaders/webgl/Rounded.js +0 -86
- package/dist/src/core/shaders/webgl/Rounded.js.map +0 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +0 -129
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +0 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +0 -149
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +0 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +0 -84
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +0 -1
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -32
- package/dist/src/core/shaders/webgl/SdfShader.js +0 -116
- package/dist/src/core/shaders/webgl/SdfShader.js.map +0 -1
- package/dist/src/core/shaders/webgl/Shadow.d.ts +0 -3
- package/dist/src/core/shaders/webgl/Shadow.js +0 -110
- package/dist/src/core/shaders/webgl/Shadow.js.map +0 -1
- package/dist/src/core/temp.js +0 -77
- package/dist/src/core/temp.js.map +0 -1
- /package/dist/src/core/{temp.d.ts → renderers/webgl/WebGlCoreShader.destroy.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,147 +1,147 @@
|
|
|
1
|
-
# Lightning 3 Renderer
|
|
2
|
-
|
|
3
|
-
A powerful 2D scene renderer designed for rendering highly performant user
|
|
4
|
-
interfaces on web browsers running on embedded devices using WebGL.
|
|
5
|
-
|
|
6
|
-
The Renderer is part of the [LightningJS](https://lightningjs.io) project. While it is possible to use the renderer directly, it is not recommended. Instead, Lightning 3 works best when combined with [Blits](https://lightningjs.io/v3-docs/blits/getting_started/intro.html).
|
|
7
|
-
|
|
8
|
-
## Setup & Commands
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
# Install renderer + example dependencies
|
|
12
|
-
pnpm install
|
|
13
|
-
|
|
14
|
-
# Build Renderer
|
|
15
|
-
pnpm build
|
|
16
|
-
|
|
17
|
-
# Build Renderer (watch mode)
|
|
18
|
-
pnpm watch
|
|
19
|
-
|
|
20
|
-
# Run unit tests
|
|
21
|
-
pnpm test
|
|
22
|
-
|
|
23
|
-
# Run Visual Regression Tests
|
|
24
|
-
pnpm test:visual
|
|
25
|
-
|
|
26
|
-
# Build API Documentation (builds into ./typedocs folder)
|
|
27
|
-
pnpm typedoc
|
|
28
|
-
|
|
29
|
-
# Launch Example Tests in dev mode (includes Build Renderer (watch mode))
|
|
30
|
-
pnpm start
|
|
31
|
-
|
|
32
|
-
# Launch Example Tests in production mode
|
|
33
|
-
# IMPORTANT: To run test examples on embedded devices that use older browser versions
|
|
34
|
-
# you MUST run the examples in this mode.
|
|
35
|
-
pnpm start:prod
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Browser Targets
|
|
39
|
-
|
|
40
|
-
The Lightning 3 Renderer's goal is to work with the following browser versions and above:
|
|
41
|
-
|
|
42
|
-
- Chrome v38 (Released October 7, 2014)
|
|
43
|
-
|
|
44
|
-
Any JavaScript language features or browser APIs that cannot be automatically transpiled or polyfilled by industry standard transpilers (such as Babel) to target these versions must be carefully considered before use.
|
|
45
|
-
|
|
46
|
-
For a more detailed and comprehensive list of browsers and their features please see [browsers](./BROWSERS.md).
|
|
47
|
-
|
|
48
|
-
## Example Tests
|
|
49
|
-
|
|
50
|
-
The Example Tests sub-project define a set of tests for various Renderer
|
|
51
|
-
features. This is NOT an automated test. The command below will launch a
|
|
52
|
-
web server which can be accessed by a web browser for manual testing. However,
|
|
53
|
-
many of the Example Tests define Snapshots for the Visual Regression Test Runner
|
|
54
|
-
(see below).
|
|
55
|
-
|
|
56
|
-
The Example Tests can be launched with:
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
pnpm start
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
A hosted version can be found [here](https://lightning-js.github.io/renderer/).
|
|
63
|
-
|
|
64
|
-
This supports modern browsers as well as Chrome 38 and above through a legacy build.
|
|
65
|
-
|
|
66
|
-
See [examples/README.md](./examples/README.md) for more info.
|
|
67
|
-
|
|
68
|
-
## Visual Regression Tests
|
|
69
|
-
|
|
70
|
-
In order to prevent bugs on existing Renderer features when new features or bug
|
|
71
|
-
fixes are added, the Renderer includes a Visual Regression Test Runner along
|
|
72
|
-
with a set of certified snapshot files that are checked into the repository.
|
|
73
|
-
|
|
74
|
-
These tests can be launched with:
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
pnpm test:visual
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
The captured Snapshots of these tests are optionally defined in the individual
|
|
81
|
-
Example Tests.
|
|
82
|
-
|
|
83
|
-
See [visual-regression/README.md](./visual-regression/README.md) for more info.
|
|
84
|
-
|
|
85
|
-
## Manual Regression Tests
|
|
86
|
-
|
|
87
|
-
See [docs/ManualRegressionTests.md].
|
|
88
|
-
|
|
89
|
-
## Release Procedure
|
|
90
|
-
|
|
91
|
-
See [RELEASE.md](./RELEASE.md)
|
|
92
|
-
|
|
93
|
-
## Installing Fonts
|
|
94
|
-
|
|
95
|
-
Fonts can be installed into the Font Manager exposed by the Renderer's Stage.
|
|
96
|
-
There are two types of fonts that you can install, Web/Canvas2D fonts (WebTrFontFace)
|
|
97
|
-
and SDF fonts (SdfTrFontFace). Install that fonts that your applications needs
|
|
98
|
-
at start up so they are ready when your application is rendered.
|
|
99
|
-
|
|
100
|
-
```ts
|
|
101
|
-
import {
|
|
102
|
-
RendererMain,
|
|
103
|
-
WebTrFontFace,
|
|
104
|
-
SdfTrFontFace,
|
|
105
|
-
} from '@lightningjs/renderer';
|
|
106
|
-
|
|
107
|
-
import {
|
|
108
|
-
WebGlCoreRenderer,
|
|
109
|
-
SdfTextRenderer,
|
|
110
|
-
} from '@lightningjs/renderer/webgl';
|
|
111
|
-
import { CanvasTextRenderer } from '@lightningjs/renderer/canvas';
|
|
112
|
-
|
|
113
|
-
const renderer = new RendererMain(
|
|
114
|
-
{
|
|
115
|
-
appWidth: 1920,
|
|
116
|
-
appHeight: 1080,
|
|
117
|
-
renderEngine: WebGlCoreRenderer,
|
|
118
|
-
fontEngines: [SdfTextRenderer, CanvasTextRenderer],
|
|
119
|
-
// ...Other Renderer Config
|
|
120
|
-
},
|
|
121
|
-
'app', // id of div to insert Canvas.
|
|
122
|
-
);
|
|
123
|
-
|
|
124
|
-
// Load fonts into renderer
|
|
125
|
-
renderer.stage.fontManager.addFontFace(
|
|
126
|
-
new WebTrFontFace('Ubuntu', {}, '/fonts/Ubuntu-Regular.ttf'),
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
renderer.stage.fontManager.addFontFace(
|
|
130
|
-
new SdfTrFontFace(
|
|
131
|
-
'Ubuntu',
|
|
132
|
-
{},
|
|
133
|
-
'msdf',
|
|
134
|
-
stage,
|
|
135
|
-
'/fonts/Ubuntu-Regular.msdf.png',
|
|
136
|
-
'/fonts/Ubuntu-Regular.msdf.json',
|
|
137
|
-
),
|
|
138
|
-
);
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Please note that the WebGL renderer supports both SDF Fonts and Web Fonts, however the
|
|
142
|
-
Canvas renderer only supports Web Fonts:
|
|
143
|
-
|
|
144
|
-
| Font Type Renderer | SDF Font | Web Font |
|
|
145
|
-
| ------------------ | -------- | -------- |
|
|
146
|
-
| WebGL | Y | Y |
|
|
147
|
-
| Canvas | N | Y |
|
|
1
|
+
# Lightning 3 Renderer
|
|
2
|
+
|
|
3
|
+
A powerful 2D scene renderer designed for rendering highly performant user
|
|
4
|
+
interfaces on web browsers running on embedded devices using WebGL.
|
|
5
|
+
|
|
6
|
+
The Renderer is part of the [LightningJS](https://lightningjs.io) project. While it is possible to use the renderer directly, it is not recommended. Instead, Lightning 3 works best when combined with [Blits](https://lightningjs.io/v3-docs/blits/getting_started/intro.html).
|
|
7
|
+
|
|
8
|
+
## Setup & Commands
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
# Install renderer + example dependencies
|
|
12
|
+
pnpm install
|
|
13
|
+
|
|
14
|
+
# Build Renderer
|
|
15
|
+
pnpm build
|
|
16
|
+
|
|
17
|
+
# Build Renderer (watch mode)
|
|
18
|
+
pnpm watch
|
|
19
|
+
|
|
20
|
+
# Run unit tests
|
|
21
|
+
pnpm test
|
|
22
|
+
|
|
23
|
+
# Run Visual Regression Tests
|
|
24
|
+
pnpm test:visual
|
|
25
|
+
|
|
26
|
+
# Build API Documentation (builds into ./typedocs folder)
|
|
27
|
+
pnpm typedoc
|
|
28
|
+
|
|
29
|
+
# Launch Example Tests in dev mode (includes Build Renderer (watch mode))
|
|
30
|
+
pnpm start
|
|
31
|
+
|
|
32
|
+
# Launch Example Tests in production mode
|
|
33
|
+
# IMPORTANT: To run test examples on embedded devices that use older browser versions
|
|
34
|
+
# you MUST run the examples in this mode.
|
|
35
|
+
pnpm start:prod
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Browser Targets
|
|
39
|
+
|
|
40
|
+
The Lightning 3 Renderer's goal is to work with the following browser versions and above:
|
|
41
|
+
|
|
42
|
+
- Chrome v38 (Released October 7, 2014)
|
|
43
|
+
|
|
44
|
+
Any JavaScript language features or browser APIs that cannot be automatically transpiled or polyfilled by industry standard transpilers (such as Babel) to target these versions must be carefully considered before use.
|
|
45
|
+
|
|
46
|
+
For a more detailed and comprehensive list of browsers and their features please see [browsers](./BROWSERS.md).
|
|
47
|
+
|
|
48
|
+
## Example Tests
|
|
49
|
+
|
|
50
|
+
The Example Tests sub-project define a set of tests for various Renderer
|
|
51
|
+
features. This is NOT an automated test. The command below will launch a
|
|
52
|
+
web server which can be accessed by a web browser for manual testing. However,
|
|
53
|
+
many of the Example Tests define Snapshots for the Visual Regression Test Runner
|
|
54
|
+
(see below).
|
|
55
|
+
|
|
56
|
+
The Example Tests can be launched with:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
pnpm start
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
A hosted version can be found [here](https://lightning-js.github.io/renderer/).
|
|
63
|
+
|
|
64
|
+
This supports modern browsers as well as Chrome 38 and above through a legacy build.
|
|
65
|
+
|
|
66
|
+
See [examples/README.md](./examples/README.md) for more info.
|
|
67
|
+
|
|
68
|
+
## Visual Regression Tests
|
|
69
|
+
|
|
70
|
+
In order to prevent bugs on existing Renderer features when new features or bug
|
|
71
|
+
fixes are added, the Renderer includes a Visual Regression Test Runner along
|
|
72
|
+
with a set of certified snapshot files that are checked into the repository.
|
|
73
|
+
|
|
74
|
+
These tests can be launched with:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
pnpm test:visual
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The captured Snapshots of these tests are optionally defined in the individual
|
|
81
|
+
Example Tests.
|
|
82
|
+
|
|
83
|
+
See [visual-regression/README.md](./visual-regression/README.md) for more info.
|
|
84
|
+
|
|
85
|
+
## Manual Regression Tests
|
|
86
|
+
|
|
87
|
+
See [docs/ManualRegressionTests.md].
|
|
88
|
+
|
|
89
|
+
## Release Procedure
|
|
90
|
+
|
|
91
|
+
See [RELEASE.md](./RELEASE.md)
|
|
92
|
+
|
|
93
|
+
## Installing Fonts
|
|
94
|
+
|
|
95
|
+
Fonts can be installed into the Font Manager exposed by the Renderer's Stage.
|
|
96
|
+
There are two types of fonts that you can install, Web/Canvas2D fonts (WebTrFontFace)
|
|
97
|
+
and SDF fonts (SdfTrFontFace). Install that fonts that your applications needs
|
|
98
|
+
at start up so they are ready when your application is rendered.
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
import {
|
|
102
|
+
RendererMain,
|
|
103
|
+
WebTrFontFace,
|
|
104
|
+
SdfTrFontFace,
|
|
105
|
+
} from '@lightningjs/renderer';
|
|
106
|
+
|
|
107
|
+
import {
|
|
108
|
+
WebGlCoreRenderer,
|
|
109
|
+
SdfTextRenderer,
|
|
110
|
+
} from '@lightningjs/renderer/webgl';
|
|
111
|
+
import { CanvasTextRenderer } from '@lightningjs/renderer/canvas';
|
|
112
|
+
|
|
113
|
+
const renderer = new RendererMain(
|
|
114
|
+
{
|
|
115
|
+
appWidth: 1920,
|
|
116
|
+
appHeight: 1080,
|
|
117
|
+
renderEngine: WebGlCoreRenderer,
|
|
118
|
+
fontEngines: [SdfTextRenderer, CanvasTextRenderer],
|
|
119
|
+
// ...Other Renderer Config
|
|
120
|
+
},
|
|
121
|
+
'app', // id of div to insert Canvas.
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
// Load fonts into renderer
|
|
125
|
+
renderer.stage.fontManager.addFontFace(
|
|
126
|
+
new WebTrFontFace('Ubuntu', {}, '/fonts/Ubuntu-Regular.ttf'),
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
renderer.stage.fontManager.addFontFace(
|
|
130
|
+
new SdfTrFontFace(
|
|
131
|
+
'Ubuntu',
|
|
132
|
+
{},
|
|
133
|
+
'msdf',
|
|
134
|
+
stage,
|
|
135
|
+
'/fonts/Ubuntu-Regular.msdf.png',
|
|
136
|
+
'/fonts/Ubuntu-Regular.msdf.json',
|
|
137
|
+
),
|
|
138
|
+
);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Please note that the WebGL renderer supports both SDF Fonts and Web Fonts, however the
|
|
142
|
+
Canvas renderer only supports Web Fonts:
|
|
143
|
+
|
|
144
|
+
| Font Type Renderer | SDF Font | Web Font |
|
|
145
|
+
| ------------------ | -------- | -------- |
|
|
146
|
+
| WebGL | Y | Y |
|
|
147
|
+
| Canvas | N | Y |
|
|
@@ -138,7 +138,6 @@ export declare class CoreTextureManager extends EventEmitter {
|
|
|
138
138
|
* Map of texture constructors by their type name
|
|
139
139
|
*/
|
|
140
140
|
txConstructors: Partial<TextureMap>;
|
|
141
|
-
private downloadTextureSourceQueue;
|
|
142
141
|
private priorityQueue;
|
|
143
142
|
private uploadTextureQueue;
|
|
144
143
|
private initialized;
|
|
@@ -173,10 +172,6 @@ export declare class CoreTextureManager extends EventEmitter {
|
|
|
173
172
|
constructor(stage: Stage, settings: TextureManagerSettings);
|
|
174
173
|
registerTextureType<Type extends keyof TextureMap>(textureType: Type, textureClass: TextureMap[Type]): void;
|
|
175
174
|
private initialize;
|
|
176
|
-
/**
|
|
177
|
-
* Enqueue a texture for downloading its source image.
|
|
178
|
-
*/
|
|
179
|
-
enqueueDownloadTextureSource(texture: Texture): void;
|
|
180
175
|
/**
|
|
181
176
|
* Enqueue a texture for uploading to the GPU.
|
|
182
177
|
*
|
|
@@ -209,9 +204,9 @@ export declare class CoreTextureManager extends EventEmitter {
|
|
|
209
204
|
*/
|
|
210
205
|
isProcessingTexture(texture: Texture): boolean;
|
|
211
206
|
/**
|
|
212
|
-
* Process a limited number of
|
|
207
|
+
* Process a limited number of uploads.
|
|
213
208
|
*
|
|
214
|
-
* @param
|
|
209
|
+
* @param maxProcessingTime - The maximum processing time in milliseconds
|
|
215
210
|
*/
|
|
216
211
|
processSome(maxProcessingTime: number): void;
|
|
217
212
|
hasUpdates(): boolean;
|
|
@@ -238,7 +233,7 @@ export declare class CoreTextureManager extends EventEmitter {
|
|
|
238
233
|
*/
|
|
239
234
|
removeTextureFromCache(texture: Texture): void;
|
|
240
235
|
/**
|
|
241
|
-
* Remove texture from the queue
|
|
236
|
+
* Remove texture from the upload queue
|
|
242
237
|
*
|
|
243
238
|
* @param texture - The texture to remove
|
|
244
239
|
*/
|
|
@@ -39,7 +39,6 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
39
39
|
* Map of texture constructors by their type name
|
|
40
40
|
*/
|
|
41
41
|
txConstructors = {};
|
|
42
|
-
downloadTextureSourceQueue = [];
|
|
43
42
|
priorityQueue = [];
|
|
44
43
|
uploadTextureQueue = [];
|
|
45
44
|
initialized = false;
|
|
@@ -81,7 +80,7 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
81
80
|
.then((result) => {
|
|
82
81
|
this.initialize(result);
|
|
83
82
|
})
|
|
84
|
-
.catch((
|
|
83
|
+
.catch(() => {
|
|
85
84
|
console.warn('[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.');
|
|
86
85
|
// initialized without image worker manager and createImageBitmap
|
|
87
86
|
this.initialized = true;
|
|
@@ -122,14 +121,6 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
122
121
|
this.initialized = true;
|
|
123
122
|
this.emit('initialized');
|
|
124
123
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Enqueue a texture for downloading its source image.
|
|
127
|
-
*/
|
|
128
|
-
enqueueDownloadTextureSource(texture) {
|
|
129
|
-
if (!this.downloadTextureSourceQueue.includes(texture)) {
|
|
130
|
-
this.downloadTextureSourceQueue.push(texture);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
124
|
/**
|
|
134
125
|
* Enqueue a texture for uploading to the GPU.
|
|
135
126
|
*
|
|
@@ -194,20 +185,13 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
194
185
|
return;
|
|
195
186
|
}
|
|
196
187
|
// if the texture is already being processed, don't load it again
|
|
197
|
-
if (this.
|
|
198
|
-
this.uploadTextureQueue.includes(texture) === true) {
|
|
188
|
+
if (this.uploadTextureQueue.includes(texture) === true) {
|
|
199
189
|
return;
|
|
200
190
|
}
|
|
201
191
|
// if the texture is already loading, free it, this can happen if the texture is
|
|
202
192
|
// orphaned and then reloaded
|
|
203
193
|
if (texture.ctxTexture !== undefined &&
|
|
204
194
|
texture.ctxTexture.state === 'loading') {
|
|
205
|
-
// if the texture has texture data, queue it for upload
|
|
206
|
-
if (texture.textureData !== null) {
|
|
207
|
-
this.enqueueUploadTexture(texture);
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
// else we will have to re-download the texture
|
|
211
195
|
texture.free();
|
|
212
196
|
}
|
|
213
197
|
// if we're not initialized, just queue the texture into the priority queue
|
|
@@ -220,30 +204,34 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
220
204
|
texture.free();
|
|
221
205
|
texture.freeTextureData();
|
|
222
206
|
}
|
|
223
|
-
// these types of textures don't need to be downloaded
|
|
224
|
-
// Technically the noise texture shouldn't either, but it's a special case
|
|
225
|
-
// and not really used in production so who cares ¯\_(ツ)_/¯
|
|
226
|
-
if ((texture.type === TextureType.color ||
|
|
227
|
-
texture.type === TextureType.renderToTexture) &&
|
|
228
|
-
texture.state !== 'initial') {
|
|
229
|
-
texture.setState('fetched');
|
|
230
|
-
this.enqueueUploadTexture(texture);
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
207
|
texture.setState('loading');
|
|
234
|
-
//
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
208
|
+
// Get the texture data
|
|
209
|
+
texture
|
|
210
|
+
.getTextureData()
|
|
211
|
+
.then(() => {
|
|
212
|
+
if (texture.state !== 'fetched') {
|
|
213
|
+
texture.setState('failed');
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
// For non-image textures, upload immediately
|
|
217
|
+
if (texture.type !== TextureType.image) {
|
|
239
218
|
this.uploadTexture(texture);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
// For image textures, queue for throttled upload
|
|
222
|
+
// If it's a priority texture, upload it immediately
|
|
223
|
+
if (priority === true) {
|
|
224
|
+
this.uploadTexture(texture);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
this.enqueueUploadTexture(texture);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
})
|
|
231
|
+
.catch((err) => {
|
|
232
|
+
console.error(err);
|
|
233
|
+
texture.setState('failed');
|
|
234
|
+
});
|
|
247
235
|
}
|
|
248
236
|
/**
|
|
249
237
|
* Upload a texture to the GPU
|
|
@@ -268,13 +256,12 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
268
256
|
* Check if a texture is being processed
|
|
269
257
|
*/
|
|
270
258
|
isProcessingTexture(texture) {
|
|
271
|
-
return
|
|
272
|
-
this.uploadTextureQueue.includes(texture) === true);
|
|
259
|
+
return this.uploadTextureQueue.includes(texture) === true;
|
|
273
260
|
}
|
|
274
261
|
/**
|
|
275
|
-
* Process a limited number of
|
|
262
|
+
* Process a limited number of uploads.
|
|
276
263
|
*
|
|
277
|
-
* @param
|
|
264
|
+
* @param maxProcessingTime - The maximum processing time in milliseconds
|
|
278
265
|
*/
|
|
279
266
|
processSome(maxProcessingTime) {
|
|
280
267
|
if (this.initialized === false) {
|
|
@@ -294,23 +281,11 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
294
281
|
while (this.uploadTextureQueue.length > 0 &&
|
|
295
282
|
getTimeStamp() - startTime < maxProcessingTime) {
|
|
296
283
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
297
|
-
this.uploadTexture(this.uploadTextureQueue.
|
|
298
|
-
}
|
|
299
|
-
// Process downloads
|
|
300
|
-
while (this.downloadTextureSourceQueue.length > 0 &&
|
|
301
|
-
getTimeStamp() - startTime < maxProcessingTime) {
|
|
302
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
303
|
-
const texture = this.downloadTextureSourceQueue.shift();
|
|
304
|
-
texture.getTextureData().then(() => {
|
|
305
|
-
if (texture.state === 'fetched') {
|
|
306
|
-
this.enqueueUploadTexture(texture);
|
|
307
|
-
}
|
|
308
|
-
});
|
|
284
|
+
this.uploadTexture(this.uploadTextureQueue.shift());
|
|
309
285
|
}
|
|
310
286
|
}
|
|
311
287
|
hasUpdates() {
|
|
312
|
-
return
|
|
313
|
-
this.uploadTextureQueue.length > 0);
|
|
288
|
+
return this.uploadTextureQueue.length > 0;
|
|
314
289
|
}
|
|
315
290
|
/**
|
|
316
291
|
* Initialize a texture to the cache
|
|
@@ -347,15 +322,11 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
347
322
|
}
|
|
348
323
|
}
|
|
349
324
|
/**
|
|
350
|
-
* Remove texture from the queue
|
|
325
|
+
* Remove texture from the upload queue
|
|
351
326
|
*
|
|
352
327
|
* @param texture - The texture to remove
|
|
353
328
|
*/
|
|
354
329
|
removeTextureFromQueue(texture) {
|
|
355
|
-
const downloadIndex = this.downloadTextureSourceQueue.indexOf(texture);
|
|
356
|
-
if (downloadIndex !== -1) {
|
|
357
|
-
this.downloadTextureSourceQueue.splice(downloadIndex, 1);
|
|
358
|
-
}
|
|
359
330
|
const uploadIndex = this.uploadTextureQueue.indexOf(texture);
|
|
360
331
|
if (uploadIndex !== -1) {
|
|
361
332
|
this.uploadTextureQueue.splice(uploadIndex, 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,yBAAyB,GAE1B,MAAM,8BAA8B,CAAC;AAmItC,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD;;OAEG;IACH,QAAQ,GAAyB,IAAI,GAAG,EAAE,CAAC;IAE3C;;OAEG;IACH,eAAe,GAA6B,IAAI,OAAO,EAAE,CAAC;IAE1D;;OAEG;IACH,cAAc,GAAwB,EAAE,CAAC;IAEjC,
|
|
1
|
+
{"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebGlCoreShader.destroy.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlCoreShader.destroy.ts"],"names":[],"mappings":""}
|
|
@@ -35,52 +35,52 @@ export class DefaultShader extends WebGlCoreShader {
|
|
|
35
35
|
glw.bindTexture(textures[0].ctxTexture);
|
|
36
36
|
}
|
|
37
37
|
static shaderSources = {
|
|
38
|
-
vertex: `
|
|
39
|
-
# ifdef GL_FRAGMENT_PRECISION_HIGH
|
|
40
|
-
precision highp float;
|
|
41
|
-
# else
|
|
42
|
-
precision mediump float;
|
|
43
|
-
# endif
|
|
44
|
-
|
|
45
|
-
attribute vec2 a_position;
|
|
46
|
-
attribute vec2 a_textureCoordinate;
|
|
47
|
-
attribute vec4 a_color;
|
|
48
|
-
|
|
49
|
-
uniform vec2 u_resolution;
|
|
50
|
-
uniform float u_pixelRatio;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
varying vec4 v_color;
|
|
54
|
-
varying vec2 v_textureCoordinate;
|
|
55
|
-
|
|
56
|
-
void main() {
|
|
57
|
-
vec2 normalized = a_position * u_pixelRatio;
|
|
58
|
-
vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y);
|
|
59
|
-
|
|
60
|
-
v_color = a_color;
|
|
61
|
-
v_textureCoordinate = a_textureCoordinate;
|
|
62
|
-
|
|
63
|
-
gl_Position = vec4(normalized.x * screenSpace.x - 1.0, normalized.y * -abs(screenSpace.y) + 1.0, 0.0, 1.0);
|
|
64
|
-
gl_Position.y = -sign(screenSpace.y) * gl_Position.y;
|
|
65
|
-
}
|
|
38
|
+
vertex: `
|
|
39
|
+
# ifdef GL_FRAGMENT_PRECISION_HIGH
|
|
40
|
+
precision highp float;
|
|
41
|
+
# else
|
|
42
|
+
precision mediump float;
|
|
43
|
+
# endif
|
|
44
|
+
|
|
45
|
+
attribute vec2 a_position;
|
|
46
|
+
attribute vec2 a_textureCoordinate;
|
|
47
|
+
attribute vec4 a_color;
|
|
48
|
+
|
|
49
|
+
uniform vec2 u_resolution;
|
|
50
|
+
uniform float u_pixelRatio;
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
varying vec4 v_color;
|
|
54
|
+
varying vec2 v_textureCoordinate;
|
|
55
|
+
|
|
56
|
+
void main() {
|
|
57
|
+
vec2 normalized = a_position * u_pixelRatio;
|
|
58
|
+
vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y);
|
|
59
|
+
|
|
60
|
+
v_color = a_color;
|
|
61
|
+
v_textureCoordinate = a_textureCoordinate;
|
|
62
|
+
|
|
63
|
+
gl_Position = vec4(normalized.x * screenSpace.x - 1.0, normalized.y * -abs(screenSpace.y) + 1.0, 0.0, 1.0);
|
|
64
|
+
gl_Position.y = -sign(screenSpace.y) * gl_Position.y;
|
|
65
|
+
}
|
|
66
66
|
`,
|
|
67
|
-
fragment: `
|
|
68
|
-
# ifdef GL_FRAGMENT_PRECISION_HIGH
|
|
69
|
-
precision highp float;
|
|
70
|
-
# else
|
|
71
|
-
precision mediump float;
|
|
72
|
-
# endif
|
|
73
|
-
|
|
74
|
-
uniform vec2 u_resolution;
|
|
75
|
-
uniform sampler2D u_texture;
|
|
76
|
-
|
|
77
|
-
varying vec4 v_color;
|
|
78
|
-
varying vec2 v_textureCoordinate;
|
|
79
|
-
|
|
80
|
-
void main() {
|
|
81
|
-
vec4 color = texture2D(u_texture, v_textureCoordinate);
|
|
82
|
-
gl_FragColor = vec4(v_color) * texture2D(u_texture, v_textureCoordinate);
|
|
83
|
-
}
|
|
67
|
+
fragment: `
|
|
68
|
+
# ifdef GL_FRAGMENT_PRECISION_HIGH
|
|
69
|
+
precision highp float;
|
|
70
|
+
# else
|
|
71
|
+
precision mediump float;
|
|
72
|
+
# endif
|
|
73
|
+
|
|
74
|
+
uniform vec2 u_resolution;
|
|
75
|
+
uniform sampler2D u_texture;
|
|
76
|
+
|
|
77
|
+
varying vec4 v_color;
|
|
78
|
+
varying vec2 v_textureCoordinate;
|
|
79
|
+
|
|
80
|
+
void main() {
|
|
81
|
+
vec4 color = texture2D(u_texture, v_textureCoordinate);
|
|
82
|
+
gl_FragColor = vec4(v_color) * texture2D(u_texture, v_textureCoordinate);
|
|
83
|
+
}
|
|
84
84
|
`,
|
|
85
85
|
};
|
|
86
86
|
}
|