UNPKG

@lightningjs/renderer

Version:
104 lines (103 loc) 4.75 kB
import type { TextRenderer, TextRendererMap, TrProps, TextRendererState } from './text-rendering/renderers/TextRenderer.js'; import { LngNode, type LngNodeWritableProps } from './LngNode.js'; import type { Stage } from './Stage.js'; import type { CoreRenderer } from './renderers/CoreRenderer.js'; import type { RectWithValid } from './lib/utils.js'; export interface TextNodeWritableProps extends LngNodeWritableProps, TrProps { /** * Force Text Node to use a specific Text Renderer * * @remarks * By default, Text Nodes resolve the Text Renderer to use based on the font * that is matched using the font family and other font selection properties. * * If two fonts supported by two separate Text Renderers are matched setting * this override forces the Text Node to resolve to the Text Renderer defined * here. * * @default null */ textRendererOverride: keyof TextRendererMap | null; } /** * An LngNode in the Renderer scene graph that renders text. * * @remarks * A Text Node is the second graphical building block of the Renderer scene * graph. It renders text using a specific text renderer that is automatically * chosen based on the font requested and what type of fonts are installed * into an app. * * The text renderer can be overridden by setting the `textRendererOverride` * * The `texture` and `shader` properties are managed by loaded text renderer and * should not be set directly. * * For non-text rendering, see {@link LngNode}. */ export declare class TextNode extends LngNode implements TextNodeWritableProps { textRenderer: TextRenderer; trState: TextRendererState; private _textRendererOverride; constructor(stage: Stage, props: TextNodeWritableProps); private onTextLoaded; private onTextFailed; get width(): number; set width(value: number); get height(): number; set height(value: number); get color(): number; set color(value: number); get text(): string; set text(value: string); get textRendererOverride(): TextNodeWritableProps['textRendererOverride']; set textRendererOverride(value: TextNodeWritableProps['textRendererOverride']); get fontSize(): TextNodeWritableProps['fontSize']; set fontSize(value: TextNodeWritableProps['fontSize']); get fontFamily(): TextNodeWritableProps['fontFamily']; set fontFamily(value: TextNodeWritableProps['fontFamily']); get fontStretch(): TextNodeWritableProps['fontStretch']; set fontStretch(value: TextNodeWritableProps['fontStretch']); get fontStyle(): TextNodeWritableProps['fontStyle']; set fontStyle(value: TextNodeWritableProps['fontStyle']); get fontWeight(): TextNodeWritableProps['fontWeight']; set fontWeight(value: TextNodeWritableProps['fontWeight']); get textAlign(): TextNodeWritableProps['textAlign']; set textAlign(value: TextNodeWritableProps['textAlign']); get contain(): TextNodeWritableProps['contain']; set contain(value: TextNodeWritableProps['contain']); get scrollable(): TextNodeWritableProps['scrollable']; set scrollable(value: TextNodeWritableProps['scrollable']); get scrollY(): TextNodeWritableProps['scrollY']; set scrollY(value: TextNodeWritableProps['scrollY']); get offsetY(): TextNodeWritableProps['offsetY']; set offsetY(value: TextNodeWritableProps['offsetY']); get letterSpacing(): TextNodeWritableProps['letterSpacing']; set letterSpacing(value: TextNodeWritableProps['letterSpacing']); get lineHeight(): TextNodeWritableProps['lineHeight']; set lineHeight(value: TextNodeWritableProps['lineHeight']); get maxLines(): TextNodeWritableProps['maxLines']; set maxLines(value: TextNodeWritableProps['maxLines']); get textBaseline(): TextNodeWritableProps['textBaseline']; set textBaseline(value: TextNodeWritableProps['textBaseline']); get verticalAlign(): TextNodeWritableProps['verticalAlign']; set verticalAlign(value: TextNodeWritableProps['verticalAlign']); get overflowSuffix(): TextNodeWritableProps['overflowSuffix']; set overflowSuffix(value: TextNodeWritableProps['overflowSuffix']); get debug(): TextNodeWritableProps['debug']; set debug(value: TextNodeWritableProps['debug']); update(delta: number, parentClippingRect: RectWithValid): void; checkRenderProps(): boolean; onChangeIsRenderable(isRenderable: boolean): void; renderQuads(renderer: CoreRenderer): void; /** * Destroy the node and cleanup all resources */ destroy(): void; /** * Resolve a text renderer and a new state based on the current text renderer props provided * @param props * @returns */ private resolveTextRendererAndState; }