UNPKG

react-native-filament

Version:

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

39 lines (37 loc) 1.04 kB
import { useMemo } from 'react'; import { useFilamentContext } from './useFilamentContext'; import { FilamentProxy } from '../native/FilamentProxy'; import { useDisposableResource } from './useDisposableResource'; import { useWorkletEffect } from './useWorkletEffect'; import { Logger } from '../utilities/logger/Logger'; export function useRecorder({ width, height, fps, bitRate }) { const { engine, workletContext } = useFilamentContext(); const recorder = useMemo(() => { Logger.debug('Creating recorder JS'); return FilamentProxy.createRecorder(width, height, fps, bitRate); }, [bitRate, fps, height, width]); const swapChain = useDisposableResource(workletContext.createRunAsync(() => { 'worklet'; return engine.createSwapChainForRecorder(recorder); }), [engine, recorder]); useWorkletEffect(() => { 'worklet'; if (swapChain == null) { return; } engine.setSwapChain(swapChain); }); return { recorder, swapChain }; } //# sourceMappingURL=useRecorder.js.map