UNPKG

8.77 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.FrameContext = undefined;
7
8var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
9
10var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
11
12var _utils = require('../utils');
13
14var _scope = require('../scope');
15
16var _core = require('../core');
17
18var _defaults2 = require('./defaults');
19
20var _defaults = _interopRequireWildcard(_defaults2);
21
22function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
23
24function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25
26function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
27
28function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
29
30var FrameContext = exports.FrameContext = function (_Component) {
31 _inherits(FrameContext, _Component);
32
33 _createClass(FrameContext, null, [{
34 key: 'defaults',
35 value: function defaults() {
36 return _extends({}, _defaults);
37 }
38 }]);
39
40 function FrameContext(ctx) {
41 var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
42
43 _classCallCheck(this, FrameContext);
44
45 (0, _utils.assignDefaults)(initialState, FrameContext.defaults());
46 return _possibleConstructorReturn(this, (FrameContext.__proto__ || Object.getPrototypeOf(FrameContext)).call(this, ctx, initialState, new _scope.ScopedContext(ctx, {
47 // props
48 regl: function regl() {
49 return ctx ? ctx.regl : null;
50 },
51 gl: function gl() {
52 return ctx ? ctx.gl : null;
53 },
54
55
56 // functions
57 cancel: function cancel(_ref) {
58 var frame = _ref.frame,
59 frames = _ref.frames;
60
61 return function () {
62 if (frame) {
63 frame.cancel();
64 frames.splice(frames.indexOf(frame), 1);
65 }
66 };
67 },
68 clear: function clear(ctx, args) {
69 return function (clear) {
70 ctx.regl.clear(_extends({}, clear || (0, _utils.get)('clear', [args, initialState])));
71 };
72 },
73 cancelAll: function cancelAll(_ref2) {
74 var frames = _ref2.frames,
75 frame = _ref2.frame,
76 loop = _ref2.loop;
77
78 return function () {
79 if (frames) {
80 var _iteratorNormalCompletion = true;
81 var _didIteratorError = false;
82 var _iteratorError = undefined;
83
84 try {
85 for (var _iterator = frames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
86 var f = _step.value;
87 f.cancel();
88 }
89 } catch (err) {
90 _didIteratorError = true;
91 _iteratorError = err;
92 } finally {
93 try {
94 if (!_iteratorNormalCompletion && _iterator.return) {
95 _iterator.return();
96 }
97 } finally {
98 if (_didIteratorError) {
99 throw _iteratorError;
100 }
101 }
102 }
103
104 frames.splice(0, frames.length);
105 }
106 if (loop) {
107 loop.cancel();
108 loop = null;
109 }
110 };
111 }
112 })));
113 }
114
115 return FrameContext;
116}(_core.Component);
117//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcmFtZS9jb250ZXh0LmpzIl0sIm5hbWVzIjpbImRlZmF1bHRzIiwiRnJhbWVDb250ZXh0IiwiY3R4IiwiaW5pdGlhbFN0YXRlIiwicmVnbCIsImdsIiwiY2FuY2VsIiwiZnJhbWUiLCJmcmFtZXMiLCJzcGxpY2UiLCJpbmRleE9mIiwiY2xlYXIiLCJhcmdzIiwiY2FuY2VsQWxsIiwibG9vcCIsImYiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0lBQVlBLFM7Ozs7Ozs7Ozs7SUFFQ0MsWSxXQUFBQSxZOzs7OzsrQkFDTztBQUFFLDBCQUFZRCxTQUFaO0FBQXdCOzs7QUFDNUMsd0JBQVlFLEdBQVosRUFBb0M7QUFBQSxRQUFuQkMsWUFBbUIsdUVBQUosRUFBSTs7QUFBQTs7QUFDbEMsK0JBQWVBLFlBQWYsRUFBNkJGLGFBQWFELFFBQWIsRUFBN0I7QUFEa0MsdUhBRTVCRSxHQUY0QixFQUV2QkMsWUFGdUIsRUFHaEMseUJBQWtCRCxHQUFsQixFQUF1QjtBQUNyQjtBQUNBRSxVQUZxQixrQkFFZDtBQUFFLGVBQU9GLE1BQU1BLElBQUlFLElBQVYsR0FBaUIsSUFBeEI7QUFBOEIsT0FGbEI7QUFHckJDLFFBSHFCLGdCQUdoQjtBQUFFLGVBQU9ILE1BQU1BLElBQUlHLEVBQVYsR0FBZSxJQUF0QjtBQUE0QixPQUhkOzs7QUFLckI7QUFDQUMsWUFOcUIsd0JBTUc7QUFBQSxZQUFoQkMsS0FBZ0IsUUFBaEJBLEtBQWdCO0FBQUEsWUFBVEMsTUFBUyxRQUFUQSxNQUFTOztBQUN0QixlQUFPLFlBQU07QUFDWCxjQUFJRCxLQUFKLEVBQVc7QUFDVEEsa0JBQU1ELE1BQU47QUFDQUUsbUJBQU9DLE1BQVAsQ0FBY0QsT0FBT0UsT0FBUCxDQUFlSCxLQUFmLENBQWQsRUFBcUMsQ0FBckM7QUFDRDtBQUNGLFNBTEQ7QUFNRCxPQWJvQjtBQWVyQkksV0FmcUIsaUJBZWZULEdBZmUsRUFlVlUsSUFmVSxFQWVKO0FBQ2YsZUFBTyxVQUFDRCxLQUFELEVBQVc7QUFDaEJULGNBQUlFLElBQUosQ0FBU08sS0FBVCxjQUNNQSxTQUFTLGdCQUFJLE9BQUosRUFBYSxDQUFDQyxJQUFELEVBQU9ULFlBQVAsQ0FBYixDQURmO0FBR0QsU0FKRDtBQUtELE9BckJvQjtBQXVCckJVLGVBdkJxQiw0QkF1Qlk7QUFBQSxZQUF0QkwsTUFBc0IsU0FBdEJBLE1BQXNCO0FBQUEsWUFBZEQsS0FBYyxTQUFkQSxLQUFjO0FBQUEsWUFBUE8sSUFBTyxTQUFQQSxJQUFPOztBQUMvQixlQUFPLFlBQU07QUFDWCxjQUFJTixNQUFKLEVBQVk7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFDVixtQ0FBZ0JBLE1BQWhCLDhIQUF3QjtBQUFBLG9CQUFiTyxDQUFhO0FBQUVBLGtCQUFFVCxNQUFGO0FBQVk7QUFENUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFVkUsbUJBQU9DLE1BQVAsQ0FBYyxDQUFkLEVBQWlCRCxPQUFPUSxNQUF4QjtBQUNEO0FBQ0QsY0FBSUYsSUFBSixFQUFVO0FBQ1JBLGlCQUFLUixNQUFMO0FBQ0FRLG1CQUFPLElBQVA7QUFDRDtBQUNGLFNBVEQ7QUFVRDtBQWxDb0IsS0FBdkIsQ0FIZ0M7QUF3Q25DIiwiZmlsZSI6ImNvbnRleHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NpZ25EZWZhdWx0cywgZ2V0IH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBTY29wZWRDb250ZXh0IH0gZnJvbSAnLi4vc2NvcGUnXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlJ1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSAnLi9kZWZhdWx0cydcblxuZXhwb3J0IGNsYXNzIEZyYW1lQ29udGV4dCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0cygpIHsgcmV0dXJuIHsgLi4uZGVmYXVsdHMgfSB9XG4gIGNvbnN0cnVjdG9yKGN0eCwgaW5pdGlhbFN0YXRlID0ge30pIHtcbiAgICBhc3NpZ25EZWZhdWx0cyhpbml0aWFsU3RhdGUsIEZyYW1lQ29udGV4dC5kZWZhdWx0cygpKVxuICAgIHN1cGVyKGN0eCwgaW5pdGlhbFN0YXRlLFxuICAgICAgbmV3IFNjb3BlZENvbnRleHQoY3R4LCB7XG4gICAgICAgIC8vIHByb3BzXG4gICAgICAgIHJlZ2woKSB7IHJldHVybiBjdHggPyBjdHgucmVnbCA6IG51bGwgfSxcbiAgICAgICAgZ2woKSB7IHJldHVybiBjdHggPyBjdHguZ2wgOiBudWxsIH0sXG5cbiAgICAgICAgLy8gZnVuY3Rpb25zXG4gICAgICAgIGNhbmNlbCh7ZnJhbWUsIGZyYW1lc30pIHtcbiAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZyYW1lKSB7XG4gICAgICAgICAgICAgIGZyYW1lLmNhbmNlbCgpXG4gICAgICAgICAgICAgIGZyYW1lcy5zcGxpY2UoZnJhbWVzLmluZGV4T2YoZnJhbWUpLCAxKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBjbGVhcihjdHgsIGFyZ3MpIHtcbiAgICAgICAgICByZXR1cm4gKGNsZWFyKSA9PiB7XG4gICAgICAgICAgICBjdHgucmVnbC5jbGVhcih7XG4gICAgICAgICAgICAgIC4uLihjbGVhciB8fCBnZXQoJ2NsZWFyJywgW2FyZ3MsIGluaXRpYWxTdGF0ZV0pKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2FuY2VsQWxsKHtmcmFtZXMsIGZyYW1lLCBsb29wfSkge1xuICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZnJhbWVzKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgZiBvZiBmcmFtZXMpIHsgZi5jYW5jZWwoKSB9XG4gICAgICAgICAgICAgIGZyYW1lcy5zcGxpY2UoMCwgZnJhbWVzLmxlbmd0aClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsb29wKSB7XG4gICAgICAgICAgICAgIGxvb3AuY2FuY2VsKClcbiAgICAgICAgICAgICAgbG9vcCA9IG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG5cbiJdfQ==
\No newline at end of file