UNPKG

6.34 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.FrameBuffer = 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
18function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19
20function _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; }
21
22function _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; }
23
24var FrameBuffer = exports.FrameBuffer = function (_Component) {
25 _inherits(FrameBuffer, _Component);
26
27 _createClass(FrameBuffer, null, [{
28 key: 'defaults',
29 value: function defaults() {
30 return { depth: true };
31 }
32 }]);
33
34 function FrameBuffer(ctx) {
35 var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
36
37 _classCallCheck(this, FrameBuffer);
38
39 (0, _utils.assignDefaults)(initialState, FrameBuffer.defaults());
40 var getContext = new _scope.ScopedContext(ctx);
41 var fbo = ctx.regl.framebuffer(_extends({}, initialState));
42 var framebuffer = ctx.regl({ framebuffer: fbo });
43 return _possibleConstructorReturn(this, (FrameBuffer.__proto__ || Object.getPrototypeOf(FrameBuffer)).call(this, ctx, initialState, new _scope.ScopedContext(ctx, {
44 framebufferPointer: function framebufferPointer() {
45 return framebuffer;
46 }
47 }), function (state, block) {
48 getContext(function (_ref) {
49 var texturePointer = _ref.texturePointer,
50 viewportWidth = _ref.viewportWidth,
51 viewportHeight = _ref.viewportHeight;
52
53 texturePointer({
54 width: viewportWidth,
55 height: viewportHeight,
56 wrap: 'clamp'
57 });
58 fbo({ color: texturePointer });
59 fbo.resize(viewportWidth, viewportHeight);
60 framebuffer(block);
61 });
62 }));
63 }
64
65 return FrameBuffer;
66}(_core.Component);
67//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcmFtZWJ1ZmZlci9mcmFtZWJ1ZmZlci5qcyJdLCJuYW1lcyI6WyJGcmFtZUJ1ZmZlciIsImRlcHRoIiwiY3R4IiwiaW5pdGlhbFN0YXRlIiwiZGVmYXVsdHMiLCJnZXRDb250ZXh0IiwiZmJvIiwicmVnbCIsImZyYW1lYnVmZmVyIiwiZnJhbWVidWZmZXJQb2ludGVyIiwic3RhdGUiLCJibG9jayIsInRleHR1cmVQb2ludGVyIiwidmlld3BvcnRXaWR0aCIsInZpZXdwb3J0SGVpZ2h0Iiwid2lkdGgiLCJoZWlnaHQiLCJ3cmFwIiwiY29sb3IiLCJyZXNpemUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0lBRWFBLFcsV0FBQUEsVzs7Ozs7K0JBQ087QUFBRSxhQUFPLEVBQUVDLE9BQU8sSUFBVCxFQUFQO0FBQXdCOzs7QUFDNUMsdUJBQVlDLEdBQVosRUFBb0M7QUFBQSxRQUFuQkMsWUFBbUIsdUVBQUosRUFBSTs7QUFBQTs7QUFDbEMsK0JBQWVBLFlBQWYsRUFBNkJILFlBQVlJLFFBQVosRUFBN0I7QUFDQSxRQUFNQyxhQUFhLHlCQUFrQkgsR0FBbEIsQ0FBbkI7QUFDQSxRQUFNSSxNQUFNSixJQUFJSyxJQUFKLENBQVNDLFdBQVQsY0FBMEJMLFlBQTFCLEVBQVo7QUFDQSxRQUFNSyxjQUFjTixJQUFJSyxJQUFKLENBQVMsRUFBRUMsYUFBYUYsR0FBZixFQUFULENBQXBCO0FBSmtDLHFIQUs1QkosR0FMNEIsRUFNaENDLFlBTmdDLEVBT2hDLHlCQUFrQkQsR0FBbEIsRUFBdUI7QUFDckJPLHdCQURxQixnQ0FDQTtBQUFFLGVBQU9ELFdBQVA7QUFBb0I7QUFEdEIsS0FBdkIsQ0FQZ0MsRUFVaEMsVUFBQ0UsS0FBRCxFQUFRQyxLQUFSLEVBQWtCO0FBQ2hCTixpQkFBVyxnQkFBcUQ7QUFBQSxZQUFuRE8sY0FBbUQsUUFBbkRBLGNBQW1EO0FBQUEsWUFBbkNDLGFBQW1DLFFBQW5DQSxhQUFtQztBQUFBLFlBQXBCQyxjQUFvQixRQUFwQkEsY0FBb0I7O0FBQzlERix1QkFBZTtBQUNiRyxpQkFBT0YsYUFETTtBQUViRyxrQkFBUUYsY0FGSztBQUdiRyxnQkFBTTtBQUhPLFNBQWY7QUFLQVgsWUFBSSxFQUFDWSxPQUFPTixjQUFSLEVBQUo7QUFDQU4sWUFBSWEsTUFBSixDQUFXTixhQUFYLEVBQTBCQyxjQUExQjtBQUNBTixvQkFBWUcsS0FBWjtBQUNELE9BVEQ7QUFVRCxLQXJCK0I7QUFzQm5DIiwiZmlsZSI6ImZyYW1lYnVmZmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzaWduRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IFNjb3BlZENvbnRleHQgfSBmcm9tICcuLi9zY29wZSdcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUnXG5cbmV4cG9ydCBjbGFzcyBGcmFtZUJ1ZmZlciBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0cygpIHsgcmV0dXJuIHsgZGVwdGg6IHRydWUgfSB9XG4gIGNvbnN0cnVjdG9yKGN0eCwgaW5pdGlhbFN0YXRlID0ge30pIHtcbiAgICBhc3NpZ25EZWZhdWx0cyhpbml0aWFsU3RhdGUsIEZyYW1lQnVmZmVyLmRlZmF1bHRzKCkpXG4gICAgY29uc3QgZ2V0Q29udGV4dCA9IG5ldyBTY29wZWRDb250ZXh0KGN0eClcbiAgICBjb25zdCBmYm8gPSBjdHgucmVnbC5mcmFtZWJ1ZmZlcih7IC4uLmluaXRpYWxTdGF0ZSB9KVxuICAgIGNvbnN0IGZyYW1lYnVmZmVyID0gY3R4LnJlZ2woeyBmcmFtZWJ1ZmZlcjogZmJvfSlcbiAgICBzdXBlcihjdHgsXG4gICAgICBpbml0aWFsU3RhdGUsXG4gICAgICBuZXcgU2NvcGVkQ29udGV4dChjdHgsIHtcbiAgICAgICAgZnJhbWVidWZmZXJQb2ludGVyKCkgeyByZXR1cm4gZnJhbWVidWZmZXIgfVxuICAgICAgfSksXG4gICAgICAoc3RhdGUsIGJsb2NrKSA9PiB7XG4gICAgICAgIGdldENvbnRleHQoKHt0ZXh0dXJlUG9pbnRlciwgdmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHR9KSA9PiB7XG4gICAgICAgICAgdGV4dHVyZVBvaW50ZXIoe1xuICAgICAgICAgICAgd2lkdGg6IHZpZXdwb3J0V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHZpZXdwb3J0SGVpZ2h0LFxuICAgICAgICAgICAgd3JhcDogJ2NsYW1wJ1xuICAgICAgICAgIH0pXG4gICAgICAgICAgZmJvKHtjb2xvcjogdGV4dHVyZVBvaW50ZXJ9KVxuICAgICAgICAgIGZiby5yZXNpemUodmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQpXG4gICAgICAgICAgZnJhbWVidWZmZXIoYmxvY2spXG4gICAgICAgIH0pXG4gICAgICB9KVxuICB9XG59XG4iXX0=
\No newline at end of file