- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
import { vertex } from '@tools/fragments';
import fragment from './rgb-split.frag';
import { Filter } from '@pixi/core';
import type { Point } from '@pixi/math';
type Offset = [number, number] | Point;
/**
* An RGB Split Filter.<br>
* 
*
* @class
* @extends PIXI.Filter
* @memberof PIXI.filters
* @see @pixi/filter-rgb-split
* @see pixi-filters
*/
class RGBSplitFilter extends Filter
{
/**
* @param {PIXI.Point | number[]} [red=[-10,0]] - Red channel offset
* @param {PIXI.Point | number[]} [green=[0, 10]] - Green channel offset
* @param {PIXI.Point | number[]} [blue=[0, 0]] - Blue channel offset
*/
constructor(red: Offset = [-10, 0], green: Offset = [0, 10], blue: Offset = [0, 0])
{
super(vertex, fragment);
this.red = red;
this.green = green;
this.blue = blue;
}
/**
* Red channel offset.
*
* @member {PIXI.Point | number[]}
*/
get red(): Offset
{
return this.uniforms.red;
}
set red(value: Offset)
{
this.uniforms.red = value;
}
/**
* Green channel offset.
*
* @member {PIXI.Point | number[]}
*/
get green(): Offset
{
return this.uniforms.green;
}
set green(value: Offset)
{
this.uniforms.green = value;
}
/**
* Blue offset.
*
* @member {PIXI.Point | number[]}
*/
get blue(): Offset
{
return this.uniforms.blue;
}
set blue(value: Offset)
{
this.uniforms.blue = value;
}
}
export { RGBSplitFilter };