@lightningjs/renderer
Version:
Lightning 3 Renderer
75 lines (74 loc) • 2.76 kB
TypeScript
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;
}