UNPKG

react-native-filament

Version:

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

39 lines (37 loc) 1.03 kB
import { useMemo } from 'react'; import { useFilamentContext } from '../react/Context'; import { FilamentProxy } from '../native/FilamentProxy'; import { useDisposableResource } from './useDisposableResource'; import { useWorkletEffect } from './useWorkletEffect'; export function useRecorder({ width, height, fps, bitRate }) { const { engine, workletContext } = useFilamentContext(); const recorder = useMemo(() => { console.log('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; } console.log('JS setting swapchain'); engine.setSwapChain(swapChain); }); return { recorder, swapChain }; } //# sourceMappingURL=useRecorder.js.map