/*
* Photo Editor SDK - photoeditorsdk.com
* Copyright (c) 2013-2015 9elements GmbH
*
* Released under Attribution-NonCommercial 3.0 Unported
* http://creativecommons.org/licenses/by-nc/3.0/
*
* For commercial use, please contact us at contact@9elements.com
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
// istanbul ignore next
var _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; Eif ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { Eif (protoProps) defineProperties(Constructor.prototype, protoProps); Iif (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
// istanbul ignore next
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
// istanbul ignore next
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
// istanbul ignore next
function _inherits(subClass, superClass) { Iif (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 } }); Eif (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _operation = require('./operation');
var _operation2 = _interopRequireDefault(_operation);
var _filtersPrimitivesStack = require('./filters/primitives-stack');
var _filtersPrimitivesStack2 = _interopRequireDefault(_filtersPrimitivesStack);
var _filtersPrimitivesSaturation = require('./filters/primitives/saturation');
var _filtersPrimitivesSaturation2 = _interopRequireDefault(_filtersPrimitivesSaturation);
/**
* @class
* @alias ImglyKit.Operations.SaturationOperation
* @extends ImglyKit.Operation
*/
var SaturationOperation = (function (_Operation) {
_inherits(SaturationOperation, _Operation);
function SaturationOperation() {
_classCallCheck(this, SaturationOperation);
_get(Object.getPrototypeOf(SaturationOperation.prototype), 'constructor', this).apply(this, arguments);
}
/**
* A unique string that identifies this operation. Can be used to select
* operations.
* @type {String}
*/
_createClass(SaturationOperation, [{
key: '_renderWebGL',
/**
* Renders the saturation using WebGL
* @param {WebGLRenderer} renderer
* @override
*/
/* istanbul ignore next */
value: function _renderWebGL(renderer) {
this._render(renderer);
}
/**
* Renders the saturation using Canvas2D
* @param {CanvasRenderer} renderer
* @override
*/
}, {
key: '_renderCanvas',
value: function _renderCanvas(renderer) {
this._render(renderer);
}
/**
* Renders the saturation (all renderers supported)
* @param {Renderer} renderer
* @private
*/
}, {
key: '_render',
value: function _render(renderer) {
if (!this._stack) {
this._stack = new _filtersPrimitivesStack2['default']();
this._primitive = new _filtersPrimitivesSaturation2['default']({
saturation: this._options.saturation
});
this._stack.add(this._primitive);
}
// @TODO
// Primitives should have the same option logic as operations - which
// should allow us to do `this._primitive.setSaturation`
this._primitive.options.saturation = this._options.saturation;
this._stack.render(renderer);
}
}]);
return SaturationOperation;
})(_operation2['default']);
SaturationOperation.prototype.identifier = 'saturation';
/**
* Specifies the available options for this operation
* @type {Object}
*/
SaturationOperation.prototype.availableOptions = {
saturation: { type: 'number', 'default': 1.0 }
};
exports['default'] = SaturationOperation;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9yb290L1NFUlZFUi9pbWdseS1zZGstaHRtbDUvc3JjL2pzL29wZXJhdGlvbnMvc2F0dXJhdGlvbi1vcGVyYXRpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUJBVXNCLGFBQWE7Ozs7c0NBQ1AsNEJBQTRCOzs7OzJDQUN4QixpQ0FBaUM7Ozs7Ozs7Ozs7SUFPM0QsbUJBQW1CO1lBQW5CLG1CQUFtQjs7V0FBbkIsbUJBQW1COzBCQUFuQixtQkFBbUI7OytCQUFuQixtQkFBbUI7Ozs7Ozs7OztlQUFuQixtQkFBbUI7Ozs7Ozs7OztXQU9WLHNCQUFDLFFBQVEsRUFBRTtBQUN0QixVQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3ZCOzs7Ozs7Ozs7V0FPYSx1QkFBQyxRQUFRLEVBQUU7QUFDdkIsVUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtLQUN2Qjs7Ozs7Ozs7O1dBT08saUJBQUMsUUFBUSxFQUFFO0FBQ2pCLFVBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2hCLFlBQUksQ0FBQyxNQUFNLEdBQUcseUNBQXFCLENBQUE7QUFDbkMsWUFBSSxDQUFDLFVBQVUsR0FBRyw2Q0FBd0I7QUFDeEMsb0JBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7U0FDckMsQ0FBQyxDQUFBO0FBQ0YsWUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO09BQ2pDOzs7OztBQUtELFVBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQTtBQUM3RCxVQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtLQUM3Qjs7O1NBdkNHLG1CQUFtQjs7O0FBK0N6QixtQkFBbUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQTs7Ozs7O0FBTXZELG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRztBQUMvQyxZQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVMsR0FBRyxFQUFFO0NBQzdDLENBQUE7O3FCQUVjLG1CQUFtQiIsImZpbGUiOiIvcm9vdC9TRVJWRVIvaW1nbHktc2RrLWh0bWw1L3NyYy9qcy9vcGVyYXRpb25zL3NhdHVyYXRpb24tb3BlcmF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFBob3RvIEVkaXRvciBTREsgLSBwaG90b2VkaXRvcnNkay5jb21cbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IDllbGVtZW50cyBHbWJIXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgQXR0cmlidXRpb24tTm9uQ29tbWVyY2lhbCAzLjAgVW5wb3J0ZWRcbiAqIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLzMuMC9cbiAqXG4gKiBGb3IgY29tbWVyY2lhbCB1c2UsIHBsZWFzZSBjb250YWN0IHVzIGF0IGNvbnRhY3RAOWVsZW1lbnRzLmNvbVxuICovXG5cbmltcG9ydCBPcGVyYXRpb24gZnJvbSAnLi9vcGVyYXRpb24nXG5pbXBvcnQgUHJpbWl0aXZlc1N0YWNrIGZyb20gJy4vZmlsdGVycy9wcmltaXRpdmVzLXN0YWNrJ1xuaW1wb3J0IFNhdHVyYXRpb25QcmltaXRpdmUgZnJvbSAnLi9maWx0ZXJzL3ByaW1pdGl2ZXMvc2F0dXJhdGlvbidcblxuLyoqXG4gKiBAY2xhc3NcbiAqIEBhbGlhcyBJbWdseUtpdC5PcGVyYXRpb25zLlNhdHVyYXRpb25PcGVyYXRpb25cbiAqIEBleHRlbmRzIEltZ2x5S2l0Lk9wZXJhdGlvblxuICovXG5jbGFzcyBTYXR1cmF0aW9uT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uIHtcbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIHNhdHVyYXRpb24gdXNpbmcgV2ViR0xcbiAgICogQHBhcmFtICB7V2ViR0xSZW5kZXJlcn0gcmVuZGVyZXJcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBfcmVuZGVyV2ViR0wgKHJlbmRlcmVyKSB7XG4gICAgdGhpcy5fcmVuZGVyKHJlbmRlcmVyKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIHNhdHVyYXRpb24gdXNpbmcgQ2FudmFzMkRcbiAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJlcn0gcmVuZGVyZXJcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBfcmVuZGVyQ2FudmFzIChyZW5kZXJlcikge1xuICAgIHRoaXMuX3JlbmRlcihyZW5kZXJlcilcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBzYXR1cmF0aW9uIChhbGwgcmVuZGVyZXJzIHN1cHBvcnRlZClcbiAgICogQHBhcmFtICB7UmVuZGVyZXJ9IHJlbmRlcmVyXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcmVuZGVyIChyZW5kZXJlcikge1xuICAgIGlmICghdGhpcy5fc3RhY2spIHtcbiAgICAgIHRoaXMuX3N0YWNrID0gbmV3IFByaW1pdGl2ZXNTdGFjaygpXG4gICAgICB0aGlzLl9wcmltaXRpdmUgPSBuZXcgU2F0dXJhdGlvblByaW1pdGl2ZSh7XG4gICAgICAgIHNhdHVyYXRpb246IHRoaXMuX29wdGlvbnMuc2F0dXJhdGlvblxuICAgICAgfSlcbiAgICAgIHRoaXMuX3N0YWNrLmFkZCh0aGlzLl9wcmltaXRpdmUpXG4gICAgfVxuXG4gICAgLy8gQFRPRE9cbiAgICAvLyBQcmltaXRpdmVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIG9wdGlvbiBsb2dpYyBhcyBvcGVyYXRpb25zIC0gd2hpY2hcbiAgICAvLyBzaG91bGQgYWxsb3cgdXMgdG8gZG8gYHRoaXMuX3ByaW1pdGl2ZS5zZXRTYXR1cmF0aW9uYFxuICAgIHRoaXMuX3ByaW1pdGl2ZS5vcHRpb25zLnNhdHVyYXRpb24gPSB0aGlzLl9vcHRpb25zLnNhdHVyYXRpb25cbiAgICB0aGlzLl9zdGFjay5yZW5kZXIocmVuZGVyZXIpXG4gIH1cbn1cblxuLyoqXG4gKiBBIHVuaXF1ZSBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoaXMgb3BlcmF0aW9uLiBDYW4gYmUgdXNlZCB0byBzZWxlY3RcbiAqIG9wZXJhdGlvbnMuXG4gKiBAdHlwZSB7U3RyaW5nfVxuICovXG5TYXR1cmF0aW9uT3BlcmF0aW9uLnByb3RvdHlwZS5pZGVudGlmaWVyID0gJ3NhdHVyYXRpb24nXG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBhdmFpbGFibGUgb3B0aW9ucyBmb3IgdGhpcyBvcGVyYXRpb25cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cblNhdHVyYXRpb25PcGVyYXRpb24ucHJvdG90eXBlLmF2YWlsYWJsZU9wdGlvbnMgPSB7XG4gIHNhdHVyYXRpb246IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDEuMCB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNhdHVyYXRpb25PcGVyYXRpb25cbiJdfQ== |