@spearwolf/twopoint5d
Version:
Create 2.5D realtime graphics and pixelart with WebGL and three.js
56 lines • 2.33 kB
TypeScript
import { type EventizedObject } from '@spearwolf/eventize';
import { Color, type Node, RenderTarget, type RenderPipeline, type WebGPURenderer } from 'three/webgpu';
import type { IPassProvider } from './IPassProvider.js';
import type { IRenderable } from './IRenderable.js';
import type { IStage } from './IStage.js';
import type { IStageRendererHost } from './IStageRendererHost.js';
export type StageRendererBuildOutputNode = (stagePasses: Node[]) => Node;
export type StageRendererParentType = IStageRendererHost | StageRenderer;
interface StageItem {
stage: IStage & IRenderable;
width: number;
height: number;
}
export interface StageRenderer extends EventizedObject {
}
export declare class StageRenderer implements IStage, IRenderable, IPassProvider {
#private;
name: string;
width: number;
height: number;
clear: boolean;
get clearColor(): Color | null;
set clearColor(color: Color | null | undefined);
clearAlpha: number;
clearColorBuffer: boolean;
clearDepthBuffer: boolean;
clearStencilBuffer: boolean;
setClearColor(color: Color | null, alpha?: number): this;
readonly stages: StageItem[];
set renderOrder(order: string | undefined);
protected onRenderOrderChanged(): void;
get renderOrder(): string;
get renderOrderArray(): string[];
get parent(): StageRendererParentType | undefined;
set parent(parent: StageRendererParentType | undefined);
constructor(parent?: StageRendererParentType);
attach(parent: StageRendererParentType): this;
detach(): this;
resize(width: number, height: number): void;
protected resizeStage(stageItem: StageItem, width: number, height: number): void;
updateFrame(now: number, deltaTime: number, frameNo: number): void;
pipeline?: RenderPipeline;
outputRenderTarget?: RenderTarget;
buildOutputNode?: StageRendererBuildOutputNode;
invalidateOutputNode(): void;
renderTo(renderer: WebGPURenderer): void;
asPassNode(renderer: WebGPURenderer): Node;
dispose(): void;
protected renderStage(stageItem: StageItem, renderer: WebGPURenderer): void;
get orderedStages(): StageItem[];
hasStage(stage: IStage): boolean;
add(stage: IStage & IRenderable): this;
remove(stage: IStage): this;
}
export {};
//# sourceMappingURL=StageRenderer.d.ts.map