UNPKG

@lightningjs/renderer

Version:
75 lines (74 loc) 2.76 kB
import type { TextRenderer, TrProps, TextRenderInfo } from './text-rendering/TextRenderer.js'; import { CoreNode, type CoreNodeProps } from './CoreNode.js'; import type { Stage } from './Stage.js'; import type { RectWithValid } from './lib/utils.js'; import type { CoreRenderer } from './renderers/CoreRenderer.js'; import type { TextureLoadedEventHandler } from './textures/Texture.js'; export interface CoreTextNodeProps extends CoreNodeProps, TrProps { /** * Force Text Node to use a specific Text Renderer */ textRendererOverride?: string | null; forceLoad: boolean; } export declare class CoreTextNode extends CoreNode implements CoreTextNodeProps { private textRenderer; private fontHandler; private _layoutGenerated; private _cachedLayout; private _lastVertexBuffer; private textProps; private _renderInfo; private _type; constructor(stage: Stage, props: CoreTextNodeProps, textRenderer: TextRenderer); protected onTextureLoaded: TextureLoadedEventHandler; /** * Override CoreNode's update method to handle text-specific updates */ update(delta: number, parentClippingRect: RectWithValid): void; /** * Override is renderable check for SDF text nodes */ updateIsRenderable(): void; /** * Handle the result of text rendering for both Canvas and SDF renderers */ private handleRenderResult; /** * Override renderQuads to handle SDF vs Canvas rendering */ renderQuads(renderer: CoreRenderer): void; get maxWidth(): number; set maxWidth(value: number); get maxHeight(): number; set maxHeight(value: number); get text(): string; set text(value: string); get fontSize(): number; set fontSize(value: number); get fontFamily(): string; set fontFamily(value: string); get fontStyle(): TrProps['fontStyle']; set fontStyle(value: TrProps['fontStyle']); get textAlign(): TrProps['textAlign']; set textAlign(value: TrProps['textAlign']); get letterSpacing(): number; set letterSpacing(value: number); get lineHeight(): number; set lineHeight(value: number); get maxLines(): number; set maxLines(value: number); get textBaseline(): TrProps['textBaseline']; set textBaseline(value: TrProps['textBaseline']); get verticalAlign(): TrProps['verticalAlign']; set verticalAlign(value: TrProps['verticalAlign']); get overflowSuffix(): string; set overflowSuffix(value: string); get wordBreak(): TrProps['wordBreak']; set wordBreak(value: TrProps['wordBreak']); get offsetY(): number; set offsetY(value: number); get forceLoad(): boolean; set forceLoad(value: boolean); get renderInfo(): TextRenderInfo; }