/** * This is the base class for creating a PIXI filter. Currently only WebGL supports filters. * If you want to make a custom filter this should be your base class. * * @class * @namespace PIXI * @param fragmentSrc {string|string[]} The fragment source in an array of strings. * @param uniforms {object} An object containing the uniforms for this filter. */ function AbstractFilter(fragmentSrc, uniforms) { /** * An array of passes - some filters contain a few steps this array simply stores the steps in a liniear fashion. * For example the blur filter has two passes blurX and blurY. * * @member {AbstractFilter[]} * @private */ this.passes = [this]; /** * @member {Shader[]} * @private */ this.shaders = []; /** * @member {number} */ this.padding = 0; /** * @member {object} * @private */ this.uniforms = uniforms || {}; /** * @member {string[]} * @private */ this.fragmentSrc = typeof fragmentSrc === 'string' ? fragmentSrc.split('') : (fragmentSrc || []); }; AbstractFilter.prototype.constructor = AbstractFilter; module.exports = AbstractFilter; /** * Syncs the uniforms between the class object and the shaders. * */ AbstractFilter.prototype.syncUniforms = function () { for (var i = 0, j = this.shaders.length; i < j; ++i) { this.shaders[i].dirty = true; } }; /* AbstractFilter.prototype.apply = function (frameBuffer) { // TODO :) }; */