@threlte/xr
Version:
Tools to more easily create VR and AR experiences with Threlte
18 lines (17 loc) • 596 B
JavaScript
import { onDestroy } from 'svelte';
// @ts-expect-error untyped internal import, when have you ever done me wrong?
import { raf } from 'svelte/internal/client';
import { watch } from '@threlte/core';
import { session } from './stores';
export const setupRaf = () => {
if (typeof window === 'undefined')
return;
const originalTick = raf.tick;
watch(session, (session) => {
raf.tick =
session === undefined
? originalTick
: (fn) => session.requestAnimationFrame(fn);
});
onDestroy(() => (raf.tick = originalTick));
};