UNPKG

react-native-filament

Version:

A real-time physically based 3D rendering engine for React Native

28 lines (25 loc) 808 B
import { useMemo } from 'react'; import { useWorkletEffect } from './useWorkletEffect'; import { getWorkletDependencies } from 'react-native-worklets-core'; export function useRecorderRenderLoop(recorder, render) { // eslint-disable-next-line react-hooks/exhaustive-deps const memoizedRender = useMemo(() => render, getWorkletDependencies(render)); useWorkletEffect(() => { 'worklet'; let frameCount = 0; const listener = recorder.addOnReadyForMoreDataListener(() => { 'worklet'; const shouldRenderNext = memoizedRender({ frameIndex: frameCount, recorder: recorder }); frameCount++; return shouldRenderNext; }); return () => { 'worklet'; listener.remove(); }; }); } //# sourceMappingURL=useRecorderRenderLoop.js.map