@lightningjs/renderer 3.0.4 → 3.0.5
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/EventEmitter.d.ts +7 -4
- package/dist/src/common/EventEmitter.js +1 -1
- package/dist/src/common/EventEmitter.js.map +1 -1
- package/dist/src/core/AutosizeManager.d.ts +29 -0
- package/dist/src/core/AutosizeManager.js +169 -0
- package/dist/src/core/AutosizeManager.js.map +1 -0
- package/dist/src/core/CoreTextNodeCanvas.d.ts +215 -0
- package/dist/src/core/CoreTextNodeCanvas.js +236 -0
- package/dist/src/core/CoreTextNodeCanvas.js.map +1 -0
- package/dist/src/core/Stage.js +10 -0
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.js +4 -3
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/Animation.d.ts +21 -0
- package/dist/src/core/animations/Animation.js +194 -0
- package/dist/src/core/animations/Animation.js.map +1 -0
- package/dist/src/core/animations/AnimationManager.d.ts +1 -1
- package/dist/src/core/animations/AnimationManager.js +5 -5
- package/dist/src/core/animations/AnimationManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +11 -2
- package/dist/src/core/animations/CoreAnimation.js +44 -38
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.d.ts +6 -0
- package/dist/src/core/animations/CoreAnimationController.js +16 -3
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/animations/Playback.d.ts +64 -0
- package/dist/src/core/animations/Playback.js +169 -0
- package/dist/src/core/animations/Playback.js.map +1 -0
- package/dist/src/core/animations/Ticker.d.ts +71 -0
- package/dist/src/core/animations/Ticker.js +89 -0
- package/dist/src/core/animations/Ticker.js.map +1 -0
- package/dist/src/core/animations/Transition.d.ts +38 -0
- package/dist/src/core/animations/Transition.js +35 -0
- package/dist/src/core/animations/Transition.js.map +1 -0
- package/dist/src/core/animations/TransitionsController.d.ts +10 -0
- package/dist/src/core/animations/TransitionsController.js +39 -0
- package/dist/src/core/animations/TransitionsController.js.map +1 -0
- package/dist/src/core/animations/utils.d.ts +2 -0
- package/dist/src/core/animations/utils.js +136 -0
- package/dist/src/core/animations/utils.js.map +1 -0
- package/dist/src/core/lib/ImageWorker.d.ts +2 -2
- package/dist/src/core/lib/ImageWorker.js +11 -30
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +5 -16
- package/dist/src/core/lib/WebGlContextWrapper.js +1 -35
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/textureCompression.d.ts +2 -14
- package/dist/src/core/lib/textureCompression.js +67 -320
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/platform.js +9 -38
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +3 -11
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -2
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +11 -16
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +14 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.js +16 -6
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +1 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +5 -12
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +6 -18
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +60 -102
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +1 -3
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +31 -74
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +7 -2
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +50 -21
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +2 -3
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +1 -3
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +23 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +2 -2
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +1 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +6 -3
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +11 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +10 -5
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +10 -5
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +12 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +2 -2
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +30 -14
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +3 -13
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
- package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +9 -0
- package/dist/src/core/shaders/webgl/SdfShadowShader.js +100 -0
- package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasFont.d.ts +1 -1
- package/dist/src/core/text-rendering/CanvasFont.js +7 -16
- package/dist/src/core/text-rendering/CanvasFont.js.map +1 -1
- package/dist/src/core/text-rendering/CoreFont.d.ts +1 -1
- package/dist/src/core/text-rendering/CoreFont.js +1 -1
- package/dist/src/core/text-rendering/CoreFont.js.map +1 -1
- package/dist/src/core/text-rendering/FontManager.js +2 -1
- package/dist/src/core/text-rendering/FontManager.js.map +1 -1
- package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
- package/dist/src/core/text-rendering/canvas/Settings.js +20 -0
- package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
- package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
- package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
- package/dist/src/core/text-rendering/canvas/draw.js +132 -0
- package/dist/src/core/text-rendering/canvas/draw.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -4
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +46 -98
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +2 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +66 -8
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.d.ts +26 -0
- package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.js +158 -0
- package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/draw.d.ts +5 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/draw.js +127 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/draw.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.d.ts +2 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.js +50 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.d.ts +33 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.js +192 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/types.d.ts +66 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/types.js +2 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/types.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/utils.d.ts +91 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/utils.js +282 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/utils.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
- package/dist/src/core/text-rendering/sdf/Utils.js +301 -0
- package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
- package/dist/src/core/text-rendering/sdf/index.js +20 -0
- package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.js +11 -0
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.js +5 -0
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +1 -1
- package/src/common/EventEmitter.ts +6 -8
- package/src/core/Stage.ts +11 -0
- package/src/core/TextureMemoryManager.ts +4 -3
- package/src/core/animations/AnimationManager.ts +5 -5
- package/src/core/animations/CoreAnimation.ts +61 -45
- package/src/core/animations/CoreAnimationController.ts +16 -7
- package/src/core/renderers/canvas/CanvasRenderer.ts +19 -1
- package/src/core/renderers/canvas/CanvasTexture.ts +23 -8
- package/src/core/renderers/webgl/WebGlShaderNode.ts +24 -0
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +3 -3
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +1 -0
- package/src/core/textures/ImageTexture.ts +18 -0
- package/src/core/textures/Texture.ts +6 -0
- package/dist/src/core/lib/fps.d.ts +0 -15
- package/dist/src/core/lib/fps.js +0 -62
- package/dist/src/core/lib/fps.js.map +0 -1
- package/dist/src/core/text-rendering/TextGenerator.d.ts +0 -10
- package/dist/src/core/text-rendering/TextGenerator.js +0 -36
- package/dist/src/core/text-rendering/TextGenerator.js.map +0 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { IEventEmitter } from './IEventEmitter.js';
|
|
2
|
+
export type EventListener = (target: any, data: any) => void;
|
|
2
3
|
/**
|
|
3
4
|
* EventEmitter base class
|
|
4
5
|
*/
|
|
5
6
|
export declare class EventEmitter implements IEventEmitter {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
protected eventListeners: {
|
|
8
|
+
[eventName: string]: EventListener[];
|
|
9
|
+
};
|
|
10
|
+
on(event: string, listener: EventListener): void;
|
|
11
|
+
off(event: string, listener?: EventListener): void;
|
|
12
|
+
once(event: string, listener: EventListener): void;
|
|
10
13
|
emit(event: string, data?: any): void;
|
|
11
14
|
removeAllListeners(): void;
|
|
12
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../../src/common/EventEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../../src/common/EventEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH;;GAEG;AACH,MAAM,OAAO,YAAY;IACb,cAAc,GAA6C,EAAE,CAAC;IAExE,EAAE,CAAC,KAAa,EAAE,QAAuB;QACvC,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,EAAE,CAAC;QACjB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAAwB;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,QAAuB;QACzC,MAAM,YAAY,GAAG,CAAC,MAAW,EAAE,IAAS,EAAE,EAAE;YAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YAC9B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAU;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { CoreNode } from './CoreNode.js';
|
|
2
|
+
/**
|
|
3
|
+
* Result of autosize calculation containing the new dimensions
|
|
4
|
+
*/
|
|
5
|
+
interface AutosizeResult {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
hasChanged: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Creates an autosize manager for efficient child bounds calculation
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* This function creates a closure-based manager that tracks child transform
|
|
15
|
+
* changes and calculates parent dimensions based on children's bounding boxes.
|
|
16
|
+
* It's optimized for performance with minimal allocations and fast lookups.
|
|
17
|
+
*
|
|
18
|
+
* @param parentNode - The autosize parent node
|
|
19
|
+
* @returns Object with autosize management methods
|
|
20
|
+
*/
|
|
21
|
+
export declare function createAutosizeManager(parentNode: CoreNode): {
|
|
22
|
+
addOrUpdateChild: (child: CoreNode) => void;
|
|
23
|
+
removeChild: (child: CoreNode) => void;
|
|
24
|
+
calculateAutosize: () => AutosizeResult;
|
|
25
|
+
deactivate: () => void;
|
|
26
|
+
readonly active: boolean;
|
|
27
|
+
readonly childCount: number;
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,169 @@
|
|
|
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
|
+
import { Matrix3d } from './lib/Matrix3d.js';
|
|
20
|
+
/**
|
|
21
|
+
* Creates an autosize manager for efficient child bounds calculation
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* This function creates a closure-based manager that tracks child transform
|
|
25
|
+
* changes and calculates parent dimensions based on children's bounding boxes.
|
|
26
|
+
* It's optimized for performance with minimal allocations and fast lookups.
|
|
27
|
+
*
|
|
28
|
+
* @param parentNode - The autosize parent node
|
|
29
|
+
* @returns Object with autosize management methods
|
|
30
|
+
*/
|
|
31
|
+
export function createAutosizeManager(parentNode) {
|
|
32
|
+
const childDataMap = new Map();
|
|
33
|
+
let isActive = true;
|
|
34
|
+
let lastWidth = 0;
|
|
35
|
+
let lastHeight = 0;
|
|
36
|
+
let lastHasChanged = false;
|
|
37
|
+
const corners = [
|
|
38
|
+
{ x: 0, y: 0 },
|
|
39
|
+
{ x: 0, y: 0 },
|
|
40
|
+
{ x: 0, y: 0 },
|
|
41
|
+
{ x: 0, y: 0 },
|
|
42
|
+
];
|
|
43
|
+
/**
|
|
44
|
+
* Add or update a child node in the autosize calculation chain
|
|
45
|
+
* @param child - Child node to add or update
|
|
46
|
+
*/
|
|
47
|
+
const addOrUpdateChild = (child) => {
|
|
48
|
+
if (isActive === false)
|
|
49
|
+
return;
|
|
50
|
+
if (child === parentNode)
|
|
51
|
+
return; // Avoid circular references
|
|
52
|
+
const currentTransform = child.localTransform || Matrix3d.identity();
|
|
53
|
+
const existingData = childDataMap.get(child);
|
|
54
|
+
if (existingData !== undefined) {
|
|
55
|
+
// Update existing child
|
|
56
|
+
Matrix3d.copy(currentTransform, existingData.localTransform);
|
|
57
|
+
existingData.width = child.w;
|
|
58
|
+
existingData.height = child.h;
|
|
59
|
+
existingData.hasChanged = true;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// Add new child
|
|
63
|
+
childDataMap.set(child, {
|
|
64
|
+
localTransform: Matrix3d.copy(currentTransform),
|
|
65
|
+
hasChanged: true,
|
|
66
|
+
width: child.w,
|
|
67
|
+
height: child.h,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// Mark parent for recalculation
|
|
71
|
+
parentNode.autosizeNeedsUpdate = true;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Remove a child node from the autosize calculation chain
|
|
75
|
+
* @param child - Child node to remove
|
|
76
|
+
*/
|
|
77
|
+
const removeChild = (child) => {
|
|
78
|
+
if (childDataMap.delete(child) === true) {
|
|
79
|
+
parentNode.autosizeNeedsUpdate = true;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Calculate the autosize dimensions based on all child bounds
|
|
84
|
+
* @returns Autosize calculation result
|
|
85
|
+
*/
|
|
86
|
+
const calculateAutosize = () => {
|
|
87
|
+
if (isActive === false || childDataMap.size === 0) {
|
|
88
|
+
return { width: 0, height: 0, hasChanged: false };
|
|
89
|
+
}
|
|
90
|
+
let hasAnyChildChanged = false;
|
|
91
|
+
for (const childData of childDataMap.values()) {
|
|
92
|
+
if (childData.hasChanged) {
|
|
93
|
+
hasAnyChildChanged = true;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (hasAnyChildChanged === false) {
|
|
98
|
+
return {
|
|
99
|
+
width: lastWidth,
|
|
100
|
+
height: lastHeight,
|
|
101
|
+
hasChanged: lastHasChanged,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
let minX = Infinity;
|
|
105
|
+
let minY = Infinity;
|
|
106
|
+
let maxX = -Infinity;
|
|
107
|
+
let maxY = -Infinity;
|
|
108
|
+
for (const [child, childData] of childDataMap) {
|
|
109
|
+
if (!child.isRenderable)
|
|
110
|
+
continue;
|
|
111
|
+
const transform = child.localTransform || Matrix3d.identity();
|
|
112
|
+
const width = childData.width;
|
|
113
|
+
const height = childData.height;
|
|
114
|
+
corners[0].x = 0;
|
|
115
|
+
corners[0].y = 0;
|
|
116
|
+
corners[1].x = width;
|
|
117
|
+
corners[1].y = 0;
|
|
118
|
+
corners[2].x = width;
|
|
119
|
+
corners[2].y = height;
|
|
120
|
+
corners[3].x = 0;
|
|
121
|
+
corners[3].y = height;
|
|
122
|
+
for (let i = 0; i < 4; i++) {
|
|
123
|
+
const corner = corners[i];
|
|
124
|
+
const localX = transform.ta * corner.x + transform.tb * corner.y + transform.tx;
|
|
125
|
+
const localY = transform.tc * corner.x + transform.td * corner.y + transform.ty;
|
|
126
|
+
if (localX < minX)
|
|
127
|
+
minX = localX;
|
|
128
|
+
if (localY < minY)
|
|
129
|
+
minY = localY;
|
|
130
|
+
if (localX > maxX)
|
|
131
|
+
maxX = localX;
|
|
132
|
+
if (localY > maxY)
|
|
133
|
+
maxY = localY;
|
|
134
|
+
}
|
|
135
|
+
childData.hasChanged = false;
|
|
136
|
+
}
|
|
137
|
+
const newWidth = maxX > minX ? maxX - minX : 0;
|
|
138
|
+
const newHeight = maxY > minY ? maxY - minY : 0;
|
|
139
|
+
const dimensionsChanged = lastWidth !== newWidth || lastHeight !== newHeight;
|
|
140
|
+
lastWidth = newWidth;
|
|
141
|
+
lastHeight = newHeight;
|
|
142
|
+
lastHasChanged = dimensionsChanged;
|
|
143
|
+
return {
|
|
144
|
+
width: newWidth,
|
|
145
|
+
height: newHeight,
|
|
146
|
+
hasChanged: dimensionsChanged,
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Deactivate this autosize manager and clean up resources
|
|
151
|
+
*/
|
|
152
|
+
const deactivate = () => {
|
|
153
|
+
isActive = false;
|
|
154
|
+
childDataMap.clear();
|
|
155
|
+
};
|
|
156
|
+
return {
|
|
157
|
+
addOrUpdateChild,
|
|
158
|
+
removeChild,
|
|
159
|
+
calculateAutosize,
|
|
160
|
+
deactivate,
|
|
161
|
+
get active() {
|
|
162
|
+
return isActive;
|
|
163
|
+
},
|
|
164
|
+
get childCount() {
|
|
165
|
+
return childDataMap.size;
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=AutosizeManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutosizeManager.js","sourceRoot":"","sources":["../../../src/core/AutosizeManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import type { TextRenderer, TrFontProps } from './text-rendering/renderers/TextRenderer.js';
|
|
2
|
+
import { CoreNode, type CoreNodeProps } from './CoreNode.js';
|
|
3
|
+
import type { Stage } from './Stage.js';
|
|
4
|
+
import type { RectWithValid } from './lib/utils.js';
|
|
5
|
+
import type { TextBaseline, TextVerticalAlign } from './text-rendering/renderers/canvas/LightningTextTextureRenderer.js';
|
|
6
|
+
export declare enum CanvasTextUpdateType {
|
|
7
|
+
None = 0,
|
|
8
|
+
Text = 1,
|
|
9
|
+
Font = 2,
|
|
10
|
+
All = 4
|
|
11
|
+
}
|
|
12
|
+
export interface CoreTextNodeProps extends CoreNodeProps, TrFontProps {
|
|
13
|
+
/**
|
|
14
|
+
* Text to display
|
|
15
|
+
*
|
|
16
|
+
* @default ''
|
|
17
|
+
*/
|
|
18
|
+
text: string;
|
|
19
|
+
/**
|
|
20
|
+
* Text alignment
|
|
21
|
+
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* Alignment of the text relative to it's contained bounds. For best results,
|
|
24
|
+
* use {@link contain} mode `'width'` or `'both'` and a set an explicit
|
|
25
|
+
* {@link width} for the text to be aligned within.
|
|
26
|
+
*
|
|
27
|
+
* @default 'left'
|
|
28
|
+
*/
|
|
29
|
+
textAlign: 'left' | 'center' | 'right';
|
|
30
|
+
/**
|
|
31
|
+
* Color of text
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* The color value is a number in the format 0xRRGGBBAA, where RR is the red
|
|
35
|
+
* component, GG is the green component, BB is the blue component, and AA is
|
|
36
|
+
* the alpha component.
|
|
37
|
+
*
|
|
38
|
+
* @default 0xffffffff (opaque white)
|
|
39
|
+
*/
|
|
40
|
+
color: number;
|
|
41
|
+
/**
|
|
42
|
+
* Contain mode for text
|
|
43
|
+
*
|
|
44
|
+
* @remarks
|
|
45
|
+
* The contain mode determines how the text is contained within the bounds
|
|
46
|
+
* of the Text Node. The default value is `'none'`, which means that the
|
|
47
|
+
* Text Renderer will not constrain the text in any way. `'width'` mode will
|
|
48
|
+
* constrain the text to the set width wrapping lines as necessary, and
|
|
49
|
+
* `'both'` mode will constrain the text to both the set width and height
|
|
50
|
+
* wrapping lines and truncating text as necessary.
|
|
51
|
+
*
|
|
52
|
+
* ## Text Auto-size Behavior
|
|
53
|
+
* Depending on the set contain mode, after the text 'loaded' event is emitted,
|
|
54
|
+
* the text node may have either its {@link width} and {@link height} updated
|
|
55
|
+
* to match the rendered size of the text.
|
|
56
|
+
*
|
|
57
|
+
* When contain mode is 'none', both the {@link width} and {@link height}
|
|
58
|
+
* properties are updated.
|
|
59
|
+
*
|
|
60
|
+
* When contain mode is 'width', only the {@link height} property is updated.
|
|
61
|
+
*
|
|
62
|
+
* When contain mode is 'both', neither property is updated.
|
|
63
|
+
*
|
|
64
|
+
* @default 'none'
|
|
65
|
+
*/
|
|
66
|
+
contain: 'none' | 'width' | 'both';
|
|
67
|
+
/**
|
|
68
|
+
* Letter spacing for text (in pixels)
|
|
69
|
+
*
|
|
70
|
+
* @remarks
|
|
71
|
+
* This property sets additional (or reduced, if value is negative) spacing
|
|
72
|
+
* between characters in the text.
|
|
73
|
+
*
|
|
74
|
+
* @default 0
|
|
75
|
+
*/
|
|
76
|
+
letterSpacing: number;
|
|
77
|
+
/**
|
|
78
|
+
* Line height for text (in pixels)
|
|
79
|
+
*
|
|
80
|
+
* @remarks
|
|
81
|
+
* This property sets the height of each line. If set to `undefined`, the
|
|
82
|
+
* line height will be calculated based on the font and font size to be the
|
|
83
|
+
* minimal height required to completely contain a line of text.
|
|
84
|
+
*
|
|
85
|
+
* See: https://github.com/lightning-js/renderer/issues/170
|
|
86
|
+
*
|
|
87
|
+
* @default `undefined`
|
|
88
|
+
*/
|
|
89
|
+
lineHeight: number | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Max lines for text
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* This property sets max number of lines of a text paragraph.
|
|
95
|
+
* Not yet implemented in the SDF renderer.
|
|
96
|
+
*
|
|
97
|
+
* @default 0
|
|
98
|
+
*/
|
|
99
|
+
maxLines: number;
|
|
100
|
+
/**
|
|
101
|
+
* Baseline for text
|
|
102
|
+
*
|
|
103
|
+
* @remarks
|
|
104
|
+
* This property sets the text baseline used when drawing text.
|
|
105
|
+
* Not yet implemented in the SDF renderer.
|
|
106
|
+
*
|
|
107
|
+
* @default alphabetic
|
|
108
|
+
*/
|
|
109
|
+
textBaseline: TextBaseline;
|
|
110
|
+
/**
|
|
111
|
+
* Vertical Align for text when lineHeight > fontSize
|
|
112
|
+
*
|
|
113
|
+
* @remarks
|
|
114
|
+
* This property sets the vertical align of the text.
|
|
115
|
+
* Not yet implemented in the SDF renderer.
|
|
116
|
+
*
|
|
117
|
+
* @default middle
|
|
118
|
+
*/
|
|
119
|
+
verticalAlign: TextVerticalAlign;
|
|
120
|
+
/**
|
|
121
|
+
* Overflow Suffix for text
|
|
122
|
+
*
|
|
123
|
+
* @remarks
|
|
124
|
+
* The suffix to be added when text is cropped due to overflow.
|
|
125
|
+
* Not yet implemented in the SDF renderer.
|
|
126
|
+
*
|
|
127
|
+
* @default "..."
|
|
128
|
+
*/
|
|
129
|
+
overflowSuffix: string;
|
|
130
|
+
/**
|
|
131
|
+
* Font Style String
|
|
132
|
+
*
|
|
133
|
+
* @remarks
|
|
134
|
+
* This property sets the font style string used when drawing text.
|
|
135
|
+
*
|
|
136
|
+
* @default "normal normal normal"
|
|
137
|
+
*/
|
|
138
|
+
fontStyleString?: string;
|
|
139
|
+
/**
|
|
140
|
+
* Word wrap
|
|
141
|
+
*
|
|
142
|
+
* @remarks
|
|
143
|
+
* This property sets the word wrap mode for the text.
|
|
144
|
+
*
|
|
145
|
+
* @default true
|
|
146
|
+
*/
|
|
147
|
+
wordWrap: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Debug mode for text
|
|
150
|
+
*
|
|
151
|
+
* @remarks
|
|
152
|
+
* This property sets the debug mode for the text.
|
|
153
|
+
* Not yet implemented in the SDF renderer.
|
|
154
|
+
*
|
|
155
|
+
* @default false
|
|
156
|
+
*/
|
|
157
|
+
debug?: boolean;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* An CoreNode in the Renderer scene graph that renders text using Canvas 2D.
|
|
161
|
+
*
|
|
162
|
+
* @remarks
|
|
163
|
+
* A Text Node is the second graphical building block of the Renderer scene
|
|
164
|
+
* graph. It renders text using a specific text renderer that is automatically
|
|
165
|
+
* chosen based on the font requested and what type of fonts are installed
|
|
166
|
+
* into an app.
|
|
167
|
+
*
|
|
168
|
+
* The text renderer can be overridden by setting the `textRendererOverride`
|
|
169
|
+
*
|
|
170
|
+
* The `texture` and `shader` properties are managed by loaded text renderer and
|
|
171
|
+
* should not be set directly.
|
|
172
|
+
*
|
|
173
|
+
* For non-text rendering, see {@link CoreNode}.
|
|
174
|
+
*/
|
|
175
|
+
export declare class CoreTextCanvasNode extends CoreNode {
|
|
176
|
+
private textUpdateType;
|
|
177
|
+
private textProps;
|
|
178
|
+
private textRenderer;
|
|
179
|
+
private fontLoaded;
|
|
180
|
+
constructor(stage: Stage, props: CoreTextNodeProps, textRenderer: TextRenderer);
|
|
181
|
+
setTextUpdateType(updateType: CanvasTextUpdateType): void;
|
|
182
|
+
update(delta: number, parentClippingRect: RectWithValid): void;
|
|
183
|
+
updateText(): void;
|
|
184
|
+
updateFont(): Promise<void>;
|
|
185
|
+
get text(): string;
|
|
186
|
+
set text(value: string);
|
|
187
|
+
get fontSize(): CoreTextNodeProps['fontSize'];
|
|
188
|
+
set fontSize(value: CoreTextNodeProps['fontSize']);
|
|
189
|
+
get fontFamily(): CoreTextNodeProps['fontFamily'];
|
|
190
|
+
set fontFamily(value: CoreTextNodeProps['fontFamily']);
|
|
191
|
+
get fontStretch(): CoreTextNodeProps['fontStretch'];
|
|
192
|
+
set fontStretch(value: CoreTextNodeProps['fontStretch']);
|
|
193
|
+
get fontStyle(): CoreTextNodeProps['fontStyle'];
|
|
194
|
+
set fontStyle(value: CoreTextNodeProps['fontStyle']);
|
|
195
|
+
get fontWeight(): CoreTextNodeProps['fontWeight'];
|
|
196
|
+
set fontWeight(value: CoreTextNodeProps['fontWeight']);
|
|
197
|
+
get textAlign(): CoreTextNodeProps['textAlign'];
|
|
198
|
+
set textAlign(value: CoreTextNodeProps['textAlign']);
|
|
199
|
+
get contain(): CoreTextNodeProps['contain'];
|
|
200
|
+
set contain(value: CoreTextNodeProps['contain']);
|
|
201
|
+
get letterSpacing(): CoreTextNodeProps['letterSpacing'];
|
|
202
|
+
set letterSpacing(value: CoreTextNodeProps['letterSpacing']);
|
|
203
|
+
get lineHeight(): CoreTextNodeProps['lineHeight'];
|
|
204
|
+
set lineHeight(value: CoreTextNodeProps['lineHeight']);
|
|
205
|
+
get maxLines(): CoreTextNodeProps['maxLines'];
|
|
206
|
+
set maxLines(value: CoreTextNodeProps['maxLines']);
|
|
207
|
+
get textBaseline(): CoreTextNodeProps['textBaseline'];
|
|
208
|
+
set textBaseline(value: CoreTextNodeProps['textBaseline']);
|
|
209
|
+
get verticalAlign(): CoreTextNodeProps['verticalAlign'];
|
|
210
|
+
set verticalAlign(value: CoreTextNodeProps['verticalAlign']);
|
|
211
|
+
get overflowSuffix(): CoreTextNodeProps['overflowSuffix'];
|
|
212
|
+
set overflowSuffix(value: CoreTextNodeProps['overflowSuffix']);
|
|
213
|
+
get debug(): CoreTextNodeProps['debug'];
|
|
214
|
+
set debug(value: CoreTextNodeProps['debug']);
|
|
215
|
+
}
|