/// import { ExtensionType } from '../../../extensions/Extensions'; import type { Rectangle } from '../../../maths/shapes/Rectangle'; import type { Topology } from '../shared/geometry/const'; import type { Geometry } from '../shared/geometry/Geometry'; import type { Shader } from '../shared/shader/Shader'; import type { State } from '../shared/state/State'; import type { System } from '../shared/system/System'; import type { GPU } from './GpuDeviceSystem'; import type { GpuRenderTarget } from './renderTarget/GpuRenderTarget'; import type { BindGroup } from './shader/BindGroup'; import type { GpuProgram } from './shader/GpuProgram'; import type { WebGPURenderer } from './WebGPURenderer'; /** * The system that handles encoding commands for the GPU. * @memberof rendering */ export declare class GpuEncoderSystem implements System { /** @ignore */ static extension: { readonly type: readonly [ExtensionType.WebGPUSystem]; readonly name: "encoder"; readonly priority: 1; }; commandEncoder: GPUCommandEncoder; renderPassEncoder: GPURenderPassEncoder; commandFinished: Promise; private _resolveCommandFinished; private _gpu; private _boundBindGroup; private _boundVertexBuffer; private _boundIndexBuffer; private _boundPipeline; private readonly _renderer; constructor(renderer: WebGPURenderer); renderStart(): void; beginRenderPass(gpuRenderTarget: GpuRenderTarget): void; endRenderPass(): void; setViewport(viewport: Rectangle): void; setPipelineFromGeometryProgramAndState(geometry: Geometry, program: GpuProgram, state: any, topology?: Topology): void; setPipeline(pipeline: GPURenderPipeline): void; private _setVertexBuffer; private _setIndexBuffer; resetBindGroup(index: number): void; setBindGroup(index: number, bindGroup: BindGroup, program: GpuProgram): void; setGeometry(geometry: Geometry, program: GpuProgram): void; private _setShaderBindGroups; private _syncBindGroup; draw(options: { geometry: Geometry; shader: Shader; state?: State; topology?: Topology; size?: number; start?: number; instanceCount?: number; skipSync?: boolean; }): void; finishRenderPass(): void; postrender(): void; restoreRenderPass(): void; private _clearCache; destroy(): void; protected contextChange(gpu: GPU): void; }