pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
91 lines (87 loc) • 2.43 kB
JavaScript
;
var GlProgram = require('../../../rendering/renderers/gl/shader/GlProgram.js');
var GpuProgram = require('../../../rendering/renderers/gpu/shader/GpuProgram.js');
var UniformGroup = require('../../../rendering/renderers/shared/shader/UniformGroup.js');
var Filter = require('../../Filter.js');
var defaultFilter = require('../defaultFilter.vert.js');
var alpha$1 = require('./alpha.frag.js');
var alpha = require('./alpha.wgsl.js');
;
const _AlphaFilter = class _AlphaFilter extends Filter.Filter {
constructor(options) {
options = { ..._AlphaFilter.defaultOptions, ...options };
const gpuProgram = GpuProgram.GpuProgram.from({
vertex: {
source: alpha.default,
entryPoint: "mainVertex"
},
fragment: {
source: alpha.default,
entryPoint: "mainFragment"
}
});
const glProgram = GlProgram.GlProgram.from({
vertex: defaultFilter.default,
fragment: alpha$1.default,
name: "alpha-filter"
});
const { alpha: alpha$2, ...rest } = options;
const alphaUniforms = new UniformGroup.UniformGroup({
uAlpha: { value: alpha$2, type: "f32" }
});
super({
...rest,
gpuProgram,
glProgram,
resources: {
alphaUniforms
}
});
}
/**
* The alpha value of the filter.
* Controls the transparency of the filtered display object.
* @example
* ```ts
* // Create filter with initial alpha
* const filter = new AlphaFilter({ alpha: 0.5 });
*
* // Update alpha value dynamically
* filter.alpha = 0.8;
* ```
* @default 1
* @remarks
* - 0 = fully transparent
* - 1 = fully opaque
* - Values are clamped between 0 and 1
*/
get alpha() {
return this.resources.alphaUniforms.uniforms.uAlpha;
}
set alpha(value) {
this.resources.alphaUniforms.uniforms.uAlpha = value;
}
};
/**
* Default options for the AlphaFilter.
* @example
* ```ts
* AlphaFilter.defaultOptions = {
* alpha: 0.5, // Default alpha value
* };
* // Use default options
* const filter = new AlphaFilter(); // Uses default alpha of 0.5
* ```
*/
_AlphaFilter.defaultOptions = {
/**
* Amount of alpha transparency to apply.
* - 0 = fully transparent
* - 1 = fully opaque (default)
* @default 1
*/
alpha: 1
};
let AlphaFilter = _AlphaFilter;
exports.AlphaFilter = AlphaFilter;
//# sourceMappingURL=AlphaFilter.js.map