UNPKG

@lightningtv/renderer

Version:
98 lines (97 loc) 2.33 kB
import type { CoreNodeRenderState } from '../core/CoreNode.js'; /** * Types shared between Main Space and Core Space * * @remarks * * @module */ /** * Represents a width and height. */ export interface Dimensions { width: number; height: number; } /** * Payload for when text is loaded */ export type NodeTextLoadedPayload = { type: 'text'; dimensions: Dimensions; }; /** * Payload for when texture is loaded */ export type NodeTextureLoadedPayload = { type: 'texture'; dimensions: Dimensions; }; /** * Combined type for all loaded payloads */ export type NodeLoadedPayload = NodeTextLoadedPayload | NodeTextureLoadedPayload; /** * Payload for when text failed to load */ export type NodeTextFailedPayload = { type: 'text'; error: Error; }; /** * Payload for when texture failed to load */ export type NodeTextureFailedPayload = { type: 'texture'; error: Error; }; /** * Payload for when texture failed to load */ export type NodeTextureFreedPayload = { type: 'texture'; }; /** * Combined type for all failed payloads */ export type NodeFailedPayload = NodeTextFailedPayload | NodeTextureFailedPayload; /** * Event handler for when the texture/text of a node has loaded */ export type NodeLoadedEventHandler = (target: any, payload: NodeLoadedPayload) => void; /** * Event handler for when the texture/text of a node has failed to load */ export type NodeFailedEventHandler = (target: any, payload: NodeFailedPayload) => void; export type NodeRenderStatePayload = { type: 'renderState'; payload: CoreNodeRenderState; }; export type NodeRenderStateEventHandler = (target: any, payload: NodeRenderStatePayload) => void; /** * Event payload for when an FpsUpdate event is emitted by either the Stage or * MainRenderer */ export interface FpsUpdatePayload { fps: number; contextSpyData: Record<string, number> | null; } /** * Event payload for when a frame tick event is emitted by the Stage */ export interface FrameTickPayload { time: number; delta: number; } /** * Event payload for when a an animtion tick event is emitted */ export interface AnimationTickPayload { progress: number; } /** * Event payload for when an QuadsUpdate event is emitted by the Stage */ export interface QuadsUpdatePayload { quads: number; }