@lightningjs/renderer 3.0.0-beta15 → 3.0.0-beta17
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/dist/src/common/CommonTypes.d.ts +11 -0
- package/dist/src/core/CoreNode.js +8 -0
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +14 -0
- package/dist/src/core/CoreTextNode.js +90 -5
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/Stage.js +2 -1
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/animations/Animation.d.ts +16 -0
- package/dist/src/core/animations/Animation.js +111 -0
- package/dist/src/core/animations/Animation.js.map +1 -0
- package/dist/src/core/animations/CoreAnimation.d.ts +0 -1
- package/dist/src/core/animations/CoreAnimation.js +0 -1
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreTransition.d.ts +24 -0
- package/dist/src/core/animations/CoreTransition.js +63 -0
- package/dist/src/core/animations/CoreTransition.js.map +1 -0
- package/dist/src/core/animations/Playback.d.ts +62 -0
- package/dist/src/core/animations/Playback.js +155 -0
- package/dist/src/core/animations/Playback.js.map +1 -0
- package/dist/src/core/animations/Transition.d.ts +25 -0
- package/dist/src/core/animations/Transition.js +63 -0
- package/dist/src/core/animations/Transition.js.map +1 -0
- package/dist/src/core/animations/utils.d.ts +2 -0
- package/dist/src/core/animations/utils.js +137 -0
- package/dist/src/core/animations/utils.js.map +1 -0
- package/dist/src/core/lib/collectionUtils.d.ts +5 -0
- package/dist/src/core/lib/collectionUtils.js +100 -0
- package/dist/src/core/lib/collectionUtils.js.map +1 -0
- package/dist/src/core/platforms/Platform.d.ts +5 -0
- package/dist/src/core/platforms/Platform.js.map +1 -1
- package/dist/src/core/platforms/web/WebPlatform.d.ts +1 -0
- package/dist/src/core/platforms/web/WebPlatform.js +3 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.js +4 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +7 -7
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/SdfFontHandler.js +3 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
- package/dist/src/core/text-rendering/SdfTextRenderer.js +5 -5
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +12 -13
- package/dist/src/core/text-rendering/TextLayoutEngine.js +242 -186
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -1
- package/dist/src/core/text-rendering/TextRenderer.d.ts +22 -7
- package/dist/src/core/utils.d.ts +1 -1
- package/dist/src/main-api/Inspector.js +9 -5
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.js +3 -2
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/common/CommonTypes.ts +16 -0
- package/src/core/CoreNode.test.ts +50 -1
- package/src/core/CoreNode.ts +11 -0
- package/src/core/CoreTextNode.ts +112 -5
- package/src/core/Stage.ts +2 -1
- package/src/core/animations/CoreAnimation.ts +0 -2
- package/src/core/platforms/Platform.ts +6 -0
- package/src/core/platforms/web/WebPlatform.ts +11 -0
- package/src/core/text-rendering/CanvasFontHandler.ts +4 -7
- package/src/core/text-rendering/CanvasTextRenderer.ts +6 -8
- package/src/core/text-rendering/SdfFontHandler.ts +3 -0
- package/src/core/text-rendering/SdfTextRenderer.ts +4 -5
- package/src/core/text-rendering/TextLayoutEngine.ts +396 -226
- package/src/core/text-rendering/TextRenderer.ts +22 -7
- package/src/core/text-rendering/tests/{SdfTests.test.ts → TextLayoutEngine.test.ts} +103 -64
- package/src/main-api/Inspector.ts +9 -5
- package/src/main-api/Renderer.ts +3 -2
- package/dist/src/core/TextureError.d.ts +0 -11
- package/dist/src/core/TextureError.js +0 -37
- package/dist/src/core/TextureError.js.map +0 -1
- package/dist/src/core/platform.d.ts +0 -10
- package/dist/src/core/platform.js +0 -81
- package/dist/src/core/platform.js.map +0 -1
- package/dist/src/core/renderers/CoreShader.d.ts +0 -9
- package/dist/src/core/renderers/CoreShader.js +0 -28
- package/dist/src/core/renderers/CoreShader.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -17
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -125
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -14
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +0 -138
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +0 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -19
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -58
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +0 -1
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -58
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -65
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -269
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -616
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -233
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
- package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +0 -12
- package/dist/src/core/text-rendering/TextRenderingUtils.js +0 -14
- package/dist/src/core/text-rendering/TextRenderingUtils.js.map +0 -1
- package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +0 -72
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js +0 -217
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +0 -1
- package/dist/src/core/text-rendering/TrFontManager.d.ts +0 -26
- package/dist/src/core/text-rendering/TrFontManager.js +0 -131
- package/dist/src/core/text-rendering/TrFontManager.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +0 -39
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +0 -125
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +0 -103
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +0 -21
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +0 -62
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +0 -88
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -118
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -63
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +0 -14
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -66
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/utils.d.ts +0 -1
- package/dist/src/core/text-rendering/font-face-types/utils.js +0 -38
- package/dist/src/core/text-rendering/font-face-types/utils.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +0 -59
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -397
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -120
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -551
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +0 -92
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -607
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +0 -12
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +0 -61
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +0 -33
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +0 -52
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +0 -13
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +0 -32
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +0 -23
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +0 -84
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +0 -4
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +0 -34
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +0 -20
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +0 -308
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +0 -10
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +0 -40
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +0 -26
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +0 -70
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +0 -16
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +0 -39
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +0 -373
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -178
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +0 -1
- package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
- package/dist/src/main-api/DynamicShaderController.js +0 -58
- package/dist/src/main-api/DynamicShaderController.js.map +0 -1
- package/dist/src/main-api/ShaderController.d.ts +0 -31
- package/dist/src/main-api/ShaderController.js +0 -37
- package/dist/src/main-api/ShaderController.js.map +0 -1
- package/src/core/text-rendering/tests/Canvas.test.ts +0 -378
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
import type { Dimensions } from '../../../common/CommonTypes.js';
|
|
2
|
-
import type { EventEmitter } from '../../../common/EventEmitter.js';
|
|
3
|
-
import type { CoreTextNode } from '../../CoreTextNode.js';
|
|
4
|
-
import type { Stage } from '../../Stage.js';
|
|
5
|
-
import type { Matrix3d } from '../../lib/Matrix3d.js';
|
|
6
|
-
import type { RectWithValid } from '../../lib/utils.js';
|
|
7
|
-
import type { TrFontFace, TrFontFaceDescriptors } from '../font-face-types/TrFontFace.js';
|
|
8
|
-
import type { TextBaseline, TextVerticalAlign } from './LightningTextTextureRenderer.js';
|
|
9
|
-
/**
|
|
10
|
-
* Augmentable map of text renderer type IDs to text renderer types.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* declare module './TextRenderer' {
|
|
15
|
-
* interface TextRendererMap {
|
|
16
|
-
* canvas: CanvasTextRenderer;
|
|
17
|
-
* }
|
|
18
|
-
* }
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export interface TextRendererMap {
|
|
22
|
-
}
|
|
23
|
-
export interface TextRendererState {
|
|
24
|
-
props: TrProps;
|
|
25
|
-
/**
|
|
26
|
-
* Whether or not the text renderer state is scheduled to be updated
|
|
27
|
-
* via queueMicrotask.
|
|
28
|
-
*/
|
|
29
|
-
updateScheduled: boolean;
|
|
30
|
-
status: 'initialState' | 'loading' | 'loaded' | 'failed' | 'destroyed';
|
|
31
|
-
/**
|
|
32
|
-
* Event emitter for the text renderer
|
|
33
|
-
*/
|
|
34
|
-
emitter: EventEmitter;
|
|
35
|
-
/**
|
|
36
|
-
* Force a full layout pass for the calculation of the
|
|
37
|
-
* total dimensions of the text
|
|
38
|
-
*/
|
|
39
|
-
forceFullLayoutCalc: boolean;
|
|
40
|
-
textW: number | undefined;
|
|
41
|
-
textH: number | undefined;
|
|
42
|
-
isRenderable: boolean;
|
|
43
|
-
debugData: {
|
|
44
|
-
updateCount: number;
|
|
45
|
-
layoutCount: number;
|
|
46
|
-
drawCount: number;
|
|
47
|
-
lastLayoutNumCharacters: number;
|
|
48
|
-
layoutSum: number;
|
|
49
|
-
drawSum: number;
|
|
50
|
-
bufferSize: number;
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
export interface TextRendererDebugProps {
|
|
54
|
-
showRenderWindow: boolean;
|
|
55
|
-
showVisibleRect: boolean;
|
|
56
|
-
showElementRect: boolean;
|
|
57
|
-
disableScissor: boolean;
|
|
58
|
-
printLayoutTime: boolean;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Text renderer properties that are used in resolving appropriate font faces
|
|
62
|
-
*
|
|
63
|
-
* @remarks
|
|
64
|
-
* Extended by {@link TrProps}
|
|
65
|
-
*/
|
|
66
|
-
export interface TrFontProps {
|
|
67
|
-
/**
|
|
68
|
-
* Font Family
|
|
69
|
-
*
|
|
70
|
-
* @internalRemarks
|
|
71
|
-
* `fontFamily` is defined currently as single string, but in the future we may want to
|
|
72
|
-
* support multiple font family fallbacks, as this is supported by CSS / Canvas2d. We can
|
|
73
|
-
* do this in a backwards compatible way by unioning an array of strings to the
|
|
74
|
-
* `fontFamily` property.
|
|
75
|
-
*/
|
|
76
|
-
fontFamily: string;
|
|
77
|
-
/**
|
|
78
|
-
* Font Weight
|
|
79
|
-
*
|
|
80
|
-
* @remarks
|
|
81
|
-
* The font weight to use when looking up the font face. This can be a numeric
|
|
82
|
-
* value between 1 and 1000, or one of the following strings:
|
|
83
|
-
* - `'normal'` - same as 400
|
|
84
|
-
* - `'bold'` - same as 700
|
|
85
|
-
* - `'bolder'` - (Not yet properly supported)
|
|
86
|
-
*/
|
|
87
|
-
fontWeight: TrFontFaceDescriptors['weight'] | 'bolder' | 'lighter';
|
|
88
|
-
/**
|
|
89
|
-
* Font Style
|
|
90
|
-
*
|
|
91
|
-
* @remarks
|
|
92
|
-
* The font style to use when looking up the font face. This can be one of the
|
|
93
|
-
* following strings:
|
|
94
|
-
* - `'normal'`
|
|
95
|
-
* - `'italic'`
|
|
96
|
-
* - `'oblique'`
|
|
97
|
-
*/
|
|
98
|
-
fontStyle: TrFontFaceDescriptors['style'];
|
|
99
|
-
/**
|
|
100
|
-
* Font Stretch
|
|
101
|
-
*
|
|
102
|
-
* @remarks
|
|
103
|
-
* The font stretch to use when looking up the font face. This can be one of the
|
|
104
|
-
* following strings:
|
|
105
|
-
* - `'normal'`
|
|
106
|
-
* - `'ultra-condensed'`
|
|
107
|
-
* - `'extra-condensed'`
|
|
108
|
-
* - `'condensed'`
|
|
109
|
-
* - `'semi-condensed'`
|
|
110
|
-
* - `'semi-expanded'`
|
|
111
|
-
* - `'expanded'`
|
|
112
|
-
* - `'extra-expanded'`
|
|
113
|
-
* - `'ultra-expanded'`
|
|
114
|
-
*
|
|
115
|
-
* @default 'normal'
|
|
116
|
-
*/
|
|
117
|
-
fontStretch: TrFontFaceDescriptors['stretch'];
|
|
118
|
-
/**
|
|
119
|
-
* Font Size
|
|
120
|
-
*
|
|
121
|
-
* @remarks
|
|
122
|
-
* The font size to use when looking up the font face.
|
|
123
|
-
*
|
|
124
|
-
* The font size is specified in pixels and is the height of the font's
|
|
125
|
-
* em-square. The em-square is essentially the height of the capital letters
|
|
126
|
-
* for the font. The actual height of the text can be larger than the
|
|
127
|
-
* specified font size, as the font may have ascenders and descenders that
|
|
128
|
-
* extend beyond the em-square.
|
|
129
|
-
*
|
|
130
|
-
* @default 16
|
|
131
|
-
*/
|
|
132
|
-
fontSize: number;
|
|
133
|
-
}
|
|
134
|
-
export interface TrProps extends TrFontProps {
|
|
135
|
-
/**
|
|
136
|
-
* Text to display
|
|
137
|
-
*
|
|
138
|
-
* @default ''
|
|
139
|
-
*/
|
|
140
|
-
text: string;
|
|
141
|
-
/**
|
|
142
|
-
* Text alignment
|
|
143
|
-
*
|
|
144
|
-
* @remarks
|
|
145
|
-
* Alignment of the text relative to it's contained bounds. For best results,
|
|
146
|
-
* use {@link contain} mode `'width'` or `'both'` and a set an explicit
|
|
147
|
-
* {@link width} for the text to be aligned within.
|
|
148
|
-
*
|
|
149
|
-
* @default 'left'
|
|
150
|
-
*/
|
|
151
|
-
textAlign: 'left' | 'center' | 'right';
|
|
152
|
-
/**
|
|
153
|
-
* Color of text
|
|
154
|
-
*
|
|
155
|
-
* @remarks
|
|
156
|
-
* The color value is a number in the format 0xRRGGBBAA, where RR is the red
|
|
157
|
-
* component, GG is the green component, BB is the blue component, and AA is
|
|
158
|
-
* the alpha component.
|
|
159
|
-
*
|
|
160
|
-
* @default 0xffffffff (opaque white)
|
|
161
|
-
*/
|
|
162
|
-
color: number;
|
|
163
|
-
x: number;
|
|
164
|
-
y: number;
|
|
165
|
-
/**
|
|
166
|
-
* Contain mode for text
|
|
167
|
-
*
|
|
168
|
-
* @remarks
|
|
169
|
-
* The contain mode determines how the text is contained within the bounds
|
|
170
|
-
* of the Text Node. The default value is `'none'`, which means that the
|
|
171
|
-
* Text Renderer will not constrain the text in any way. `'width'` mode will
|
|
172
|
-
* constrain the text to the set width wrapping lines as necessary, and
|
|
173
|
-
* `'both'` mode will constrain the text to both the set width and height
|
|
174
|
-
* wrapping lines and truncating text as necessary.
|
|
175
|
-
*
|
|
176
|
-
* ## Text Auto-size Behavior
|
|
177
|
-
* Depending on the set contain mode, after the text 'loaded' event is emitted,
|
|
178
|
-
* the text node may have either its {@link width} and {@link height} updated
|
|
179
|
-
* to match the rendered size of the text.
|
|
180
|
-
*
|
|
181
|
-
* When contain mode is 'none', both the {@link width} and {@link height}
|
|
182
|
-
* properties are updated.
|
|
183
|
-
*
|
|
184
|
-
* When contain mode is 'width', only the {@link height} property is updated.
|
|
185
|
-
*
|
|
186
|
-
* When contain mode is 'both', neither property is updated.
|
|
187
|
-
*
|
|
188
|
-
* @default 'none'
|
|
189
|
-
*/
|
|
190
|
-
contain: 'none' | 'width' | 'both';
|
|
191
|
-
width: number;
|
|
192
|
-
height: number;
|
|
193
|
-
/**
|
|
194
|
-
* Whether or not the text is scrollable
|
|
195
|
-
*
|
|
196
|
-
* @remarks
|
|
197
|
-
* If `scrollable` is `true`, the text can be scrolled vertically within the
|
|
198
|
-
* bounds of the Text Node. You can set the scroll position using the
|
|
199
|
-
* {@link scrollY} property.
|
|
200
|
-
*
|
|
201
|
-
* @default false
|
|
202
|
-
*/
|
|
203
|
-
scrollable: boolean;
|
|
204
|
-
/**
|
|
205
|
-
* Vertical scroll position for text
|
|
206
|
-
*
|
|
207
|
-
* @remarks
|
|
208
|
-
* The vertical scroll position of the text. This property is only used if
|
|
209
|
-
* {@link scrollable} is `true`.
|
|
210
|
-
*
|
|
211
|
-
* @default 0
|
|
212
|
-
*/
|
|
213
|
-
scrollY: number;
|
|
214
|
-
/**
|
|
215
|
-
* Vertical offset for text
|
|
216
|
-
*
|
|
217
|
-
* @remarks
|
|
218
|
-
* The vertical offset of the text. This property is only used if
|
|
219
|
-
* {@link scrollable} is `true`.
|
|
220
|
-
*
|
|
221
|
-
* @default 0
|
|
222
|
-
*/
|
|
223
|
-
offsetY: number;
|
|
224
|
-
/**
|
|
225
|
-
* Letter spacing for text (in pixels)
|
|
226
|
-
*
|
|
227
|
-
* @remarks
|
|
228
|
-
* This property sets additional (or reduced, if value is negative) spacing
|
|
229
|
-
* between characters in the text.
|
|
230
|
-
*
|
|
231
|
-
* @default 0
|
|
232
|
-
*/
|
|
233
|
-
letterSpacing: number;
|
|
234
|
-
/**
|
|
235
|
-
* Line height for text (in pixels)
|
|
236
|
-
*
|
|
237
|
-
* @remarks
|
|
238
|
-
* This property sets the height of each line. If set to `undefined`, the
|
|
239
|
-
* line height will be calculated based on the font and font size to be the
|
|
240
|
-
* minimal height required to completely contain a line of text.
|
|
241
|
-
*
|
|
242
|
-
* See: https://github.com/lightning-js/renderer/issues/170
|
|
243
|
-
*
|
|
244
|
-
* @default `undefined`
|
|
245
|
-
*/
|
|
246
|
-
lineHeight: number | undefined;
|
|
247
|
-
/**
|
|
248
|
-
* Max lines for text
|
|
249
|
-
*
|
|
250
|
-
* @remarks
|
|
251
|
-
* This property sets max number of lines of a text paragraph.
|
|
252
|
-
* Not yet implemented in the SDF renderer.
|
|
253
|
-
*
|
|
254
|
-
* @default 0
|
|
255
|
-
*/
|
|
256
|
-
maxLines: number;
|
|
257
|
-
/**
|
|
258
|
-
* Baseline for text
|
|
259
|
-
*
|
|
260
|
-
* @remarks
|
|
261
|
-
* This property sets the text baseline used when drawing text.
|
|
262
|
-
* Not yet implemented in the SDF renderer.
|
|
263
|
-
*
|
|
264
|
-
* @default alphabetic
|
|
265
|
-
*/
|
|
266
|
-
textBaseline: TextBaseline;
|
|
267
|
-
/**
|
|
268
|
-
* Vertical Align for text when lineHeight > fontSize
|
|
269
|
-
*
|
|
270
|
-
* @remarks
|
|
271
|
-
* This property sets the vertical align of the text.
|
|
272
|
-
* Not yet implemented in the SDF renderer.
|
|
273
|
-
*
|
|
274
|
-
* @default middle
|
|
275
|
-
*/
|
|
276
|
-
verticalAlign: TextVerticalAlign;
|
|
277
|
-
/**
|
|
278
|
-
* Overflow Suffix for text
|
|
279
|
-
*
|
|
280
|
-
* @remarks
|
|
281
|
-
* The suffix to be added when text is cropped due to overflow.
|
|
282
|
-
* Not yet implemented in the SDF renderer.
|
|
283
|
-
*
|
|
284
|
-
* @default "..."
|
|
285
|
-
*/
|
|
286
|
-
overflowSuffix: string;
|
|
287
|
-
zIndex: number;
|
|
288
|
-
debug: Partial<TextRendererDebugProps>;
|
|
289
|
-
}
|
|
290
|
-
export type TrPropSetters<StateT = TextRendererState> = {
|
|
291
|
-
[key in keyof TrProps]: (state: StateT, value: TrProps[key]) => void;
|
|
292
|
-
};
|
|
293
|
-
/**
|
|
294
|
-
* Event handler for when text is loaded
|
|
295
|
-
*
|
|
296
|
-
* @remarks
|
|
297
|
-
* Emitted by state.emitter
|
|
298
|
-
*/
|
|
299
|
-
export type TrLoadedEventHandler = (target: any) => void;
|
|
300
|
-
/**
|
|
301
|
-
* Event handler for when text failed to load
|
|
302
|
-
*
|
|
303
|
-
* @remarks
|
|
304
|
-
* Emitted by state.emitter
|
|
305
|
-
*/
|
|
306
|
-
export type TrFailedEventHandler = (target: any, error: Error) => void;
|
|
307
|
-
export declare abstract class TextRenderer<StateT extends TextRendererState = TextRendererState> {
|
|
308
|
-
protected stage: Stage;
|
|
309
|
-
readonly set: Readonly<TrPropSetters<StateT>>;
|
|
310
|
-
abstract type: 'canvas' | 'sdf';
|
|
311
|
-
constructor(stage: Stage);
|
|
312
|
-
setStatus(state: StateT, status: StateT['status'], error?: Error): void;
|
|
313
|
-
/**
|
|
314
|
-
* Allows the CoreTextNode to communicate changes to the isRenderable state of
|
|
315
|
-
* the itself.
|
|
316
|
-
*
|
|
317
|
-
* @param state
|
|
318
|
-
* @param renderable
|
|
319
|
-
*/
|
|
320
|
-
setIsRenderable(state: StateT, renderable: boolean): void;
|
|
321
|
-
/**
|
|
322
|
-
* Called by constructor to get a map of property setter functions for this renderer.
|
|
323
|
-
*/
|
|
324
|
-
abstract getPropertySetters(): Partial<TrPropSetters<StateT>>;
|
|
325
|
-
/**
|
|
326
|
-
* Given text renderer properties (particularly the specific properties related to font selection)
|
|
327
|
-
* returns whether or not the renderer can render it.
|
|
328
|
-
*
|
|
329
|
-
* @param props
|
|
330
|
-
*/
|
|
331
|
-
abstract canRenderFont(props: TrFontProps): boolean;
|
|
332
|
-
/**
|
|
333
|
-
* Called by the TrFontManager to find out if a newly added font face is supported
|
|
334
|
-
* by this renderer.
|
|
335
|
-
*
|
|
336
|
-
* @param fontFace
|
|
337
|
-
*/
|
|
338
|
-
abstract isFontFaceSupported(fontFace: TrFontFace): boolean;
|
|
339
|
-
/**
|
|
340
|
-
* Called by the TrFontManager to add a font face to the renderer's font registry.
|
|
341
|
-
*
|
|
342
|
-
* @remarks
|
|
343
|
-
* This method MUST ONLY be called for a fontFace that previously passed the
|
|
344
|
-
* {@link isFontFaceSupported} check.
|
|
345
|
-
*
|
|
346
|
-
* @param fontFace
|
|
347
|
-
*/
|
|
348
|
-
abstract addFontFace(fontFace: TrFontFace): void;
|
|
349
|
-
abstract createState(props: TrProps, node: CoreTextNode): StateT;
|
|
350
|
-
/**
|
|
351
|
-
* Destroy/Clean up the state object
|
|
352
|
-
*
|
|
353
|
-
* @remarks
|
|
354
|
-
* Opposite of createState(). Frees any event listeners / resources held by
|
|
355
|
-
* the state that may not reliably get garbage collected.
|
|
356
|
-
*
|
|
357
|
-
* @param state
|
|
358
|
-
*/
|
|
359
|
-
destroyState(state: StateT): void;
|
|
360
|
-
/**
|
|
361
|
-
* Schedule a state update via queueMicrotask
|
|
362
|
-
*
|
|
363
|
-
* @remarks
|
|
364
|
-
* This method is used to schedule a state update via queueMicrotask. This
|
|
365
|
-
* method should be called whenever a state update is needed, and it will
|
|
366
|
-
* ensure that the state is only updated once per microtask.
|
|
367
|
-
* @param state
|
|
368
|
-
* @returns
|
|
369
|
-
*/
|
|
370
|
-
scheduleUpdateState(state: StateT): void;
|
|
371
|
-
abstract updateState(state: StateT): void;
|
|
372
|
-
renderQuads?(state: StateT, transform: Matrix3d, clippingRect: RectWithValid, alpha: number, parentHasRenderTexture: boolean, framebufferDimensions: Dimensions | undefined): void;
|
|
373
|
-
}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
-
* following copyright and licenses apply:
|
|
4
|
-
*
|
|
5
|
-
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
-
*
|
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
-
* you may not use this file except in compliance with the License.
|
|
9
|
-
* You may obtain a copy of the License at
|
|
10
|
-
*
|
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
*
|
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
* See the License for the specific language governing permissions and
|
|
17
|
-
* limitations under the License.
|
|
18
|
-
*/
|
|
19
|
-
const trPropSetterDefaults = {
|
|
20
|
-
x: (state, value) => {
|
|
21
|
-
state.props.x = value;
|
|
22
|
-
},
|
|
23
|
-
y: (state, value) => {
|
|
24
|
-
state.props.y = value;
|
|
25
|
-
},
|
|
26
|
-
width: (state, value) => {
|
|
27
|
-
state.props.width = value;
|
|
28
|
-
},
|
|
29
|
-
height: (state, value) => {
|
|
30
|
-
state.props.height = value;
|
|
31
|
-
},
|
|
32
|
-
color: (state, value) => {
|
|
33
|
-
state.props.color = value;
|
|
34
|
-
},
|
|
35
|
-
zIndex: (state, value) => {
|
|
36
|
-
state.props.zIndex = value;
|
|
37
|
-
},
|
|
38
|
-
fontFamily: (state, value) => {
|
|
39
|
-
state.props.fontFamily = value;
|
|
40
|
-
},
|
|
41
|
-
fontWeight: (state, value) => {
|
|
42
|
-
state.props.fontWeight = value;
|
|
43
|
-
},
|
|
44
|
-
fontStyle: (state, value) => {
|
|
45
|
-
state.props.fontStyle = value;
|
|
46
|
-
},
|
|
47
|
-
fontStretch: (state, value) => {
|
|
48
|
-
state.props.fontStretch = value;
|
|
49
|
-
},
|
|
50
|
-
fontSize: (state, value) => {
|
|
51
|
-
state.props.fontSize = value;
|
|
52
|
-
},
|
|
53
|
-
text: (state, value) => {
|
|
54
|
-
state.props.text = value;
|
|
55
|
-
},
|
|
56
|
-
textAlign: (state, value) => {
|
|
57
|
-
state.props.textAlign = value;
|
|
58
|
-
},
|
|
59
|
-
contain: (state, value) => {
|
|
60
|
-
state.props.contain = value;
|
|
61
|
-
},
|
|
62
|
-
offsetY: (state, value) => {
|
|
63
|
-
state.props.offsetY = value;
|
|
64
|
-
},
|
|
65
|
-
scrollable: (state, value) => {
|
|
66
|
-
state.props.scrollable = value;
|
|
67
|
-
},
|
|
68
|
-
scrollY: (state, value) => {
|
|
69
|
-
state.props.scrollY = value;
|
|
70
|
-
},
|
|
71
|
-
letterSpacing: (state, value) => {
|
|
72
|
-
state.props.letterSpacing = value;
|
|
73
|
-
},
|
|
74
|
-
lineHeight: (state, value) => {
|
|
75
|
-
state.props.lineHeight = value;
|
|
76
|
-
},
|
|
77
|
-
maxLines: (state, value) => {
|
|
78
|
-
state.props.maxLines = value;
|
|
79
|
-
},
|
|
80
|
-
textBaseline: (state, value) => {
|
|
81
|
-
state.props.textBaseline = value;
|
|
82
|
-
},
|
|
83
|
-
verticalAlign: (state, value) => {
|
|
84
|
-
state.props.verticalAlign = value;
|
|
85
|
-
},
|
|
86
|
-
overflowSuffix: (state, value) => {
|
|
87
|
-
state.props.overflowSuffix = value;
|
|
88
|
-
},
|
|
89
|
-
debug: (state, value) => {
|
|
90
|
-
state.props.debug = value;
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
export class TextRenderer {
|
|
94
|
-
stage;
|
|
95
|
-
set;
|
|
96
|
-
constructor(stage) {
|
|
97
|
-
this.stage = stage;
|
|
98
|
-
const propSetters = {
|
|
99
|
-
...trPropSetterDefaults,
|
|
100
|
-
...this.getPropertySetters(),
|
|
101
|
-
};
|
|
102
|
-
// For each prop setter add a wrapper method that checks if the prop is
|
|
103
|
-
// different before calling the setter
|
|
104
|
-
const propSet = {};
|
|
105
|
-
Object.keys(propSetters).forEach((key) => {
|
|
106
|
-
Object.defineProperty(propSet, key, {
|
|
107
|
-
value: (state, value) => {
|
|
108
|
-
// Check if the current prop value is different before calling the setter
|
|
109
|
-
if (state.props[key] !== value) {
|
|
110
|
-
propSetters[key](state, value);
|
|
111
|
-
// Assume any prop change will require a render
|
|
112
|
-
// This ensures that renders are triggered appropriately even with RAF paused
|
|
113
|
-
this.stage.requestRender();
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
writable: false, // Prevents property from being changed
|
|
117
|
-
configurable: false, // Prevents property from being deleted
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
this.set = propSet;
|
|
121
|
-
}
|
|
122
|
-
setStatus(state, status, error) {
|
|
123
|
-
// Don't emit the same status twice
|
|
124
|
-
if (state.status === status) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
state.status = status;
|
|
128
|
-
state.emitter.emit(status, error);
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Allows the CoreTextNode to communicate changes to the isRenderable state of
|
|
132
|
-
* the itself.
|
|
133
|
-
*
|
|
134
|
-
* @param state
|
|
135
|
-
* @param renderable
|
|
136
|
-
*/
|
|
137
|
-
setIsRenderable(state, renderable) {
|
|
138
|
-
state.isRenderable = renderable;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Destroy/Clean up the state object
|
|
142
|
-
*
|
|
143
|
-
* @remarks
|
|
144
|
-
* Opposite of createState(). Frees any event listeners / resources held by
|
|
145
|
-
* the state that may not reliably get garbage collected.
|
|
146
|
-
*
|
|
147
|
-
* @param state
|
|
148
|
-
*/
|
|
149
|
-
destroyState(state) {
|
|
150
|
-
this.setStatus(state, 'destroyed');
|
|
151
|
-
state.emitter.removeAllListeners();
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Schedule a state update via queueMicrotask
|
|
155
|
-
*
|
|
156
|
-
* @remarks
|
|
157
|
-
* This method is used to schedule a state update via queueMicrotask. This
|
|
158
|
-
* method should be called whenever a state update is needed, and it will
|
|
159
|
-
* ensure that the state is only updated once per microtask.
|
|
160
|
-
* @param state
|
|
161
|
-
* @returns
|
|
162
|
-
*/
|
|
163
|
-
scheduleUpdateState(state) {
|
|
164
|
-
if (state.updateScheduled) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
state.updateScheduled = true;
|
|
168
|
-
queueMicrotask(() => {
|
|
169
|
-
// If the state has been destroyed, don't update it
|
|
170
|
-
if (state.status === 'destroyed') {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
state.updateScheduled = false;
|
|
174
|
-
this.updateState(state);
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
//# sourceMappingURL=TextRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/TextRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { CoreShaderManager, EffectMap, ShaderMap } from '../core/CoreShaderManager.js';
|
|
2
|
-
import type { ExtractProps } from '../core/CoreTextureManager.js';
|
|
3
|
-
import type { EffectDesc } from '../core/renderers/webgl/shaders/effects/ShaderEffect.js';
|
|
4
|
-
import type { BaseShaderController } from './ShaderController.js';
|
|
5
|
-
type OptionalName<T> = T extends string ? T : never;
|
|
6
|
-
type MapEffectProps<Effects extends [...{
|
|
7
|
-
name?: string;
|
|
8
|
-
type: keyof EffectMap;
|
|
9
|
-
}[]]> = {
|
|
10
|
-
[K in Effects[number] as OptionalName<K['name']>]: ExtractProps<EffectMap[K['type']]>;
|
|
11
|
-
};
|
|
12
|
-
export type DynamicEffects<T extends [...{
|
|
13
|
-
name?: string;
|
|
14
|
-
type: keyof EffectMap;
|
|
15
|
-
}[]]> = {
|
|
16
|
-
[K in keyof T]: EffectDesc<T[K]>;
|
|
17
|
-
};
|
|
18
|
-
export declare class DynamicShaderController<Effects extends [...{
|
|
19
|
-
name?: string;
|
|
20
|
-
type: keyof EffectMap;
|
|
21
|
-
}[]]> implements BaseShaderController {
|
|
22
|
-
readonly shader: InstanceType<ShaderMap['DynamicShader']>;
|
|
23
|
-
private resolvedProps;
|
|
24
|
-
props: MapEffectProps<Effects>;
|
|
25
|
-
type: 'DynamicShader';
|
|
26
|
-
constructor(shader: InstanceType<ShaderMap['DynamicShader']>, props: ExtractProps<ShaderMap['DynamicShader']>, shManager: CoreShaderManager);
|
|
27
|
-
getResolvedProps(): import("../core/renderers/webgl/shaders/DynamicShader.js").DynamicShaderProps;
|
|
28
|
-
}
|
|
29
|
-
export {};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
export class DynamicShaderController {
|
|
2
|
-
shader;
|
|
3
|
-
resolvedProps;
|
|
4
|
-
props;
|
|
5
|
-
type;
|
|
6
|
-
constructor(shader, props, shManager) {
|
|
7
|
-
this.shader = shader;
|
|
8
|
-
this.type = 'DynamicShader';
|
|
9
|
-
this.resolvedProps = props;
|
|
10
|
-
const effectConstructors = shManager.getRegisteredEffects();
|
|
11
|
-
const definedProps = {};
|
|
12
|
-
const effects = props.effects;
|
|
13
|
-
const effectsLength = effects.length;
|
|
14
|
-
for (let i = 0; i < effectsLength; i++) {
|
|
15
|
-
const { name: effectName, props: effectProps, type: effectType, } = effects[i];
|
|
16
|
-
if (effectName === undefined) {
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
|
-
const definedEffectProps = {};
|
|
20
|
-
const propEntries = Object.keys(effectProps);
|
|
21
|
-
const propEntriesLength = propEntries.length;
|
|
22
|
-
for (let j = 0; j < propEntriesLength; j++) {
|
|
23
|
-
const propName = propEntries[j];
|
|
24
|
-
Object.defineProperty(definedEffectProps, propName, {
|
|
25
|
-
get: () => {
|
|
26
|
-
return this.resolvedProps.effects[i].props[propName].value;
|
|
27
|
-
},
|
|
28
|
-
set: (value) => {
|
|
29
|
-
const target = this.resolvedProps.effects[i].props[propName];
|
|
30
|
-
target.value = value;
|
|
31
|
-
if (target.hasValidator) {
|
|
32
|
-
value = target.validatedValue = effectConstructors[effectType]
|
|
33
|
-
.uniforms[propName]?.validator(value, effectProps);
|
|
34
|
-
}
|
|
35
|
-
if (target.hasProgramValueUpdater) {
|
|
36
|
-
effectConstructors[effectType].uniforms[propName]
|
|
37
|
-
?.updateProgramValue(target);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
target.programValue = value;
|
|
41
|
-
}
|
|
42
|
-
shManager.renderer.stage.requestRender();
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
Object.defineProperty(definedProps, effectName, {
|
|
47
|
-
get: () => {
|
|
48
|
-
return definedEffectProps;
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
this.props = definedProps;
|
|
53
|
-
}
|
|
54
|
-
getResolvedProps() {
|
|
55
|
-
return this.resolvedProps;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=DynamicShaderController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicShaderController.js","sourceRoot":"","sources":["../../../src/main-api/DynamicShaderController.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,uBAAuB;IASvB;IALH,aAAa,CAA2C;IAChE,KAAK,CAA0B;IAC/B,IAAI,CAAkB;IAEtB,YACW,MAAgD,EACzD,KAA+C,EAC/C,SAA4B;QAFnB,WAAM,GAAN,MAAM,CAA0C;QAIzD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,MAAM,kBAAkB,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAQ,CAAC;QAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,EACJ,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,UAAU,GACjB,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAChB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,MAAM,kBAAkB,GAAG,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;gBACjC,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,QAAQ,EAAE;oBAClD,GAAG,EAAE,GAAG,EAAE;wBACR,OACE,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,QAAQ,CAI/C,CAAC,KAAK,CAAC;oBACV,CAAC;oBACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;wBACb,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,CAAC,CAAE,CAAC,KAAK,CAClD,QAAQ,CACc,CAAC;wBACzB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;wBACrB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;4BACxB,KAAK,GAAG,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAE;iCAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;wBACxD,CAAC;wBACD,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;4BAClC,kBAAkB,CAAC,UAAU,CAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gCAChD,EAAE,kBAAmB,CAAC,MAA8B,CAAC,CAAC;wBAC1D,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;wBAC9B,CAAC;wBACD,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC3C,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE;gBAC9C,GAAG,EAAE,GAAG,EAAE;oBACR,OAAO,kBAAkB,CAAC;gBAC5B,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,YAAuC,CAAC;IACvD,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { ShaderMap } from '../core/CoreShaderManager.js';
|
|
2
|
-
import type { ExtractProps } from '../core/CoreTextureManager.js';
|
|
3
|
-
import type { Stage } from '../core/Stage.js';
|
|
4
|
-
import type { CoreShader } from '../core/renderers/CoreShader.js';
|
|
5
|
-
/**
|
|
6
|
-
* Shader Controller Base Interface
|
|
7
|
-
*
|
|
8
|
-
* @remarks
|
|
9
|
-
* Used directly this interface is like an `any` type for Shader Controllers.
|
|
10
|
-
* But it is also used as a base for more specific Shader Controller interfaces.
|
|
11
|
-
*/
|
|
12
|
-
export interface BaseShaderController {
|
|
13
|
-
type: keyof ShaderMap;
|
|
14
|
-
shader: CoreShader;
|
|
15
|
-
props: Record<string, any>;
|
|
16
|
-
getResolvedProps: () => Record<string, any>;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Shader Controller Class
|
|
20
|
-
*
|
|
21
|
-
* @remarks
|
|
22
|
-
* This class is used to control shader props.
|
|
23
|
-
*/
|
|
24
|
-
export declare class ShaderController<S extends keyof ShaderMap> implements BaseShaderController {
|
|
25
|
-
readonly type: S;
|
|
26
|
-
readonly shader: InstanceType<ShaderMap[S]>;
|
|
27
|
-
private resolvedProps;
|
|
28
|
-
props: ExtractProps<ShaderMap[S]>;
|
|
29
|
-
constructor(type: S, shader: InstanceType<ShaderMap[S]>, props: ExtractProps<ShaderMap[S]>, stage: Stage);
|
|
30
|
-
getResolvedProps(): ExtractProps<ShaderMap[S]>;
|
|
31
|
-
}
|