1 | import { MSAA_QUALITY } from "@pixi/constants";
|
2 | import { Program } from "../shader/Program.mjs";
|
3 | import { Shader } from "../shader/Shader.mjs";
|
4 | import { State } from "../state/State.mjs";
|
5 | import defaultFragment from "./defaultFilter.frag.mjs";
|
6 | import defaultVertex from "./defaultFilter.vert.mjs";
|
7 | const _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;
|
77 | let Filter = _Filter;
|
78 | export {
|
79 | Filter
|
80 | };
|
81 | //# sourceMappingURL=Filter.mjs.map
|