import type { GlRenderState, GlRenderTarget, Matrix, RenderProxy2D, RenderTargetAxes, RenderTargetColorSpace, RenderTargetDescriptor, RenderTargetExplanation, RenderTargetFormat, RenderTargetFormatPolicy } from '@flighthq/types/contract'; /** * Allocates a render target realizing `descriptor`'s axes (format, MSAA sampleCount, MRT * colorAttachments, depth). The framebuffer is bound during creation but the previous binding is * restored before returning. */ export declare function createGlRenderTarget(state: GlRenderState, descriptor: Readonly): GlRenderTarget; export declare function createGlRenderTarget(state: GlRenderState, descriptor: Readonly, formatPolicy: 'preferred'): GlRenderTarget; export declare function createGlRenderTarget(state: GlRenderState, descriptor: Readonly, formatPolicy: 'required'): GlRenderTarget | null; export declare function createGlRenderTarget(state: GlRenderState, descriptor: Readonly, formatPolicy: RenderTargetFormatPolicy): GlRenderTarget | null; export declare function declareGlRenderTargetColorSpace(state: GlRenderState, colorSpace: RenderTargetColorSpace): boolean; /** Deletes the GL resources owned by `target`. The target object must not be used after this call. */ export declare function destroyGlRenderTarget(state: GlRenderState, target: GlRenderTarget): void; /** * Composites `target`'s texture onto the current framebuffer as a positioned quad, using * `renderProxy`'s world transform and alpha. `transform` maps the target's pixel space into the * node's local space (as produced by `computeRenderCacheTransform`). * * Render-target textures are stored with GL's bottom-left origin, so the quad's V coordinates are * flipped (`v0=1, v1=0`) so the result composites upright. */ export declare function drawGlRenderTargetResult(state: GlRenderState, renderProxy: RenderProxy2D, target: Readonly, transform: Readonly): void; export declare function explainGlRenderTarget(target: Readonly): RenderTargetExplanation; export declare function isGlRenderTargetFormatSupported(state: GlRenderState, format: RenderTargetFormat): boolean; /** Reallocates the storage backing `target` to the new pixel dimensions, preserving its axes. */ export declare function resizeGlRenderTarget(state: GlRenderState, target: GlRenderTarget, width: number, height: number): void; /** * Resolves an MSAA target's multisample framebuffer into its single-sample resolve texture(s) via * blitFramebuffer. No-op when sampleCount === 1. Call after the scene is drawn into the target and * before sampling `target.texture`/`target.textures`. */ export declare function resolveGlRenderTarget(state: GlRenderState, target: GlRenderTarget): void; export declare function resolveGlRenderTargetAxes(state: GlRenderState, descriptor: Readonly): RenderTargetAxes; export declare function resolveGlRenderTargetAxes(state: GlRenderState, descriptor: Readonly, formatPolicy: 'preferred'): RenderTargetAxes; export declare function resolveGlRenderTargetAxes(state: GlRenderState, descriptor: Readonly, formatPolicy: 'required'): RenderTargetAxes | null; export declare function resolveGlRenderTargetAxes(state: GlRenderState, descriptor: Readonly, formatPolicy: RenderTargetFormatPolicy): RenderTargetAxes | null; //# sourceMappingURL=glRenderTarget.d.ts.map