UNPKG

2.8 kBJavaScriptView Raw
1import { MSAA_QUALITY } from "@pixi/constants";
2import { Program } from "../shader/Program.mjs";
3import { Shader } from "../shader/Shader.mjs";
4import { State } from "../state/State.mjs";
5import defaultFragment from "./defaultFilter.frag.mjs";
6import defaultVertex from "./defaultFilter.vert.mjs";
7const _Filter = class _Filter2 extends Shader {
8 /**
9 * @param vertexSrc - The source of the vertex shader.
10 * @param fragmentSrc - The source of the fragment shader.
11 * @param uniforms - Custom uniforms to use to augment the built-in ones.
12 */
13 constructor(vertexSrc, fragmentSrc, uniforms) {
14 const program = Program.from(
15 vertexSrc || _Filter2.defaultVertexSrc,
16 fragmentSrc || _Filter2.defaultFragmentSrc
17 );
18 super(program, uniforms), this.padding = 0, this.resolution = _Filter2.defaultResolution, this.multisample = _Filter2.defaultMultisample, this.enabled = !0, this.autoFit = !0, this.state = new State();
19 }
20 /**
21 * Applies the filter
22 * @param {PIXI.FilterSystem} filterManager - The renderer to retrieve the filter from
23 * @param {PIXI.RenderTexture} input - The input render target.
24 * @param {PIXI.RenderTexture} output - The target to output to.
25 * @param {PIXI.CLEAR_MODES} [clearMode] - Should the output be cleared before rendering to it.
26 * @param {object} [_currentState] - It's current state of filter.
27 * There are some useful properties in the currentState :
28 * target, filters, sourceFrame, destinationFrame, renderTarget, resolution
29 */
30 apply(filterManager, input, output, clearMode, _currentState) {
31 filterManager.applyFilter(this, input, output, clearMode);
32 }
33 /**
34 * Sets the blend mode of the filter.
35 * @default PIXI.BLEND_MODES.NORMAL
36 */
37 get blendMode() {
38 return this.state.blendMode;
39 }
40 set blendMode(value) {
41 this.state.blendMode = value;
42 }
43 /**
44 * The resolution of the filter. Setting this to be lower will lower the quality but
45 * increase the performance of the filter.
46 * If set to `null` or `0`, the resolution of the current render target is used.
47 * @default PIXI.Filter.defaultResolution
48 */
49 get resolution() {
50 return this._resolution;
51 }
52 set resolution(value) {
53 this._resolution = value;
54 }
55 /**
56 * The default vertex shader source
57 * @readonly
58 */
59 static get defaultVertexSrc() {
60 return defaultVertex;
61 }
62 /**
63 * The default fragment shader source
64 * @readonly
65 */
66 static get defaultFragmentSrc() {
67 return defaultFragment;
68 }
69};
70_Filter.defaultResolution = 1, /**
71* Default filter samples for any filter.
72* @static
73* @type {PIXI.MSAA_QUALITY|null}
74* @default PIXI.MSAA_QUALITY.NONE
75*/
76_Filter.defaultMultisample = MSAA_QUALITY.NONE;
77let Filter = _Filter;
78export {
79 Filter
80};
81//# sourceMappingURL=Filter.mjs.map