@motion-core/motion-gpu
Version:
Framework-agnostic WebGPU runtime for fullscreen WGSL shaders with explicit Svelte, React, and Vue adapter entrypoints.
69 lines • 2.07 kB
TypeScript
import type { AnyPass, RenderPassInputSlot, RenderPassOutputSlot } from './types.js';
/**
* Resolved render-pass step with defaults applied.
*/
export interface RenderGraphStep {
/**
* Step kind. 'render' for post-scene render passes, 'compute' for pre-scene compute passes.
*/
kind: 'render' | 'compute';
/**
* User pass instance.
*/
pass: AnyPass;
/**
* Resolved input slot. Ignored for compute steps.
*/
input: RenderPassInputSlot;
/**
* Resolved output slot. Ignored for compute steps.
*/
output: RenderPassOutputSlot;
/**
* Whether ping-pong swap should be performed after render.
*/
needsSwap: boolean;
/**
* Whether pass should clear output before drawing.
*/
clear: boolean;
/**
* Effective clear color.
*/
clearColor: [number, number, number, number];
/**
* Whether output should be preserved after pass ends.
*/
preserve: boolean;
}
/**
* Immutable render-graph execution plan for one frame.
*/
export interface RenderGraphPlan {
/**
* Resolved enabled steps in declaration order.
*/
steps: RenderGraphStep[];
/**
* Enabled compute steps. These always execute before the base scene render.
*/
computeSteps: RenderGraphStep[];
/**
* Enabled render steps. These always execute after the base scene render.
*/
renderSteps: RenderGraphStep[];
/**
* Output slot holding final post-scene render result before presentation.
* Remains 'canvas' when there are no render steps.
*/
finalOutput: RenderPassOutputSlot;
}
/**
* Builds validated render graph plan from runtime pass list.
*
* @param passes - Runtime passes.
* @param defaultClearColor - Global clear color fallback.
* @returns Resolved render graph plan.
*/
export declare function planRenderGraph(passes: AnyPass[] | undefined, defaultClearColor: [number, number, number, number], renderTargetSlots?: Iterable<string>): RenderGraphPlan;
//# sourceMappingURL=render-graph.d.ts.map