UNPKG

hpg-r3f-model-scene

Version:

Pretty Footer react component used in ant.design

58 lines (57 loc) 2.35 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = _interopRequireDefault(require("react")); var _events = require("../common/events"); var _enums = require("../utils/enums"); var _fiber = require("@react-three/fiber"); function closeWin() { if (navigator.userAgent.indexOf('Firefox') != -1 || navigator.userAgent.indexOf('Chrome') != -1) { window.location.href = 'about:blank'; window.close(); } else { window.opener = null; window.open('', '_self'); window.close(); } } var ScreenShot = function ScreenShot(_ref) { var onScreenShot = _ref.onScreenShot; var _useThree = (0, _fiber.useThree)(), gl = _useThree.gl, camera = _useThree.camera, scene = _useThree.scene; (0, _events.useEventBus)(_enums.Process.SCREEN_SHOT, /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(params) { var image; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: //其实就是相当于渲染一帧,并把这一帧输出而如果需要截某个部分的图片,只需要将相机变一下,换成自己想要范围,并渲染一帧再截屏出来。 gl.render(scene, camera); image = gl.domElement.toDataURL('image/png'); console.log('ScreenShot', image); onScreenShot === null || onScreenShot === void 0 ? void 0 : onScreenShot(image); if (params === null || params === void 0 ? void 0 : params.isClosePage) { console.log('closePage'); closeWin(); } case 5: case "end": return _context.stop(); } }, _callee); })); return function (_x) { return _ref2.apply(this, arguments); }; }()); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null); }; var _default = ScreenShot; exports.default = _default;