UNPKG

7.66 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 var previousWidth = 0;
44 var previousHeight = 0;
45 return _possibleConstructorReturn(this, (FrameBuffer.__proto__ || Object.getPrototypeOf(FrameBuffer)).call(this, ctx, initialState, new _scope.ScopedContext(ctx, {
46 framebufferPointer: function framebufferPointer() {
47 return framebuffer;
48 }
49 }), function (state, block) {
50 getContext(function (_ref) {
51 var texturePointer = _ref.texturePointer,
52 viewportWidth = _ref.viewportWidth,
53 viewportHeight = _ref.viewportHeight;
54
55 var width = state.width || viewportWidth;
56 var height = state.height || viewportHeight;
57 if (texturePointer) {
58 texturePointer(_extends({
59 width: width, height: height,
60 wrap: 'clamp', min: 'linear', mag: 'linear' }, state.texture));
61 fbo({ color: texturePointer });
62 }
63
64 if (previousWidth != width || previousHeight != height) {
65 previousWidth = width;
66 previousHeight = height;
67 fbo.resize(width, height);
68 }
69
70 framebuffer(block);
71 });
72 }));
73 }
74
75 return FrameBuffer;
76}(_core.Component);
77//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcmFtZWJ1ZmZlci9mcmFtZWJ1ZmZlci5qcyJdLCJuYW1lcyI6WyJGcmFtZUJ1ZmZlciIsImRlcHRoIiwiY3R4IiwiaW5pdGlhbFN0YXRlIiwiZGVmYXVsdHMiLCJnZXRDb250ZXh0IiwiZmJvIiwicmVnbCIsImZyYW1lYnVmZmVyIiwicHJldmlvdXNXaWR0aCIsInByZXZpb3VzSGVpZ2h0IiwiZnJhbWVidWZmZXJQb2ludGVyIiwic3RhdGUiLCJibG9jayIsInRleHR1cmVQb2ludGVyIiwidmlld3BvcnRXaWR0aCIsInZpZXdwb3J0SGVpZ2h0Iiwid2lkdGgiLCJoZWlnaHQiLCJ3cmFwIiwibWluIiwibWFnIiwidGV4dHVyZSIsImNvbG9yIiwicmVzaXplIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7Ozs7OztJQUVhQSxXLFdBQUFBLFc7Ozs7OytCQUNPO0FBQUUsYUFBTyxFQUFFQyxPQUFPLElBQVQsRUFBUDtBQUF3Qjs7O0FBQzVDLHVCQUFZQyxHQUFaLEVBQW9DO0FBQUEsUUFBbkJDLFlBQW1CLHVFQUFKLEVBQUk7O0FBQUE7O0FBQ2xDLCtCQUFlQSxZQUFmLEVBQTZCSCxZQUFZSSxRQUFaLEVBQTdCO0FBQ0EsUUFBTUMsYUFBYSx5QkFBa0JILEdBQWxCLENBQW5CO0FBQ0EsUUFBTUksTUFBTUosSUFBSUssSUFBSixDQUFTQyxXQUFULGNBQTBCTCxZQUExQixFQUFaO0FBQ0EsUUFBTUssY0FBY04sSUFBSUssSUFBSixDQUFTLEVBQUVDLGFBQWFGLEdBQWYsRUFBVCxDQUFwQjtBQUNBLFFBQUlHLGdCQUFnQixDQUFwQjtBQUNBLFFBQUlDLGlCQUFpQixDQUFyQjtBQU5rQyxxSEFPNUJSLEdBUDRCLEVBUWhDQyxZQVJnQyxFQVNoQyx5QkFBa0JELEdBQWxCLEVBQXVCO0FBQ3JCUyx3QkFEcUIsZ0NBQ0E7QUFBRSxlQUFPSCxXQUFQO0FBQW9CO0FBRHRCLEtBQXZCLENBVGdDLEVBWWhDLFVBQUNJLEtBQUQsRUFBUUMsS0FBUixFQUFrQjtBQUNoQlIsaUJBQVcsZ0JBQXFEO0FBQUEsWUFBbkRTLGNBQW1ELFFBQW5EQSxjQUFtRDtBQUFBLFlBQW5DQyxhQUFtQyxRQUFuQ0EsYUFBbUM7QUFBQSxZQUFwQkMsY0FBb0IsUUFBcEJBLGNBQW9COztBQUM5RCxZQUFNQyxRQUFRTCxNQUFNSyxLQUFOLElBQWVGLGFBQTdCO0FBQ0EsWUFBTUcsU0FBU04sTUFBTU0sTUFBTixJQUFnQkYsY0FBL0I7QUFDQSxZQUFJRixjQUFKLEVBQW9CO0FBQ2xCQTtBQUNFRyx3QkFERixFQUNTQyxjQURUO0FBRUVDLGtCQUFNLE9BRlIsRUFFaUJDLEtBQUssUUFGdEIsRUFFZ0NDLEtBQUssUUFGckMsSUFFa0RULE1BQU1VLE9BRnhEO0FBSUFoQixjQUFJLEVBQUNpQixPQUFPVCxjQUFSLEVBQUo7QUFDRDs7QUFFRCxZQUFJTCxpQkFBaUJRLEtBQWpCLElBQTBCUCxrQkFBa0JRLE1BQWhELEVBQXdEO0FBQ3REVCwwQkFBZ0JRLEtBQWhCO0FBQ0FQLDJCQUFpQlEsTUFBakI7QUFDQVosY0FBSWtCLE1BQUosQ0FBV1AsS0FBWCxFQUFrQkMsTUFBbEI7QUFDRDs7QUFFRFYsb0JBQVlLLEtBQVo7QUFDRCxPQWxCRDtBQW1CRCxLQWhDK0I7QUFpQ25DIiwiZmlsZSI6ImZyYW1lYnVmZmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzaWduRGVmYXVsdHMgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IFNjb3BlZENvbnRleHQgfSBmcm9tICcuLi9zY29wZSdcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUnXG5cbmV4cG9ydCBjbGFzcyBGcmFtZUJ1ZmZlciBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0cygpIHsgcmV0dXJuIHsgZGVwdGg6IHRydWUgfSB9XG4gIGNvbnN0cnVjdG9yKGN0eCwgaW5pdGlhbFN0YXRlID0ge30pIHtcbiAgICBhc3NpZ25EZWZhdWx0cyhpbml0aWFsU3RhdGUsIEZyYW1lQnVmZmVyLmRlZmF1bHRzKCkpXG4gICAgY29uc3QgZ2V0Q29udGV4dCA9IG5ldyBTY29wZWRDb250ZXh0KGN0eClcbiAgICBjb25zdCBmYm8gPSBjdHgucmVnbC5mcmFtZWJ1ZmZlcih7IC4uLmluaXRpYWxTdGF0ZSB9KVxuICAgIGNvbnN0IGZyYW1lYnVmZmVyID0gY3R4LnJlZ2woeyBmcmFtZWJ1ZmZlcjogZmJvfSlcbiAgICBsZXQgcHJldmlvdXNXaWR0aCA9IDBcbiAgICBsZXQgcHJldmlvdXNIZWlnaHQgPSAwXG4gICAgc3VwZXIoY3R4LFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgbmV3IFNjb3BlZENvbnRleHQoY3R4LCB7XG4gICAgICAgIGZyYW1lYnVmZmVyUG9pbnRlcigpIHsgcmV0dXJuIGZyYW1lYnVmZmVyIH1cbiAgICAgIH0pLFxuICAgICAgKHN0YXRlLCBibG9jaykgPT4ge1xuICAgICAgICBnZXRDb250ZXh0KCh7dGV4dHVyZVBvaW50ZXIsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0fSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gc3RhdGUud2lkdGggfHwgdmlld3BvcnRXaWR0aFxuICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHN0YXRlLmhlaWdodCB8fCB2aWV3cG9ydEhlaWdodFxuICAgICAgICAgIGlmICh0ZXh0dXJlUG9pbnRlcikge1xuICAgICAgICAgICAgdGV4dHVyZVBvaW50ZXIoe1xuICAgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LFxuICAgICAgICAgICAgICB3cmFwOiAnY2xhbXAnLCBtaW46ICdsaW5lYXInLCBtYWc6ICdsaW5lYXInLCAuLi5zdGF0ZS50ZXh0dXJlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgZmJvKHtjb2xvcjogdGV4dHVyZVBvaW50ZXJ9KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwcmV2aW91c1dpZHRoICE9IHdpZHRoIHx8IHByZXZpb3VzSGVpZ2h0ICE9IGhlaWdodCkge1xuICAgICAgICAgICAgcHJldmlvdXNXaWR0aCA9IHdpZHRoXG4gICAgICAgICAgICBwcmV2aW91c0hlaWdodCA9IGhlaWdodFxuICAgICAgICAgICAgZmJvLnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGZyYW1lYnVmZmVyKGJsb2NrKVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgfVxufVxuIl19
\No newline at end of file