UNPKG

@lightningjs/renderer

Version:
79 lines (78 loc) 2.88 kB
import type { Dimensions } from '../../common/CommonTypes.js'; import type { BaseShaderController } from '../../main-api/ShaderController.js'; import type { CoreNode } from '../CoreNode.js'; import type { CoreShaderManager } from '../CoreShaderManager.js'; import type { CoreTextureManager, TextureOptions } from '../CoreTextureManager.js'; import type { Stage } from '../Stage.js'; import type { TextureMemoryManager } from '../TextureMemoryManager.js'; import type { ContextSpy } from '../lib/ContextSpy.js'; import type { RenderCoords } from '../lib/RenderCoords.js'; import type { RectWithValid } from '../lib/utils.js'; import type { Texture } from '../textures/Texture.js'; import { CoreContextTexture } from './CoreContextTexture.js'; import type { CoreShader } from './CoreShader.js'; export interface QuadOptions { width: number; height: number; colorTl: number; colorTr: number; colorBl: number; colorBr: number; texture: Texture | null; textureOptions: TextureOptions | null; zIndex: number; shader: CoreShader | null; shaderProps: Record<string, unknown> | null; alpha: number; clippingRect: RectWithValid; tx: number; ty: number; ta: number; tb: number; tc: number; td: number; renderCoords?: RenderCoords; rtt?: boolean; parentHasRenderTexture?: boolean; framebufferDimensions?: Dimensions; } export interface CoreRendererOptions { stage: Stage; canvas: HTMLCanvasElement | OffscreenCanvas; pixelRatio: number; txManager: CoreTextureManager; txMemManager: TextureMemoryManager; shManager: CoreShaderManager; clearColor: number; bufferMemory: number; contextSpy: ContextSpy | null; forceWebGL2: boolean; } export interface BufferInfo { totalUsed: number; totalAvailable: number; } export declare abstract class CoreRenderer { options: CoreRendererOptions; mode: 'webgl' | 'canvas' | undefined; readonly stage: Stage; txManager: CoreTextureManager; txMemManager: TextureMemoryManager; shManager: CoreShaderManager; rttNodes: CoreNode[]; constructor(options: CoreRendererOptions); abstract reset(): void; abstract render(surface?: 'screen' | CoreContextTexture): void; abstract addQuad(quad: QuadOptions): void; abstract createCtxTexture(textureSource: Texture): CoreContextTexture; abstract getShaderManager(): CoreShaderManager; abstract get renderToTextureActive(): boolean; abstract get activeRttNode(): CoreNode | null; abstract renderRTTNodes(): void; abstract removeRTTNode(node: CoreNode): void; abstract renderToTexture(node: CoreNode): void; abstract getBufferInfo(): BufferInfo | null; abstract getQuadCount(): number | null; abstract getDefShaderCtr(): BaseShaderController; abstract updateClearColor(color: number): void; }