@luma.gl/effects
Version:
Rendering and post-processing effects library for luma.gl
125 lines (103 loc) • 3.94 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _core = require("@luma.gl/core");
var OutlinePass = function (_Pass) {
(0, _inherits2["default"])(OutlinePass, _Pass);
function OutlinePass(gl) {
var _this;
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
(0, _classCallCheck2["default"])(this, OutlinePass);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(OutlinePass).call(this, gl, Object.assign({
id: 'simple-outline-pass'
}, props)));
_this.setProps(props);
return _this;
}
(0, _createClass2["default"])(OutlinePass, [{
key: "setProps",
value: function setProps(props) {
this.props = Object.assign(this.props, props);
}
}, {
key: "_renderPass",
value: function _renderPass(_ref) {
var _this2 = this;
var gl = _ref.gl,
animationProps = _ref.animationProps;
(0, _core.withParameters)(gl, {
stencilTest: true,
stencilOp: [7680, 7680, 7681]
}, function () {
(0, _core.setParameters)(gl, {
stencilFunc: [519, 1, 0xff],
stencilMask: 0x01
});
gl.clear(1024);
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = _this2.props.models[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var model = _step.value;
model.setUniforms(_this2.props.normalUniforms);
model.draw(_this2.props.drawParams);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
_iterator["return"]();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
(0, _core.setParameters)(gl, {
stencilFunc: [517, 1, 0x01],
stencilMask: 0x00,
depthTest: false
});
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = _this2.props.models[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var _model = _step2.value;
_model.setUniforms(_this2.props.outlineUniforms);
_model.draw(_this2.props.drawParams);
_model.setUniforms(_this2.props.normalUniforms);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
_iterator2["return"]();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
});
}
}]);
return OutlinePass;
}(_core._Pass);
exports["default"] = OutlinePass;
//# sourceMappingURL=outline-pass.js.map