@lightningjs/renderer 2.13.4 → 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/TextureMemoryManager.d.ts +6 -0
- package/dist/src/core/TextureMemoryManager.js +15 -8
- package/dist/src/core/TextureMemoryManager.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/src/core/textures/Texture.d.ts +8 -0
- package/dist/src/core/textures/Texture.js +13 -0
- package/dist/src/core/textures/Texture.js.map +1 -1
- 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 -395
- 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 -353
- 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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"}
|
|
@@ -130,6 +130,12 @@ export declare class TextureMemoryManager {
|
|
|
130
130
|
checkCleanup(): boolean;
|
|
131
131
|
checkCriticalCleanup(): boolean;
|
|
132
132
|
cleanupQuick(critical: boolean): void;
|
|
133
|
+
/**
|
|
134
|
+
* Destroy a texture and remove it from the memory manager
|
|
135
|
+
*
|
|
136
|
+
* @param texture - The texture to destroy
|
|
137
|
+
*/
|
|
138
|
+
destroyTexture(texture: Texture): void;
|
|
133
139
|
cleanupDeep(critical: boolean): void;
|
|
134
140
|
cleanup(aggressive?: boolean): void;
|
|
135
141
|
/**
|
|
@@ -144,7 +144,6 @@ export class TextureMemoryManager {
|
|
|
144
144
|
cleanupQuick(critical) {
|
|
145
145
|
// Free non-renderable textures until we reach the target threshold
|
|
146
146
|
const memTarget = this.targetThreshold;
|
|
147
|
-
const txManager = this.stage.txManager;
|
|
148
147
|
const timestamp = getTimeStamp();
|
|
149
148
|
while (this.memUsed >= memTarget &&
|
|
150
149
|
this.orphanedTextures.length > 0 &&
|
|
@@ -157,14 +156,25 @@ export class TextureMemoryManager {
|
|
|
157
156
|
// If the texture is renderable, we can't free it up
|
|
158
157
|
continue;
|
|
159
158
|
}
|
|
160
|
-
|
|
161
|
-
txManager.removeTextureFromCache(texture);
|
|
159
|
+
this.destroyTexture(texture);
|
|
162
160
|
}
|
|
163
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Destroy a texture and remove it from the memory manager
|
|
164
|
+
*
|
|
165
|
+
* @param texture - The texture to destroy
|
|
166
|
+
*/
|
|
167
|
+
destroyTexture(texture) {
|
|
168
|
+
const txManager = this.stage.txManager;
|
|
169
|
+
txManager.removeTextureFromQueue(texture);
|
|
170
|
+
txManager.removeTextureFromCache(texture);
|
|
171
|
+
texture.destroy();
|
|
172
|
+
this.removeFromOrphanedTextures(texture);
|
|
173
|
+
this.loadedTextures.delete(texture);
|
|
174
|
+
}
|
|
164
175
|
cleanupDeep(critical) {
|
|
165
176
|
// Free non-renderable textures until we reach the target threshold
|
|
166
177
|
const memTarget = critical ? this.criticalThreshold : this.targetThreshold;
|
|
167
|
-
const txManager = this.stage.txManager;
|
|
168
178
|
// sort by renderability
|
|
169
179
|
const filteredAndSortedTextures = [];
|
|
170
180
|
const textures = [...this.loadedTextures.keys()];
|
|
@@ -195,10 +205,7 @@ export class TextureMemoryManager {
|
|
|
195
205
|
if (texture.renderable === true) {
|
|
196
206
|
break;
|
|
197
207
|
}
|
|
198
|
-
|
|
199
|
-
this.removeFromOrphanedTextures(texture);
|
|
200
|
-
txManager.removeTextureFromCache(texture);
|
|
201
|
-
txManager.removeTextureFromQueue(texture);
|
|
208
|
+
this.destroyTexture(texture);
|
|
202
209
|
}
|
|
203
210
|
}
|
|
204
211
|
cleanup(aggressive = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextureMemoryManager.js","sourceRoot":"","sources":["../../../src/core/TextureMemoryManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TextureMemoryManager.js","sourceRoot":"","sources":["../../../src/core/TextureMemoryManager.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":""}
|