UNPKG

@motion-core/motion-gpu

Version:

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

33 lines (32 loc) 1.04 kB
import { createPointerController } from "../core/pointer.js"; import { useMotionGPU } from "./motiongpu-context.js"; import { watchPointerOptions } from "./pointer-options.svelte.js"; import { onMount } from "svelte"; //#region src/lib/svelte/use-pointer.ts function resolveOptions(source) { return typeof source === "function" ? source() : source; } /** * Tracks normalized pointer coordinates and click/tap snapshots for the active `FragCanvas`. */ function usePointer(options = {}) { const motiongpu = useMotionGPU(); const controller = createPointerController({ getRenderMode: () => motiongpu.renderMode.current, invalidate: motiongpu.invalidate, advance: motiongpu.advance }, resolveOptions(options)); watchPointerOptions(() => { controller.updateOptions(resolveOptions(options)); }); onMount(() => { const canvas = motiongpu.canvas; if (!canvas) return; controller.mount(canvas); return controller.destroy; }); return controller; } //#endregion export { usePointer }; //# sourceMappingURL=use-pointer.js.map