@motion-core/motion-gpu
Version:
Framework-agnostic WebGPU runtime for fullscreen WGSL shaders with explicit Svelte, React, and Vue adapter entrypoints.
49 lines • 2.04 kB
TypeScript
import type { FrameProfilingSnapshot, FrameRegistry, FrameRunTimings, FrameScheduleSnapshot } from './frame-registry.js';
/**
* Public scheduler control surface shared by framework adapters.
*/
export type MotionGPUScheduler = Pick<FrameRegistry, 'createStage' | 'getStage' | 'setDiagnosticsEnabled' | 'getDiagnosticsEnabled' | 'getLastRunTimings' | 'getSchedule' | 'setProfilingEnabled' | 'setProfilingWindow' | 'resetProfiling' | 'getProfilingEnabled' | 'getProfilingWindow' | 'getProfilingSnapshot'>;
/**
* Named scheduler presets exposed from advanced entrypoints.
*/
export type SchedulerPreset = 'balanced' | 'debug' | 'performance';
/**
* Resolved scheduler timing configuration.
*
* Note: diagnostics and profiling currently share one internal toggle in the frame registry.
*/
export interface SchedulerPresetConfig {
diagnosticsEnabled: boolean;
profilingEnabled: boolean;
profilingWindow: number;
}
/**
* Optional overrides applied on top of a named scheduler preset.
*/
export interface ApplySchedulerPresetOptions {
diagnosticsEnabled?: boolean;
profilingEnabled?: boolean;
profilingWindow?: number;
}
/**
* Snapshot payload useful for scheduler diagnostics UIs and debug tooling.
*/
export interface SchedulerDebugSnapshot {
diagnosticsEnabled: boolean;
profilingEnabled: boolean;
profilingWindow: number;
schedule: FrameScheduleSnapshot;
lastRunTimings: FrameRunTimings | null;
profilingSnapshot: FrameProfilingSnapshot | null;
}
/**
* Applies a named scheduler preset to the runtime scheduler instance.
*
* Returns resolved values after overrides for easy logging/telemetry.
*/
export declare function applySchedulerPreset(scheduler: MotionGPUScheduler, preset: SchedulerPreset, options?: ApplySchedulerPresetOptions): SchedulerPresetConfig;
/**
* Captures an aggregate scheduler diagnostics snapshot.
*/
export declare function captureSchedulerDebugSnapshot(scheduler: MotionGPUScheduler): SchedulerDebugSnapshot;
//# sourceMappingURL=scheduler-helpers.d.ts.map