UNPKG

web3d

Version:

MetaEditor — ReactJS Pixel Streaming library, helps integrate Unreal Engine v.5 in the browser. Allows you to send commands and get callbacks from the stream server with launched Unreal Engine.

1 lines 1.13 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=useResolution;var _react=_interopRequireDefault(require("react")),_hooks=require("../../../hooks/"),_client=_interopRequireDefault(require("../../../client/"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function useResolution({state:a,dispatch:b}){const c=(0,_hooks.useWindowSize)(),d=_react.default.useRef(null);_react.default.useEffect(()=>{a.active&&(a.window_size.width!==c.width||a.window_size.height!==c.height)&&(b({window_size:c}),e(a.resolution_multiplier))},[a.active,c]),_react.default.useEffect(()=>()=>{clearTimeout(d.current)},[]);const e=a=>{const{width:b,height:c}=resizeResolution(window.innerWidth,window.innerHeight,max_size.width,max_size.height,a);clearTimeout(d.current),d.current=setTimeout(()=>{_client.default.emitAsync({command:"resolution_change",request:{body:{width:b,height:c}},verification_id:void 0})},1e3)};return{resize:e}}const max_size={width:2388,height:1428};function resizeResolution(a,b,c,d,e=1){return a*=e,b*=e,a>c||b>d?max_size:{width:Math.round(a),height:Math.round(b)}}