UNPKG

react-native-filament

Version:

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

34 lines (30 loc) 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRecorderRenderLoop = useRecorderRenderLoop; var _react = require("react"); var _useWorkletEffect = require("./useWorkletEffect"); var _reactNativeWorkletsCore = require("react-native-worklets-core"); function useRecorderRenderLoop(recorder, render) { // eslint-disable-next-line react-hooks/exhaustive-deps const memoizedRender = (0, _react.useMemo)(() => render, (0, _reactNativeWorkletsCore.getWorkletDependencies)(render)); (0, _useWorkletEffect.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