var core = require('../../core'); var glslify = require('glslify'); /** * This filter applies a twist effect making display objects appear twisted in the given direction. * * @class * @extends PIXI.Filter * @memberof PIXI.filters */ function GodrayFilter() { core.Filter.call(this, // vertex shader glslify('./godray.vert', 'utf8'), // fragment shader glslify('./godray.frag', 'utf8') ); this.uniforms.exposure = 0.0034; this.uniforms.decay = 1.0; this.uniforms.density = 0.84; this.uniforms.weight = 5.65; this.uniforms.lightPositionOnScreen[0] = 0.5;///0.5; this.uniforms.lightPositionOnScreen[1] = 0.5;//; } GodrayFilter.prototype = Object.create(core.Filter.prototype); GodrayFilter.prototype.constructor = GodrayFilter; module.exports = GodrayFilter; GodrayFilter.prototype.apply = function (filterManager, input, output, clear) { filterManager.applyFilter(this, input, output, clear); }; Object.defineProperties(GodrayFilter.prototype, { /** * This point describes the the offset of the twist. * * @member {PIXI.Point} * @memberof PIXI.filters.GodrayFilter# */ offset: { get: function () { return this.uniforms.offset; }, set: function (value) { this.uniforms.offset = value; } }, /** * This radius of the twist. * * @member {number} * @memberof PIXI.filters.GodrayFilter# */ radius: { get: function () { return this.uniforms.radius; }, set: function (value) { this.uniforms.radius = value; } }, /** * This angle of the twist. * * @member {number} * @memberof PIXI.filters.GodrayFilter# */ angle: { get: function () { return this.uniforms.angle; }, set: function (value) { this.uniforms.angle = value; } } });