import { FrameRenderer } from './frame.js'; import { SpriteRenderer } from './pipelines/sprite.js'; import { SkyboxPipeline } from './pipelines/skybox.js'; import { BspSurfacePipeline } from './pipelines/bspPipeline.js'; import { WebGPUContextOptions, WebGPUContextState } from './context.js'; import { IRenderer, Pic } from '../interface.js'; import { PreparedTexture } from '../../assets/texture.js'; import { RenderableEntity } from '../scene.js'; import { CollisionVisRenderer } from '../collisionVis.js'; import { DebugRenderer } from '../debug.js'; import { ParticleSystem } from '../particleSystem.js'; import { MemoryUsage } from '../types.js'; import { RenderOptions } from '../options.js'; import { DebugMode } from '../debugMode.js'; import { Md2Model } from '../../assets/md2.js'; import { Md3Model } from '../../assets/md3.js'; import { InstanceData } from '../instancing.js'; import { RenderStatistics } from '../gpuProfiler.js'; import { BspSurfaceGeometry } from '../bsp.js'; import { FrameRenderOptions } from '../frame.js'; export interface WebGPURenderer extends IRenderer { readonly type: 'webgpu'; readonly device: GPUDevice; readonly pipelines: { readonly sprite: SpriteRenderer; readonly skybox: SkyboxPipeline; readonly bsp: BspSurfacePipeline; }; uploadBspGeometry(surfaces: readonly BspSurfaceGeometry[]): void; } export declare class WebGPURendererImpl implements WebGPURenderer { private context; private frameRenderer; readonly pipelines: { sprite: SpriteRenderer; skybox: SkyboxPipeline; bsp: BspSurfacePipeline; }; readonly type = "webgpu"; private picCache; private whiteTexture; private font; private is2DActive; readonly collisionVis: CollisionVisRenderer; readonly debug: DebugRenderer; readonly particleSystem: ParticleSystem; constructor(context: WebGPUContextState, frameRenderer: FrameRenderer, pipelines: { sprite: SpriteRenderer; skybox: SkyboxPipeline; bsp: BspSurfacePipeline; }); get device(): GPUDevice; get width(): number; get height(): number; renderFrame(options: FrameRenderOptions, // From shared interface entities?: readonly RenderableEntity[], renderOptions?: RenderOptions): void; uploadBspGeometry(surfaces: readonly BspSurfaceGeometry[]): void; registerPic(name: string, data: ArrayBuffer): Promise; registerTexture(name: string, texture: PreparedTexture): Pic; begin2D(): void; end2D(): void; drawPic(x: number, y: number, pic: Pic, color?: [number, number, number, number]): void; drawfillRect(x: number, y: number, width: number, height: number, color: [number, number, number, number]): void; drawString(x: number, y: number, text: string, color?: [number, number, number, number]): void; drawCenterString(y: number, text: string): void; setEntityHighlight(entityId: number, color: [number, number, number, number]): void; clearEntityHighlight(entityId: number): void; highlightSurface(faceIndex: number, color: [number, number, number, number]): void; removeSurfaceHighlight(faceIndex: number): void; setDebugMode(mode: DebugMode): void; setBrightness(value: number): void; setGamma(value: number): void; setFullbright(enabled: boolean): void; setAmbient(value: number): void; setLightStyle(index: number, pattern: string | null): void; setUnderwaterWarp(enabled: boolean): void; setBloom(enabled: boolean): void; setBloomIntensity(value: number): void; setLodBias(bias: number): void; renderInstanced(model: Md2Model | Md3Model, instances: InstanceData[]): void; getPerformanceReport(): RenderStatistics; getMemoryUsage(): MemoryUsage; resize(width: number, height: number): void; dispose(): void; destroy(): void; } export declare function createWebGPURenderer(canvas?: HTMLCanvasElement, options?: WebGPUContextOptions): Promise; //# sourceMappingURL=renderer.d.ts.map