@lightningjs/renderer
Version:
Lightning 3 Renderer
45 lines (44 loc) • 2.31 kB
TypeScript
import type { IAnimationController } from '../../common/IAnimationController.js';
import type { CustomDataMap, INode, INodeAnimatableProps } from '../../main-api/INode.js';
import type { RendererMain, TextureRef } from '../../main-api/RendererMain.js';
import type { NodeStruct } from './NodeStruct.js';
import { SharedNode } from './SharedNode.js';
import type { AnimationSettings } from '../../core/animations/CoreAnimation.js';
import type { ThreadXMainShaderController } from './ThreadXMainShaderController.js';
export declare class ThreadXMainNode extends SharedNode implements INode {
private rendererMain;
private nextAnimationId;
protected _parent: ThreadXMainNode | null;
protected _children: ThreadXMainNode[];
protected _texture: TextureRef | null;
protected _shader: ThreadXMainShaderController | null;
protected _data: CustomDataMap | undefined;
private _src;
/**
* FinalizationRegistry for animation controllers. When an animation
* controller is garbage collected, we let the render worker know so that
* it can remove it's corresponding animation controler from it's stored
* Set. This should ultimately allow the render worker to garbage collect
* it's animation controller. The animation itself independent from the animation
* controller, so it will continue to run until it's finished regardless of
* whether or not the animation controller is garbage collected.
*/
private animationRegistry;
constructor(rendererMain: RendererMain, sharedNodeStruct: NodeStruct, extendedCurProps?: Record<string, unknown>);
get texture(): TextureRef | null;
set texture(texture: TextureRef | null);
get shader(): ThreadXMainShaderController | null;
set shader(shader: ThreadXMainShaderController | null);
get scale(): number | null;
set scale(scale: number | null);
animate(props: Partial<INodeAnimatableProps>, settings: Partial<AnimationSettings>): IAnimationController;
get src(): string;
set src(imageUrl: string);
get parent(): ThreadXMainNode | null;
set parent(newParent: ThreadXMainNode | null);
get children(): ThreadXMainNode[];
get props(): this["z$__type__Props"];
get data(): CustomDataMap | undefined;
set data(d: CustomDataMap);
destroy(): void;
}