import { Camera, RenderObject } from "../engine"; import { ZograRenderer } from "zogra-renderer"; import { Scene } from "../engine"; import { Material } from "zogra-renderer"; import { ConstructorType } from "../utils/util"; import { RenderOrder } from "./render-data"; export interface ZograRenderPipelineConstructor { new (renderer: ZograRenderer): ZograRenderPipeline; } export declare type MaterialReplacer = (original: T) => Material; export interface ZograRenderPipeline { render(renderer: RenderContext, scene: Scene, cameras: Camera[]): void; replaceMaterial(MaterialType: ConstructorType, material: Material): void; } export interface RenderContext { renderer: ZograRenderer; screen: Screen; } export interface Screen { width: number; height: number; } export interface DrawObjectsOption { order: RenderOrder; filter: (obj: RenderObject) => boolean; material: Material; } export declare const RenderContext: { create(renderer: ZograRenderer): RenderContext; };