Skip to content

Commit 1cd66c0

Browse files
committed
Expose TextTextureRendererAdvanced
1 parent abf33eb commit 1cd66c0

File tree

4 files changed

+70
-6
lines changed

4 files changed

+70
-6
lines changed

src/textures/TextTexture.d.mts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import Stage from "../tree/Stage.mjs";
2020
import Texture from "../tree/Texture.mjs";
2121
import TextTextureRenderer from "./TextTextureRenderer.mjs";
22+
import TextTextureRendererAdvanced from "./TextTextureRendererAdvanced.mjs";
2223

2324
declare namespace TextTexture {
2425
/**
@@ -456,8 +457,8 @@ declare class TextTexture extends Texture implements Required<Omit<TextTexture.S
456457
protected static renderer(
457458
stage: Stage,
458459
canvas: HTMLCanvasElement,
459-
settings: TextTexture.Settings,
460-
): TextTextureRenderer;
460+
settings: TextTexture.Settings
461+
): TextTextureRenderer | TextTextureRendererAdvanced;
461462

462463
// protected _changed(): void;
463464
// protected stage: Stage;

src/textures/TextTexture.mjs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default class TextTexture extends Texture {
3030
}
3131

3232
static renderer(stage, canvas, settings) {
33-
if (this.advancedRenderer) {
33+
if (settings.advancedRenderer) {
3434
return new TextTextureRendererAdvanced(stage, canvas, settings);
3535
} else {
3636
return new TextTextureRenderer(stage, canvas, settings);
@@ -549,9 +549,7 @@ export default class TextTexture extends Texture {
549549

550550
return function (cb) {
551551
const canvas = this.stage.platform.getDrawingCanvas();
552-
const renderer = (args.advancedRenderer)
553-
? new TextTextureRendererAdvanced(this.stage, canvas, args)
554-
: new TextTextureRenderer(this.stage, canvas, args);
552+
const renderer = TextTexture.renderer(this.stage, canvas, args);
555553

556554
const p = renderer.draw();
557555

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
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 2022 Metrological
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 Stage from "../tree/Stage.mjs";
20+
import TextureSource from "../tree/TextureSource.mjs";
21+
import TextTexture from "./TextTexture.mjs";
22+
23+
declare namespace TextTextureRendererAdvanced {
24+
export interface WordInfo {
25+
text: string;
26+
bold: boolean;
27+
italic: boolean;
28+
color: string;
29+
width?: number;
30+
}
31+
}
32+
33+
declare class TextTextureRendererAdvanced {
34+
constructor(
35+
stage: Stage,
36+
canvas: HTMLCanvasElement,
37+
settings: Required<TextTexture.Settings>,
38+
);
39+
40+
private _settings: Required<TextTexture.Settings>;
41+
renderInfo?: TextureSource.RenderInfo;
42+
43+
_calculateRenderInfo(): TextureSource.RenderInfo;
44+
_context: CanvasRenderingContext2D;
45+
getPrecision(): number;
46+
setFontProperties(): void;
47+
_load(): Promise<void> | undefined;
48+
draw(): Promise<void> | undefined;
49+
_draw(): void;
50+
measureText(word: string, space?: number): number;
51+
tokenize(text: string): string[];
52+
parse(tokens: string[]): string[];
53+
applyFontStyle(word: string, baseFont: string): void;
54+
resetFontStyle(baseFont: string): void;
55+
measure(
56+
parsed: TextTextureRendererAdvanced.WordInfo[],
57+
letterSpacing: number,
58+
baseFont: string
59+
): TextTextureRendererAdvanced.WordInfo[];
60+
indent(parsed: TextTextureRendererAdvanced.WordInfo[], textIndent: number): TextTextureRendererAdvanced.WordInfo[];
61+
}
62+
63+
export default TextTextureRendererAdvanced;

src/types/lng.types.namespace.d.mts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import WebGLCoreQuadList from "../renderer/webgl/WebGLCoreQuadList.mjs";
3535
import WebGLCoreQuadOperation from "../renderer/webgl/WebGLCoreQuadOperation.mjs";
3636
import WebGLRenderer from "../renderer/webgl/WebGLRenderer.mjs";
3737
import TextTextureRenderer from "../textures/TextTextureRenderer.mjs";
38+
import TextTextureRendererAdvanced from "../textures/TextTextureRendererAdvanced.mjs";
3839
import CoreContext from "../tree/core/CoreContext.mjs";
3940
import CoreQuadList from "../tree/core/CoreQuadList.mjs";
4041
import CoreQuadOperation from "../tree/core/CoreQuadOperation.mjs";
@@ -59,6 +60,7 @@ export {
5960
TextureManager,
6061
TextureSource,
6162
TextTextureRenderer,
63+
TextTextureRendererAdvanced,
6264
CoreContext,
6365
CoreRenderState,
6466
CoreQuadOperation,

0 commit comments

Comments
 (0)