UNPKG

@motion-core/motion-gpu

Version:

Framework-agnostic WebGPU runtime for fullscreen WGSL shaders with explicit Svelte, React, and Vue adapter entrypoints.

36 lines 1.72 kB
/// <reference types="@webgpu/types" /> import type { CurrentReadable, CurrentWritable } from './current-value.js'; import { type FragMaterial } from './material.js'; import { type MotionGPUErrorReport } from './error-report.js'; import type { FrameRegistry } from './frame-registry.js'; import type { AnyPass, ColorPipelineOptions, FrameInvalidationToken, RenderTargetDefinitionMap } from './types.js'; export interface MotionGPURuntimeLoopOptions { canvas: HTMLCanvasElement; registry: FrameRegistry; size: CurrentWritable<{ width: number; height: number; }>; dpr: CurrentReadable<number>; maxDelta: CurrentReadable<number>; getMaterial: () => FragMaterial; getRenderTargets: () => RenderTargetDefinitionMap; getPasses: () => AnyPass[]; getClearColor: () => [number, number, number, number]; getColor?: () => ColorPipelineOptions | undefined; getAdapterOptions: () => GPURequestAdapterOptions | undefined; getDeviceDescriptor: () => GPUDeviceDescriptor | undefined; getOnError: () => ((report: MotionGPUErrorReport) => void) | undefined; reportError: (report: MotionGPUErrorReport | null) => void; getErrorHistoryLimit?: () => number | undefined; getOnErrorHistory?: () => ((history: MotionGPUErrorReport[]) => void) | undefined; reportErrorHistory?: (history: MotionGPUErrorReport[]) => void; } export interface MotionGPURuntimeLoop { requestFrame: () => void; invalidate: (token?: FrameInvalidationToken) => void; advance: () => void; destroy: () => void; } export declare function createMotionGPURuntimeLoop(options: MotionGPURuntimeLoopOptions): MotionGPURuntimeLoop; //# sourceMappingURL=runtime-loop.d.ts.map