@lightningjs/renderer 0.6.1 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/common/CommonTypes.d.ts +8 -0
- package/dist/src/core/CoreNode.d.ts +4 -7
- package/dist/src/core/CoreNode.js +73 -40
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +12 -2
- package/dist/src/core/CoreTextNode.js +46 -1
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +3 -1
- package/dist/src/core/CoreTextureManager.js +4 -1
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +6 -0
- package/dist/src/core/Stage.js +13 -4
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +1 -0
- package/dist/src/core/animations/CoreAnimation.js +7 -0
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.d.ts +16 -0
- package/dist/src/core/lib/ImageWorker.js +111 -0
- package/dist/src/core/lib/ImageWorker.js.map +1 -0
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +4 -0
- package/dist/src/core/lib/WebGlContextWrapper.js +7 -2
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +9 -0
- package/dist/src/core/lib/utils.js +48 -1
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +2 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +2 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +2 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +3 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +23 -21
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +5 -4
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +10 -14
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +4 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +30 -24
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +24 -24
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +8 -5
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +11 -13
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -2
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +15 -15
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +1 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +32 -12
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +14 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +15 -5
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +3 -3
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +2 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +4 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +2 -2
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +25 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +6 -6
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +8 -11
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +140 -81
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +8 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +29 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +4 -3
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +15 -11
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +3 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +30 -26
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +19 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +84 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +8 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +40 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +2 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +41 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +4 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +2 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +9 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +32 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +39 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +52 -2
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +19 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.js +14 -9
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/utils.d.ts +1 -6
- package/dist/src/core/utils.js +3 -2
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/main-api/ICoreDriver.d.ts +2 -1
- package/dist/src/main-api/RendererMain.d.ts +25 -0
- package/dist/src/main-api/RendererMain.js +14 -5
- package/dist/src/main-api/RendererMain.js.map +1 -1
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +2 -1
- package/dist/src/render-drivers/main/MainCoreDriver.js +6 -4
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +10 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +45 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +10 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +45 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +2 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +8 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +5 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +5 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +4 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +5 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +10 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/worker/renderer.js +5 -3
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
- package/dist/src/utils.d.ts +2 -1
- package/dist/src/utils.js +22 -3
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/common/CommonTypes.ts +9 -0
- package/src/core/CoreNode.ts +96 -62
- package/src/core/CoreTextNode.ts +58 -2
- package/src/core/CoreTextureManager.ts +4 -2
- package/src/core/Stage.ts +33 -4
- package/src/core/animations/CoreAnimation.ts +8 -0
- package/src/core/lib/ContextSpy.ts +41 -0
- package/src/core/lib/ImageWorker.ts +124 -0
- package/src/core/lib/WebGlContextWrapper.ts +965 -0
- package/src/core/lib/utils.ts +68 -1
- package/src/core/renderers/CoreRenderer.ts +2 -2
- package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +3 -2
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +29 -28
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +13 -17
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +33 -25
- package/src/core/renderers/webgl/WebGlCoreShader.ts +34 -25
- package/src/core/renderers/webgl/internal/RendererUtils.ts +13 -16
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +16 -15
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -7
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +3 -3
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +42 -14
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +3 -3
- package/src/core/renderers/webgl/shaders/SdfShader.ts +3 -3
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +35 -5
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +3 -3
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +9 -3
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +4 -2
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +27 -1
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +7 -7
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +193 -103
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +26 -18
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +40 -28
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +6 -1
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/{makeRenderWindow.ts → setRenderWindow.ts} +50 -21
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -0
- package/src/core/text-rendering/renderers/TextRenderer.ts +75 -2
- package/src/core/textures/ImageTexture.ts +17 -9
- package/src/core/utils.ts +87 -85
- package/src/env.d.ts +7 -0
- package/src/main-api/ICoreDriver.ts +2 -1
- package/src/main-api/RendererMain.ts +43 -5
- package/src/render-drivers/main/MainCoreDriver.ts +8 -5
- package/src/render-drivers/main/MainOnlyTextNode.ts +55 -1
- package/src/render-drivers/threadx/TextNodeStruct.ts +45 -0
- package/src/render-drivers/threadx/ThreadXCoreDriver.ts +10 -2
- package/src/render-drivers/threadx/ThreadXMainTextNode.ts +10 -0
- package/src/render-drivers/threadx/ThreadXRendererMessage.ts +5 -1
- package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +15 -0
- package/src/render-drivers/threadx/worker/renderer.ts +6 -4
- package/src/utils.ts +25 -4
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.test.ts +0 -136
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layoutText2.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.ts"],"names":[],"mappings":""}
|
package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Round up to the nearest multiple of the given number.
|
|
3
|
+
*
|
|
4
|
+
* @param value
|
|
5
|
+
* @param multiple
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare function roundUpToMultiple(value: number, multiple: number): number;
|
|
9
|
+
export declare function roundDownToMultiple(value: number, multiple: number): number;
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
/**
|
|
20
|
+
* Round up to the nearest multiple of the given number.
|
|
21
|
+
*
|
|
22
|
+
* @param value
|
|
23
|
+
* @param multiple
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export function roundUpToMultiple(value, multiple) {
|
|
27
|
+
return Math.ceil(value / multiple) * multiple;
|
|
28
|
+
}
|
|
29
|
+
export function roundDownToMultiple(value, multiple) {
|
|
30
|
+
return Math.floor(value / multiple) * multiple;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=roundUpToMultiple.js.map
|
package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roundUpToMultiple.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAAgB;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,QAAgB;IACjE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Bound } from '../../../../lib/utils.js';
|
|
2
|
+
import type { TrProps } from '../../TextRenderer.js';
|
|
3
|
+
export interface SdfRenderWindow {
|
|
4
|
+
screen: Bound;
|
|
5
|
+
sdf: Bound;
|
|
6
|
+
firstLineIdx: number;
|
|
7
|
+
numLines: number;
|
|
8
|
+
valid: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Create a render window from the given parameters.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* The render window is a rectangle that defines the area of the text that
|
|
15
|
+
* should be rendered. It is used to skip rendering parts of the text that
|
|
16
|
+
* are outside of the render window. The render window is relative to the
|
|
17
|
+
* text's top left corner of the overrall text.
|
|
18
|
+
*
|
|
19
|
+
* @param x The x coordinate of the text element's top left corner relative to the screen.
|
|
20
|
+
* @param y The y coordinate of the text element's top left corner relative to the screen.
|
|
21
|
+
* @param scrollY The amount of pixels to scroll the text vertically.
|
|
22
|
+
* @param lineHeight The number of extra lines to render above and below the visible window.
|
|
23
|
+
* @param visibleWindow The visible window of the text element relative to the screen
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export declare function setRenderWindow(outRenderWindow: SdfRenderWindow, x: TrProps['x'], y: TrProps['y'], scrollY: TrProps['scrollY'], lineHeight: number, bufferMargin: number, visibleWindow: Bound, fontSizeRatio: number): void;
|
|
@@ -0,0 +1,70 @@
|
|
|
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 { isBoundPositive } from '../../../../lib/utils.js';
|
|
20
|
+
import { roundDownToMultiple, roundUpToMultiple } from './util.js';
|
|
21
|
+
/**
|
|
22
|
+
* Create a render window from the given parameters.
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* The render window is a rectangle that defines the area of the text that
|
|
26
|
+
* should be rendered. It is used to skip rendering parts of the text that
|
|
27
|
+
* are outside of the render window. The render window is relative to the
|
|
28
|
+
* text's top left corner of the overrall text.
|
|
29
|
+
*
|
|
30
|
+
* @param x The x coordinate of the text element's top left corner relative to the screen.
|
|
31
|
+
* @param y The y coordinate of the text element's top left corner relative to the screen.
|
|
32
|
+
* @param scrollY The amount of pixels to scroll the text vertically.
|
|
33
|
+
* @param lineHeight The number of extra lines to render above and below the visible window.
|
|
34
|
+
* @param visibleWindow The visible window of the text element relative to the screen
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
export function setRenderWindow(outRenderWindow, x, y, scrollY, lineHeight, bufferMargin, visibleWindow, fontSizeRatio) {
|
|
38
|
+
const { screen, sdf } = outRenderWindow;
|
|
39
|
+
if (!isBoundPositive(visibleWindow)) {
|
|
40
|
+
screen.x1 = 0;
|
|
41
|
+
screen.y1 = 0;
|
|
42
|
+
screen.x2 = 0;
|
|
43
|
+
screen.y2 = 0;
|
|
44
|
+
sdf.x1 = 0;
|
|
45
|
+
sdf.y1 = 0;
|
|
46
|
+
sdf.x2 = 0;
|
|
47
|
+
sdf.y2 = 0;
|
|
48
|
+
outRenderWindow.numLines = 0;
|
|
49
|
+
outRenderWindow.firstLineIdx = 0;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const x1 = visibleWindow.x1 - x;
|
|
53
|
+
const x2 = x1 + (visibleWindow.x2 - visibleWindow.x1);
|
|
54
|
+
const y1Base = visibleWindow.y1 - y + scrollY;
|
|
55
|
+
const y1 = roundDownToMultiple(y1Base - bufferMargin, lineHeight || 1);
|
|
56
|
+
const y2 = roundUpToMultiple(y1Base + (visibleWindow.y2 - visibleWindow.y1) + bufferMargin, lineHeight || 1);
|
|
57
|
+
screen.x1 = x1;
|
|
58
|
+
screen.y1 = y1;
|
|
59
|
+
screen.x2 = x2;
|
|
60
|
+
screen.y2 = y2;
|
|
61
|
+
sdf.x1 = x1 / fontSizeRatio;
|
|
62
|
+
sdf.y1 = y1 / fontSizeRatio;
|
|
63
|
+
sdf.x2 = x2 / fontSizeRatio;
|
|
64
|
+
sdf.y2 = y2 / fontSizeRatio;
|
|
65
|
+
outRenderWindow.numLines = Math.ceil((y2 - y1) / lineHeight);
|
|
66
|
+
outRenderWindow.firstLineIdx = lineHeight ? Math.floor(y1 / lineHeight) : 0;
|
|
67
|
+
}
|
|
68
|
+
outRenderWindow.valid = true;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=setRenderWindow.js.map
|
package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setRenderWindow.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,eAAe,EAAc,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAUnE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAC7B,eAAgC,EAChC,CAAe,EACf,CAAe,EACf,OAA2B,EAC3B,UAAkB,EAClB,YAAoB,EACpB,aAAoB,EACpB,aAAqB;IAErB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC;IACxC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE;QACnC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACX,eAAe,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC7B,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC;KAClC;SAAM;QACL,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC;QAC9C,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,GAAG,YAAY,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;QACvE,MAAM,EAAE,GAAG,iBAAiB,CAC1B,MAAM,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,GAAG,YAAY,EAC7D,UAAU,IAAI,CAAC,CAChB,CAAC;QAEF,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACf,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;QAC5B,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;QAC5B,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;QAC5B,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;QAE5B,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;QAC7D,eAAe,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7E;IACD,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Round up to the nearest multiple of the given number.
|
|
3
|
+
*
|
|
4
|
+
* @param value
|
|
5
|
+
* @param multiple
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export declare function roundUpToMultiple(value: number, multiple: number): number;
|
|
9
|
+
/**
|
|
10
|
+
* Round down to the nearest multiple of the given number.
|
|
11
|
+
*
|
|
12
|
+
* @param value
|
|
13
|
+
* @param multiple
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function roundDownToMultiple(value: number, multiple: number): number;
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
/**
|
|
20
|
+
* Round up to the nearest multiple of the given number.
|
|
21
|
+
*
|
|
22
|
+
* @param value
|
|
23
|
+
* @param multiple
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export function roundUpToMultiple(value, multiple) {
|
|
27
|
+
return Math.ceil(value / multiple) * multiple;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Round down to the nearest multiple of the given number.
|
|
31
|
+
*
|
|
32
|
+
* @param value
|
|
33
|
+
* @param multiple
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
export function roundDownToMultiple(value, multiple) {
|
|
37
|
+
return Math.floor(value / multiple) * multiple;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAAgB;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,QAAgB;IACjE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACjD,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { EventEmitter } from '../../../common/EventEmitter.js';
|
|
2
2
|
import type { Stage } from '../../Stage.js';
|
|
3
3
|
import type { Matrix3d } from '../../lib/Matrix3d.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { RectWithValid } from '../../lib/utils.js';
|
|
5
5
|
import type { TrFontFace, TrFontFaceDescriptors } from '../font-face-types/TrFontFace.js';
|
|
6
|
+
import type { TextBaseline, TextVerticalAlign } from './LightningTextTextureRenderer.js';
|
|
6
7
|
/**
|
|
7
8
|
* Augmentable map of text renderer type IDs to text renderer types.
|
|
8
9
|
*
|
|
@@ -215,6 +216,55 @@ export interface TrProps extends TrFontProps {
|
|
|
215
216
|
* @default 0
|
|
216
217
|
*/
|
|
217
218
|
letterSpacing: number;
|
|
219
|
+
/**
|
|
220
|
+
* Line height for text (in pixels)
|
|
221
|
+
*
|
|
222
|
+
* @remarks
|
|
223
|
+
* This property sets the height of each line.
|
|
224
|
+
*
|
|
225
|
+
* @default 0
|
|
226
|
+
*/
|
|
227
|
+
lineHeight: number;
|
|
228
|
+
/**
|
|
229
|
+
* Max lines for text
|
|
230
|
+
*
|
|
231
|
+
* @remarks
|
|
232
|
+
* This property sets max number of lines of a text paragraph.
|
|
233
|
+
* Not yet implemented in the SDF renderer.
|
|
234
|
+
*
|
|
235
|
+
* @default 0
|
|
236
|
+
*/
|
|
237
|
+
maxLines: number;
|
|
238
|
+
/**
|
|
239
|
+
* Baseline for text
|
|
240
|
+
*
|
|
241
|
+
* @remarks
|
|
242
|
+
* This property sets the text baseline used when drawing text.
|
|
243
|
+
* Not yet implemented in the SDF renderer.
|
|
244
|
+
*
|
|
245
|
+
* @default alphabetic
|
|
246
|
+
*/
|
|
247
|
+
textBaseline: TextBaseline;
|
|
248
|
+
/**
|
|
249
|
+
* Vertical Align for text when lineHeight > fontSize
|
|
250
|
+
*
|
|
251
|
+
* @remarks
|
|
252
|
+
* This property sets the vertical align of the text.
|
|
253
|
+
* Not yet implemented in the SDF renderer.
|
|
254
|
+
*
|
|
255
|
+
* @default middle
|
|
256
|
+
*/
|
|
257
|
+
verticalAlign: TextVerticalAlign;
|
|
258
|
+
/**
|
|
259
|
+
* Overflow Suffix for text
|
|
260
|
+
*
|
|
261
|
+
* @remarks
|
|
262
|
+
* The suffix to be added when text is cropped due to overflow.
|
|
263
|
+
* Not yet implemented in the SDF renderer.
|
|
264
|
+
*
|
|
265
|
+
* @default "..."
|
|
266
|
+
*/
|
|
267
|
+
overflowSuffix: string;
|
|
218
268
|
zIndex: number;
|
|
219
269
|
debug: Partial<TextRendererDebugProps>;
|
|
220
270
|
}
|
|
@@ -281,5 +331,5 @@ export declare abstract class TextRenderer<StateT extends TextRendererState = Te
|
|
|
281
331
|
*/
|
|
282
332
|
scheduleUpdateState(state: StateT): void;
|
|
283
333
|
abstract updateState(state: StateT): void;
|
|
284
|
-
abstract renderQuads(state: StateT, transform: Matrix3d, clippingRect:
|
|
334
|
+
abstract renderQuads(state: StateT, transform: Matrix3d, clippingRect: RectWithValid, alpha: number): void;
|
|
285
335
|
}
|
|
@@ -71,6 +71,21 @@ const trPropSetterDefaults = {
|
|
|
71
71
|
letterSpacing: (state, value) => {
|
|
72
72
|
state.props.letterSpacing = value;
|
|
73
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
|
+
},
|
|
74
89
|
debug: (state, value) => {
|
|
75
90
|
state.props.debug = value;
|
|
76
91
|
},
|
|
@@ -92,6 +107,10 @@ export class TextRenderer {
|
|
|
92
107
|
(state, value) => {
|
|
93
108
|
if (state.props[key] !== value) {
|
|
94
109
|
setter(state, value);
|
|
110
|
+
// Assume any prop change will require a render
|
|
111
|
+
// This is required because otherwise a paused RAF will result
|
|
112
|
+
// in renders when text props are changed.
|
|
113
|
+
this.stage.requestRender();
|
|
95
114
|
}
|
|
96
115
|
},
|
|
97
116
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/TextRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"TextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/TextRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,15 +50,20 @@ export class ImageTexture extends Texture {
|
|
|
50
50
|
premultiplyAlpha,
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
if (this.txManager.imageWorkerManager.imageWorkersEnabled) {
|
|
54
|
+
return await this.txManager.imageWorkerManager.getImage(src, premultiplyAlpha);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const response = await fetch(src);
|
|
58
|
+
const blob = await response.blob();
|
|
59
|
+
return {
|
|
60
|
+
data: await createImageBitmap(blob, {
|
|
61
|
+
premultiplyAlpha: premultiplyAlpha ? 'premultiply' : 'none',
|
|
62
|
+
colorSpaceConversion: 'none',
|
|
63
|
+
imageOrientation: 'none',
|
|
64
|
+
}),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
62
67
|
}
|
|
63
68
|
static makeCacheKey(props) {
|
|
64
69
|
const resolvedProps = ImageTexture.resolveDefaults(props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AA8BzD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,KAAK,CAA8B;IAEnC,YAAY,SAA6B,EAAE,KAAwB;QACjE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;gBACL,IAAI,EAAE,IAAI;aACX,CAAC;SACH;QACD,IAAI,GAAG,YAAY,SAAS,EAAE;YAC5B,OAAO;gBACL,IAAI,EAAE,GAAG;gBACT,gBAAgB;aACjB,CAAC;SACH;
|
|
1
|
+
{"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AA8BzD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,KAAK,CAA8B;IAEnC,YAAY,SAA6B,EAAE,KAAwB;QACjE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;gBACL,IAAI,EAAE,IAAI;aACX,CAAC;SACH;QACD,IAAI,GAAG,YAAY,SAAS,EAAE;YAC5B,OAAO;gBACL,IAAI,EAAE,GAAG;gBACT,gBAAgB;aACjB,CAAC;SACH;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;YACzD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CACrD,GAAG,EACH,gBAAgB,CACjB,CAAC;SACH;aAAM;YACL,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,MAAM,iBAAiB,CAAC,IAAI,EAAE;oBAClC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;oBAC3D,oBAAoB,EAAE,MAAM;oBAC5B,gBAAgB,EAAE,MAAM;iBACzB,CAAC;aACH,CAAC;SACH;IACH,CAAC;IAED,MAAM,CAAU,YAAY,CAAC,KAAwB;QACnD,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1D,uDAAuD;QACvD,IAAI,aAAa,CAAC,GAAG,YAAY,SAAS,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QACD,OAAO,gBAAgB,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,gBAAgB,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAwB;QAExB,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE;YACpB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,IAAI;SACjD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAoB;CAC3C"}
|
package/dist/src/core/utils.d.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Utility Functions
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
1
|
export declare const EPSILON = 0.000001;
|
|
7
2
|
export declare let ARRAY_TYPE: Float32ArrayConstructor | ArrayConstructor;
|
|
8
3
|
export declare const RANDOM: () => number;
|
|
@@ -12,4 +7,4 @@ export declare const toRadian: (a: number) => number;
|
|
|
12
7
|
export declare const equals: (a: number, b: number) => boolean;
|
|
13
8
|
export declare const rand: (min: number, max: number) => number;
|
|
14
9
|
export declare const isPowerOfTwo: (value: number) => boolean | 0;
|
|
15
|
-
export declare const getTimingFunction: (str: string) => (time: number) => number | undefined;
|
|
10
|
+
export declare const getTimingFunction: ((str: string) => (time: number) => number | undefined) & import("memize").MemizeMemoizedFunction;
|
package/dist/src/core/utils.js
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
*
|
|
22
22
|
* @module
|
|
23
23
|
*/
|
|
24
|
+
import memo from 'memize';
|
|
24
25
|
export const EPSILON = 0.000001;
|
|
25
26
|
export let ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;
|
|
26
27
|
export const RANDOM = Math.random;
|
|
@@ -90,7 +91,7 @@ const getTimingBezier = (a, b, c, d) => {
|
|
|
90
91
|
}
|
|
91
92
|
};
|
|
92
93
|
};
|
|
93
|
-
export const getTimingFunction = (str) => {
|
|
94
|
+
export const getTimingFunction = memo((str) => {
|
|
94
95
|
switch (str) {
|
|
95
96
|
case 'linear':
|
|
96
97
|
return function (time) {
|
|
@@ -171,7 +172,7 @@ export const getTimingFunction = (str) => {
|
|
|
171
172
|
};
|
|
172
173
|
}
|
|
173
174
|
}
|
|
174
|
-
};
|
|
175
|
+
});
|
|
175
176
|
if (!Math.hypot)
|
|
176
177
|
Math.hypot = (...args) => {
|
|
177
178
|
let y = 0, i = args.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FpsUpdatePayload } from '../common/CommonTypes.js';
|
|
1
2
|
import type { INode, INodeWritableProps, ITextNode, ITextNodeWritableProps } from './INode.js';
|
|
2
3
|
import type { RendererMain, RendererMainSettings } from './RendererMain.js';
|
|
3
4
|
/**
|
|
@@ -17,5 +18,5 @@ export interface ICoreDriver {
|
|
|
17
18
|
releaseTexture(textureDescId: number): void;
|
|
18
19
|
onCreateNode(node: INode): void;
|
|
19
20
|
onBeforeDestroyNode(node: INode): void;
|
|
20
|
-
onFpsUpdate(
|
|
21
|
+
onFpsUpdate(fpsData: FpsUpdatePayload): void;
|
|
21
22
|
}
|
|
@@ -161,6 +161,31 @@ export interface RendererMainSettings {
|
|
|
161
161
|
* @defaultValue `0` (disabled)
|
|
162
162
|
*/
|
|
163
163
|
fpsUpdateInterval?: number;
|
|
164
|
+
/**
|
|
165
|
+
* Include context call (i.e. WebGL) information in FPS updates
|
|
166
|
+
*
|
|
167
|
+
* @remarks
|
|
168
|
+
* When enabled the number of calls to each context method over the
|
|
169
|
+
* `fpsUpdateInterval` will be included in the FPS update payload's
|
|
170
|
+
* `contextSpyData` property.
|
|
171
|
+
*
|
|
172
|
+
* Enabling the context spy has a serious impact on performance so only use it
|
|
173
|
+
* when you need to extract context call information.
|
|
174
|
+
*
|
|
175
|
+
* @defaultValue `false` (disabled)
|
|
176
|
+
*/
|
|
177
|
+
enableContextSpy?: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Number or Image Workers to use
|
|
180
|
+
*
|
|
181
|
+
* @remarks
|
|
182
|
+
* On devices with multiple cores, this can be used to improve image loading
|
|
183
|
+
* as well as reduce the impact of image loading on the main thread.
|
|
184
|
+
* Set to 0 to disable image workers.
|
|
185
|
+
*
|
|
186
|
+
* @defaultValue `2`
|
|
187
|
+
*/
|
|
188
|
+
numImageWorkers?: number;
|
|
164
189
|
}
|
|
165
190
|
/**
|
|
166
191
|
* The Renderer Main API
|
|
@@ -76,6 +76,8 @@ export class RendererMain extends EventEmitter {
|
|
|
76
76
|
experimental_FinalizationRegistryTextureUsageTracker: settings.experimental_FinalizationRegistryTextureUsageTracker ?? false,
|
|
77
77
|
textureCleanupOptions: settings.textureCleanupOptions || {},
|
|
78
78
|
fpsUpdateInterval: settings.fpsUpdateInterval || 0,
|
|
79
|
+
numImageWorkers: settings.numImageWorkers !== undefined ? settings.numImageWorkers : 2,
|
|
80
|
+
enableContextSpy: settings.enableContextSpy ?? false,
|
|
79
81
|
};
|
|
80
82
|
this.settings = resolvedSettings;
|
|
81
83
|
const { appWidth, appHeight, deviceLogicalPixelRatio, devicePhysicalPixelRatio, } = resolvedSettings;
|
|
@@ -113,8 +115,8 @@ export class RendererMain extends EventEmitter {
|
|
|
113
115
|
driver.onBeforeDestroyNode = (node) => {
|
|
114
116
|
this.nodes.delete(node.id);
|
|
115
117
|
};
|
|
116
|
-
driver.onFpsUpdate = (
|
|
117
|
-
this.emit('fpsUpdate',
|
|
118
|
+
driver.onFpsUpdate = (fpsData) => {
|
|
119
|
+
this.emit('fpsUpdate', fpsData);
|
|
118
120
|
};
|
|
119
121
|
targetEl.appendChild(canvas);
|
|
120
122
|
}
|
|
@@ -163,11 +165,12 @@ export class RendererMain extends EventEmitter {
|
|
|
163
165
|
* @returns
|
|
164
166
|
*/
|
|
165
167
|
createTextNode(props) {
|
|
166
|
-
|
|
168
|
+
const fontSize = props.fontSize ?? 16;
|
|
169
|
+
const data = {
|
|
167
170
|
...this.resolveNodeDefaults(props),
|
|
168
171
|
text: props.text ?? '',
|
|
169
172
|
textRendererOverride: props.textRendererOverride ?? null,
|
|
170
|
-
fontSize
|
|
173
|
+
fontSize,
|
|
171
174
|
fontFamily: props.fontFamily ?? 'sans-serif',
|
|
172
175
|
fontStyle: props.fontStyle ?? 'normal',
|
|
173
176
|
fontWeight: props.fontWeight ?? 'normal',
|
|
@@ -178,8 +181,14 @@ export class RendererMain extends EventEmitter {
|
|
|
178
181
|
scrollY: props.scrollY ?? 0,
|
|
179
182
|
offsetY: props.offsetY ?? 0,
|
|
180
183
|
letterSpacing: props.letterSpacing ?? 0,
|
|
184
|
+
lineHeight: props.lineHeight ?? fontSize,
|
|
185
|
+
maxLines: props.maxLines ?? 0,
|
|
186
|
+
textBaseline: props.textBaseline ?? 'alphabetic',
|
|
187
|
+
verticalAlign: props.verticalAlign ?? 'top',
|
|
188
|
+
overflowSuffix: props.overflowSuffix ?? '...',
|
|
181
189
|
debug: props.debug ?? {},
|
|
182
|
-
}
|
|
190
|
+
};
|
|
191
|
+
return this.driver.createTextNode(data);
|
|
183
192
|
}
|
|
184
193
|
/**
|
|
185
194
|
* Resolves the default property values for a Node
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererMain.js","sourceRoot":"","sources":["../../../src/main-api/RendererMain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAgBH,OAAO,EACL,8BAA8B,GAE/B,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAE,uCAAuC,EAAE,MAAM,qEAAqE,CAAC;AAE9H,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"RendererMain.js","sourceRoot":"","sources":["../../../src/main-api/RendererMain.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { ICoreDriver } from '../../main-api/ICoreDriver.js';
|
|
|
2
2
|
import type { INode, INodeWritableProps, ITextNodeWritableProps } from '../../main-api/INode.js';
|
|
3
3
|
import type { RendererMain, RendererMainSettings } from '../../main-api/RendererMain.js';
|
|
4
4
|
import { MainOnlyTextNode } from './MainOnlyTextNode.js';
|
|
5
|
+
import type { FpsUpdatePayload } from '../../common/CommonTypes.js';
|
|
5
6
|
export declare class MainCoreDriver implements ICoreDriver {
|
|
6
7
|
private root;
|
|
7
8
|
private stage;
|
|
@@ -14,5 +15,5 @@ export declare class MainCoreDriver implements ICoreDriver {
|
|
|
14
15
|
getRootNode(): INode;
|
|
15
16
|
onCreateNode(node: INode): void;
|
|
16
17
|
onBeforeDestroyNode(node: INode): void;
|
|
17
|
-
onFpsUpdate(
|
|
18
|
+
onFpsUpdate(fpsData: FpsUpdatePayload): void;
|
|
18
19
|
}
|
|
@@ -35,6 +35,8 @@ export class MainCoreDriver {
|
|
|
35
35
|
clearColor: rendererSettings.clearColor,
|
|
36
36
|
canvas,
|
|
37
37
|
fpsUpdateInterval: rendererSettings.fpsUpdateInterval,
|
|
38
|
+
enableContextSpy: rendererSettings.enableContextSpy,
|
|
39
|
+
numImageWorkers: rendererSettings.numImageWorkers,
|
|
38
40
|
debug: {
|
|
39
41
|
monitorTextureCache: false,
|
|
40
42
|
},
|
|
@@ -50,9 +52,9 @@ export class MainCoreDriver {
|
|
|
50
52
|
await loadCoreExtension(rendererSettings.coreExtensionModule, this.stage);
|
|
51
53
|
}
|
|
52
54
|
// Forward fpsUpdate events from the stage to RendererMain
|
|
53
|
-
this.stage.on('fpsUpdate', (stage,
|
|
54
|
-
this.onFpsUpdate(
|
|
55
|
-
});
|
|
55
|
+
this.stage.on('fpsUpdate', ((stage, fpsData) => {
|
|
56
|
+
this.onFpsUpdate(fpsData);
|
|
57
|
+
}));
|
|
56
58
|
}
|
|
57
59
|
createNode(props) {
|
|
58
60
|
assertTruthy(this.rendererMain);
|
|
@@ -91,7 +93,7 @@ export class MainCoreDriver {
|
|
|
91
93
|
onBeforeDestroyNode(node) {
|
|
92
94
|
throw new Error('Method not implemented.');
|
|
93
95
|
}
|
|
94
|
-
onFpsUpdate(
|
|
96
|
+
onFpsUpdate(fpsData) {
|
|
95
97
|
throw new Error('Method not implemented.');
|
|
96
98
|
}
|
|
97
99
|
}
|