/** * Persistent, texture-native WebGPU character renderer. * * Unlike renderCharacter(), this production seam owns reusable GPU resources, * records into a caller-owned command encoder, and never maps character pixels * through the CPU between render-graph passes. */ import type { CharacterDrawSpec } from '../native-render/draw-spec'; import { type CharacterRenderOptions } from './character-render'; export interface CharacterTextureRendererOptions { width: number; height: number; label?: string; } export interface CharacterTextureRenderReceipt { schemaVersion: 'holoscript.webgpu-character-texture-render.v1'; backend: 'webgpu'; width: number; height: number; vertexCount: number; triangleCount: number; scheduledDrawCount: number; sampleCount: 1 | 4; persistentGeometryBuffers: true; persistentFrameResources: true; persistentMaterialResources: true; persistentPipelineCount: number; geometryUploadCount: 8; frameUploadCount: 2; materialUploadCount: number; zeroCopyTextureOutput: true; intermediateCpuReadbackCount: 0; gpuTimestampWritesEncoded: boolean; } export interface CharacterTextureRenderEncodeOptions extends CharacterRenderOptions { timestampWrites?: GPURenderPassTimestampWrites; } /** * Fixed-topology character encoder. Geometry allocations, material bind groups, * pipeline objects, MSAA storage, and depth storage persist across frames. */ export declare class CharacterTextureRenderer { readonly width: number; readonly height: number; readonly sampleCount: 1 | 4; private readonly device; private readonly label; private readonly vertexCount; private readonly indexCount; private readonly jointCount; private readonly indices; private readonly schedule; private readonly groups; private readonly positionBuffer; private readonly normalBuffer; private readonly jointIndexBuffer; private readonly jointWeightBuffer; private readonly tangentBuffer; private readonly uvBuffer; private readonly secondaryJointIndexBuffer; private readonly secondaryJointWeightBuffer; private readonly indexBuffer; private readonly frameBuffer; private readonly jointBuffer; private readonly materialBuffers; private readonly materialBindGroups; private readonly pipelines; private readonly frameBindGroup; private readonly multisampleTexture; private readonly depthTexture; private destroyed; constructor(device: GPUDevice, initialSpec: CharacterDrawSpec, options: CharacterTextureRendererOptions); private assertCompatible; encode(encoder: GPUCommandEncoder, outputTexture: GPUTexture, spec: CharacterDrawSpec, options?: CharacterTextureRenderEncodeOptions): CharacterTextureRenderReceipt; destroy(): void; } //# sourceMappingURL=CharacterTextureRenderer.d.ts.map