var core = require('../../core'); var fs = require('fs'); /** * @author Mat Groves http://matgroves.com/ @Doormat23 * original filter: https://github.com/evanw/glfx.js/blob/master/src/filters/fun/dotscreen.js */ /** * This filter applies a dotscreen effect making display objects appear to be made out of * black and white halftone dots like an old printer. * * @class * @extends AbstractFilter * @memberof PIXI.filters */ function DotScreenFilter() { core.AbstractFilter.call(this, // vertex shader null, // fragment shader fs.readFileSync(__dirname + '/dotScreen.frag', 'utf8'), // custom uniforms { scale: { type: '1f', value: 1 }, angle: { type: '1f', value: 5 }, dimensions: { type: '4fv', value: [0, 0, 0, 0] } } ); } DotScreenFilter.prototype = Object.create(core.AbstractFilter.prototype); DotScreenFilter.prototype.constructor = DotScreenFilter; module.exports = DotScreenFilter; Object.defineProperties(DotScreenFilter.prototype, { /** * The scale of the effect. * @member {number} * @memberof DotScreenFilter# */ scale: { get: function () { return this.uniforms.scale.value; }, set: function (value) { this.uniforms.scale.value = value; } }, /** * The radius of the effect. * @member {number} * @memberof DotScreenFilter# */ angle: { get: function () { return this.uniforms.angle.value; }, set: function (value) { this.uniforms.angle.value = value; } } });