diff --git a/src/deprecation.js b/src/deprecation.js index a7e943f..d1b689e 100644 --- a/src/deprecation.js +++ b/src/deprecation.js @@ -946,6 +946,22 @@ return core.SpriteMaskFilter; }, }, + + /** + * @class + * @private + * @name PIXI.filters.VoidFilter + * @see PIXI.filters.AlphaFilter + * @deprecated since version 4.5.7 + */ + VoidFilter: { + get() + { + warn('VoidFilter has been renamed to AlphaFilter, please use PIXI.filters.AlphaFilter'); + + return filters.AlphaFilter; + }, + }, }); /** diff --git a/src/deprecation.js b/src/deprecation.js index a7e943f..d1b689e 100644 --- a/src/deprecation.js +++ b/src/deprecation.js @@ -946,6 +946,22 @@ return core.SpriteMaskFilter; }, }, + + /** + * @class + * @private + * @name PIXI.filters.VoidFilter + * @see PIXI.filters.AlphaFilter + * @deprecated since version 4.5.7 + */ + VoidFilter: { + get() + { + warn('VoidFilter has been renamed to AlphaFilter, please use PIXI.filters.AlphaFilter'); + + return filters.AlphaFilter; + }, + }, }); /** diff --git a/src/filters/alpha/AlphaFilter.js b/src/filters/alpha/AlphaFilter.js new file mode 100644 index 0000000..c2824ed --- /dev/null +++ b/src/filters/alpha/AlphaFilter.js @@ -0,0 +1,55 @@ +import * as core from '../../core'; +import { readFileSync } from 'fs'; +import { join } from 'path'; + +/** + * Simplest filter - applies alpha + * + * Use this instead of Container's alpha property to avoid visual layering of individual elements. + * AlphaFilter applies alpha evenly across the entire display object and any opaque elements it contains. + * If elements are not opaque, they will blend with each other anyway. + * + * Very handy if you want to use common features of all filters: + * + * 1. Assign a blendMode to this filter, blend all elements inside display object with background. + * + * 2. To use clipping in display coordinates, assign a filterArea to the same container that has this filter. + * + * @class + * @extends PIXI.Filter + * @memberof PIXI.filters + */ +export default class AlphaFilter extends core.Filter +{ + /** + * + */ + constructor() + { + super( + // vertex shader + readFileSync(join(__dirname, '../fragments/default.vert'), 'utf8'), + // fragment shader + readFileSync(join(__dirname, './alpha.frag'), 'utf8') + ); + + this.alpha = 1.0; + this.glShaderKey = 'alpha'; + } + + /** + * Coefficient for alpha multiplication + * + * @member {number} + * @default 1 + */ + get alpha() + { + return this.uniforms.uAlpha; + } + + set alpha(value) // eslint-disable-line require-jsdoc + { + this.uniforms.uAlpha = value; + } +} diff --git a/src/deprecation.js b/src/deprecation.js index a7e943f..d1b689e 100644 --- a/src/deprecation.js +++ b/src/deprecation.js @@ -946,6 +946,22 @@ return core.SpriteMaskFilter; }, }, + + /** + * @class + * @private + * @name PIXI.filters.VoidFilter + * @see PIXI.filters.AlphaFilter + * @deprecated since version 4.5.7 + */ + VoidFilter: { + get() + { + warn('VoidFilter has been renamed to AlphaFilter, please use PIXI.filters.AlphaFilter'); + + return filters.AlphaFilter; + }, + }, }); /** diff --git a/src/filters/alpha/AlphaFilter.js b/src/filters/alpha/AlphaFilter.js new file mode 100644 index 0000000..c2824ed --- /dev/null +++ b/src/filters/alpha/AlphaFilter.js @@ -0,0 +1,55 @@ +import * as core from '../../core'; +import { readFileSync } from 'fs'; +import { join } from 'path'; + +/** + * Simplest filter - applies alpha + * + * Use this instead of Container's alpha property to avoid visual layering of individual elements. + * AlphaFilter applies alpha evenly across the entire display object and any opaque elements it contains. + * If elements are not opaque, they will blend with each other anyway. + * + * Very handy if you want to use common features of all filters: + * + * 1. Assign a blendMode to this filter, blend all elements inside display object with background. + * + * 2. To use clipping in display coordinates, assign a filterArea to the same container that has this filter. + * + * @class + * @extends PIXI.Filter + * @memberof PIXI.filters + */ +export default class AlphaFilter extends core.Filter +{ + /** + * + */ + constructor() + { + super( + // vertex shader + readFileSync(join(__dirname, '../fragments/default.vert'), 'utf8'), + // fragment shader + readFileSync(join(__dirname, './alpha.frag'), 'utf8') + ); + + this.alpha = 1.0; + this.glShaderKey = 'alpha'; + } + + /** + * Coefficient for alpha multiplication + * + * @member {number} + * @default 1 + */ + get alpha() + { + return this.uniforms.uAlpha; + } + + set alpha(value) // eslint-disable-line require-jsdoc + { + this.uniforms.uAlpha = value; + } +} diff --git a/src/filters/alpha/alpha.frag b/src/filters/alpha/alpha.frag new file mode 100644 index 0000000..6db588c --- /dev/null +++ b/src/filters/alpha/alpha.frag @@ -0,0 +1,9 @@ +varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform float uAlpha; + +void main(void) +{ + gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha; +} diff --git a/src/deprecation.js b/src/deprecation.js index a7e943f..d1b689e 100644 --- a/src/deprecation.js +++ b/src/deprecation.js @@ -946,6 +946,22 @@ return core.SpriteMaskFilter; }, }, + + /** + * @class + * @private + * @name PIXI.filters.VoidFilter + * @see PIXI.filters.AlphaFilter + * @deprecated since version 4.5.7 + */ + VoidFilter: { + get() + { + warn('VoidFilter has been renamed to AlphaFilter, please use PIXI.filters.AlphaFilter'); + + return filters.AlphaFilter; + }, + }, }); /** diff --git a/src/filters/alpha/AlphaFilter.js b/src/filters/alpha/AlphaFilter.js new file mode 100644 index 0000000..c2824ed --- /dev/null +++ b/src/filters/alpha/AlphaFilter.js @@ -0,0 +1,55 @@ +import * as core from '../../core'; +import { readFileSync } from 'fs'; +import { join } from 'path'; + +/** + * Simplest filter - applies alpha + * + * Use this instead of Container's alpha property to avoid visual layering of individual elements. + * AlphaFilter applies alpha evenly across the entire display object and any opaque elements it contains. + * If elements are not opaque, they will blend with each other anyway. + * + * Very handy if you want to use common features of all filters: + * + * 1. Assign a blendMode to this filter, blend all elements inside display object with background. + * + * 2. To use clipping in display coordinates, assign a filterArea to the same container that has this filter. + * + * @class + * @extends PIXI.Filter + * @memberof PIXI.filters + */ +export default class AlphaFilter extends core.Filter +{ + /** + * + */ + constructor() + { + super( + // vertex shader + readFileSync(join(__dirname, '../fragments/default.vert'), 'utf8'), + // fragment shader + readFileSync(join(__dirname, './alpha.frag'), 'utf8') + ); + + this.alpha = 1.0; + this.glShaderKey = 'alpha'; + } + + /** + * Coefficient for alpha multiplication + * + * @member {number} + * @default 1 + */ + get alpha() + { + return this.uniforms.uAlpha; + } + + set alpha(value) // eslint-disable-line require-jsdoc + { + this.uniforms.uAlpha = value; + } +} diff --git a/src/filters/alpha/alpha.frag b/src/filters/alpha/alpha.frag new file mode 100644 index 0000000..6db588c --- /dev/null +++ b/src/filters/alpha/alpha.frag @@ -0,0 +1,9 @@ +varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform float uAlpha; + +void main(void) +{ + gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha; +} diff --git a/src/filters/index.js b/src/filters/index.js index 7ceb50a..dca47ab 100644 --- a/src/filters/index.js +++ b/src/filters/index.js @@ -25,4 +25,4 @@ export { default as BlurXFilter } from './blur/BlurXFilter'; export { default as BlurYFilter } from './blur/BlurYFilter'; export { default as ColorMatrixFilter } from './colormatrix/ColorMatrixFilter'; -export { default as VoidFilter } from './void/VoidFilter'; +export { default as AlphaFilter } from './alpha/AlphaFilter'; diff --git a/src/deprecation.js b/src/deprecation.js index a7e943f..d1b689e 100644 --- a/src/deprecation.js +++ b/src/deprecation.js @@ -946,6 +946,22 @@ return core.SpriteMaskFilter; }, }, + + /** + * @class + * @private + * @name PIXI.filters.VoidFilter + * @see PIXI.filters.AlphaFilter + * @deprecated since version 4.5.7 + */ + VoidFilter: { + get() + { + warn('VoidFilter has been renamed to AlphaFilter, please use PIXI.filters.AlphaFilter'); + + return filters.AlphaFilter; + }, + }, }); /** diff --git a/src/filters/alpha/AlphaFilter.js b/src/filters/alpha/AlphaFilter.js new file mode 100644 index 0000000..c2824ed --- /dev/null +++ b/src/filters/alpha/AlphaFilter.js @@ -0,0 +1,55 @@ +import * as core from '../../core'; +import { readFileSync } from 'fs'; +import { join } from 'path'; + +/** + * Simplest filter - applies alpha + * + * Use this instead of Container's alpha property to avoid visual layering of individual elements. + * AlphaFilter applies alpha evenly across the entire display object and any opaque elements it contains. + * If elements are not opaque, they will blend with each other anyway. + * + * Very handy if you want to use common features of all filters: + * + * 1. Assign a blendMode to this filter, blend all elements inside display object with background. + * + * 2. To use clipping in display coordinates, assign a filterArea to the same container that has this filter. + * + * @class + * @extends PIXI.Filter + * @memberof PIXI.filters + */ +export default class AlphaFilter extends core.Filter +{ + /** + * + */ + constructor() + { + super( + // vertex shader + readFileSync(join(__dirname, '../fragments/default.vert'), 'utf8'), + // fragment shader + readFileSync(join(__dirname, './alpha.frag'), 'utf8') + ); + + this.alpha = 1.0; + this.glShaderKey = 'alpha'; + } + + /** + * Coefficient for alpha multiplication + * + * @member {number} + * @default 1 + */ + get alpha() + { + return this.uniforms.uAlpha; + } + + set alpha(value) // eslint-disable-line require-jsdoc + { + this.uniforms.uAlpha = value; + } +} diff --git a/src/filters/alpha/alpha.frag b/src/filters/alpha/alpha.frag new file mode 100644 index 0000000..6db588c --- /dev/null +++ b/src/filters/alpha/alpha.frag @@ -0,0 +1,9 @@ +varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform float uAlpha; + +void main(void) +{ + gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha; +} diff --git a/src/filters/index.js b/src/filters/index.js index 7ceb50a..dca47ab 100644 --- a/src/filters/index.js +++ b/src/filters/index.js @@ -25,4 +25,4 @@ export { default as BlurXFilter } from './blur/BlurXFilter'; export { default as BlurYFilter } from './blur/BlurYFilter'; export { default as ColorMatrixFilter } from './colormatrix/ColorMatrixFilter'; -export { default as VoidFilter } from './void/VoidFilter'; +export { default as AlphaFilter } from './alpha/AlphaFilter'; diff --git a/src/filters/void/VoidFilter.js b/src/filters/void/VoidFilter.js deleted file mode 100644 index b4361ac..0000000 --- a/src/filters/void/VoidFilter.js +++ /dev/null @@ -1,28 +0,0 @@ -import * as core from '../../core'; -import { readFileSync } from 'fs'; -import { join } from 'path'; - -/** - * Does nothing. Very handy. - * - * @class - * @extends PIXI.Filter - * @memberof PIXI.filters - */ -export default class VoidFilter extends core.Filter -{ - /** - * - */ - constructor() - { - super( - // vertex shader - readFileSync(join(__dirname, '../fragments/default.vert'), 'utf8'), - // fragment shader - readFileSync(join(__dirname, './void.frag'), 'utf8') - ); - - this.glShaderKey = 'void'; - } -} diff --git a/src/deprecation.js b/src/deprecation.js index a7e943f..d1b689e 100644 --- a/src/deprecation.js +++ b/src/deprecation.js @@ -946,6 +946,22 @@ return core.SpriteMaskFilter; }, }, + + /** + * @class + * @private + * @name PIXI.filters.VoidFilter + * @see PIXI.filters.AlphaFilter + * @deprecated since version 4.5.7 + */ + VoidFilter: { + get() + { + warn('VoidFilter has been renamed to AlphaFilter, please use PIXI.filters.AlphaFilter'); + + return filters.AlphaFilter; + }, + }, }); /** diff --git a/src/filters/alpha/AlphaFilter.js b/src/filters/alpha/AlphaFilter.js new file mode 100644 index 0000000..c2824ed --- /dev/null +++ b/src/filters/alpha/AlphaFilter.js @@ -0,0 +1,55 @@ +import * as core from '../../core'; +import { readFileSync } from 'fs'; +import { join } from 'path'; + +/** + * Simplest filter - applies alpha + * + * Use this instead of Container's alpha property to avoid visual layering of individual elements. + * AlphaFilter applies alpha evenly across the entire display object and any opaque elements it contains. + * If elements are not opaque, they will blend with each other anyway. + * + * Very handy if you want to use common features of all filters: + * + * 1. Assign a blendMode to this filter, blend all elements inside display object with background. + * + * 2. To use clipping in display coordinates, assign a filterArea to the same container that has this filter. + * + * @class + * @extends PIXI.Filter + * @memberof PIXI.filters + */ +export default class AlphaFilter extends core.Filter +{ + /** + * + */ + constructor() + { + super( + // vertex shader + readFileSync(join(__dirname, '../fragments/default.vert'), 'utf8'), + // fragment shader + readFileSync(join(__dirname, './alpha.frag'), 'utf8') + ); + + this.alpha = 1.0; + this.glShaderKey = 'alpha'; + } + + /** + * Coefficient for alpha multiplication + * + * @member {number} + * @default 1 + */ + get alpha() + { + return this.uniforms.uAlpha; + } + + set alpha(value) // eslint-disable-line require-jsdoc + { + this.uniforms.uAlpha = value; + } +} diff --git a/src/filters/alpha/alpha.frag b/src/filters/alpha/alpha.frag new file mode 100644 index 0000000..6db588c --- /dev/null +++ b/src/filters/alpha/alpha.frag @@ -0,0 +1,9 @@ +varying vec2 vTextureCoord; + +uniform sampler2D uSampler; +uniform float uAlpha; + +void main(void) +{ + gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha; +} diff --git a/src/filters/index.js b/src/filters/index.js index 7ceb50a..dca47ab 100644 --- a/src/filters/index.js +++ b/src/filters/index.js @@ -25,4 +25,4 @@ export { default as BlurXFilter } from './blur/BlurXFilter'; export { default as BlurYFilter } from './blur/BlurYFilter'; export { default as ColorMatrixFilter } from './colormatrix/ColorMatrixFilter'; -export { default as VoidFilter } from './void/VoidFilter'; +export { default as AlphaFilter } from './alpha/AlphaFilter'; diff --git a/src/filters/void/VoidFilter.js b/src/filters/void/VoidFilter.js deleted file mode 100644 index b4361ac..0000000 --- a/src/filters/void/VoidFilter.js +++ /dev/null @@ -1,28 +0,0 @@ -import * as core from '../../core'; -import { readFileSync } from 'fs'; -import { join } from 'path'; - -/** - * Does nothing. Very handy. - * - * @class - * @extends PIXI.Filter - * @memberof PIXI.filters - */ -export default class VoidFilter extends core.Filter -{ - /** - * - */ - constructor() - { - super( - // vertex shader - readFileSync(join(__dirname, '../fragments/default.vert'), 'utf8'), - // fragment shader - readFileSync(join(__dirname, './void.frag'), 'utf8') - ); - - this.glShaderKey = 'void'; - } -} diff --git a/src/filters/void/void.frag b/src/filters/void/void.frag deleted file mode 100644 index 99168fb..0000000 --- a/src/filters/void/void.frag +++ /dev/null @@ -1,8 +0,0 @@ -varying vec2 vTextureCoord; - -uniform sampler2D uSampler; - -void main(void) -{ - gl_FragColor = texture2D(uSampler, vTextureCoord); -}