1 | import { settings } from '@pixi/settings';
|
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.mjs';
|
6 | import defaultVertex from './defaultFilter2.mjs';
|
7 |
|
8 | class Filter extends Shader {
|
9 | constructor(vertexSrc, fragmentSrc, uniforms) {
|
10 | const program = Program.from(vertexSrc || Filter.defaultVertexSrc, fragmentSrc || Filter.defaultFragmentSrc);
|
11 | super(program, uniforms);
|
12 | this.padding = 0;
|
13 | this.resolution = settings.FILTER_RESOLUTION;
|
14 | this.multisample = settings.FILTER_MULTISAMPLE;
|
15 | this.enabled = true;
|
16 | this.autoFit = true;
|
17 | this.state = new State();
|
18 | }
|
19 | apply(filterManager, input, output, clearMode, _currentState) {
|
20 | filterManager.applyFilter(this, input, output, clearMode);
|
21 | }
|
22 | get blendMode() {
|
23 | return this.state.blendMode;
|
24 | }
|
25 | set blendMode(value) {
|
26 | this.state.blendMode = value;
|
27 | }
|
28 | get resolution() {
|
29 | return this._resolution;
|
30 | }
|
31 | set resolution(value) {
|
32 | this._resolution = value;
|
33 | }
|
34 | static get defaultVertexSrc() {
|
35 | return defaultVertex;
|
36 | }
|
37 | static get defaultFragmentSrc() {
|
38 | return defaultFragment;
|
39 | }
|
40 | }
|
41 |
|
42 | export { Filter };
|
43 |
|