UNPKG

react-native-filament

Version:

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

45 lines (42 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRecorder = useRecorder; var _react = require("react"); var _useFilamentContext = require("./useFilamentContext"); var _FilamentProxy = require("../native/FilamentProxy"); var _useDisposableResource = require("./useDisposableResource"); var _useWorkletEffect = require("./useWorkletEffect"); var _Logger = require("../utilities/logger/Logger"); function useRecorder({ width, height, fps, bitRate }) { const { engine, workletContext } = (0, _useFilamentContext.useFilamentContext)(); const recorder = (0, _react.useMemo)(() => { _Logger.Logger.debug('Creating recorder JS'); return _FilamentProxy.FilamentProxy.createRecorder(width, height, fps, bitRate); }, [bitRate, fps, height, width]); const swapChain = (0, _useDisposableResource.useDisposableResource)(workletContext.createRunAsync(() => { 'worklet'; return engine.createSwapChainForRecorder(recorder); }), [engine, recorder]); (0, _useWorkletEffect.useWorkletEffect)(() => { 'worklet'; if (swapChain == null) { return; } engine.setSwapChain(swapChain); }); return { recorder, swapChain }; } //# sourceMappingURL=useRecorder.js.map