UNPKG

@smoud/tiny

Version:

Fast and tiny JavaScript library for HTML5 game and playable ads creation.

77 lines (67 loc) 1.75 kB
/** * @author Mat Groves http://matgroves.com/ @Doormat23 */ /** * 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 AbstractFilter * @constructor * @param fragmentSrc {Array} The fragment source in an array of strings. * @param uniforms {Object} An object containing the uniforms for this filter. */ var Filter = function (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. * @property passes * @type Array(Filter) * @private */ this.passes = [this]; /** * @property shaders * @type Array(Shader) * @private */ this.shaders = []; /** * @property dirty * @type Boolean */ this.dirty = true; /** * @property padding * @type Number */ this.padding = 0; /** * @property uniforms * @type object * @private */ this.uniforms = uniforms || {}; /** * @property fragmentSrc * @type Array * @private */ this.fragmentSrc = fragmentSrc || []; }; Filter.prototype.constructor = Filter; /** * Syncs the uniforms between the class object and the shaders. * * @method syncUniforms */ Filter.prototype.syncUniforms = function () { for (var i = 0, j = this.shaders.length; i < j; i++) { this.shaders[i].dirty = true; } }; /* Filter.prototype.apply = function(frameBuffer) { // TODO :) }; */ export { Filter };