Skip to content

Commit 44ff93d

Browse files
Merge pull request #676 from HardyNLee/feat-adjustment-filter
feat: Support adjustment filter
2 parents d27f740 + 18fd3b4 commit 44ff93d

1 file changed

Lines changed: 66 additions & 0 deletions

File tree

packages/webgal/src/Core/controller/stage/pixi/WebGALPixiContainer.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
getRadiusAlphaFilter,
1616
setRadiusAlphaFilter,
1717
} from '@/Core/controller/stage/pixi/shaders/RadiusAlphaFilter';
18+
import { AdjustmentFilter } from 'pixi-filters';
1819

1920
export class WebGALPixiContainer extends PIXI.Container {
2021
public containerFilters = new Map<string, PIXI.Filter>();
@@ -115,6 +116,71 @@ export class WebGALPixiContainer extends PIXI.Container {
115116
}
116117
}
117118

119+
/**
120+
* adjustment filter
121+
* @public
122+
*/
123+
public getOrCreateAdjustmentFilter(): AdjustmentFilter {
124+
const filterFromMap = this.containerFilters.get('adjustment');
125+
if (filterFromMap) {
126+
return filterFromMap as AdjustmentFilter;
127+
} else {
128+
const adjustment = new AdjustmentFilter();
129+
this.addFilter(adjustment);
130+
this.containerFilters.set('adjustment', adjustment);
131+
return adjustment;
132+
}
133+
}
134+
135+
public get brightness(): number {
136+
return this.getOrCreateAdjustmentFilter().brightness;
137+
}
138+
public set brightness(value: number) {
139+
this.getOrCreateAdjustmentFilter().brightness = value;
140+
}
141+
142+
public get contrast(): number {
143+
return this.getOrCreateAdjustmentFilter().contrast;
144+
}
145+
public set contrast(value: number) {
146+
this.getOrCreateAdjustmentFilter().contrast = value;
147+
}
148+
149+
public get saturation(): number {
150+
return this.getOrCreateAdjustmentFilter().saturation;
151+
}
152+
public set saturation(value: number) {
153+
this.getOrCreateAdjustmentFilter().saturation = value;
154+
}
155+
156+
public get gamma(): number {
157+
return this.getOrCreateAdjustmentFilter().gamma;
158+
}
159+
public set gamma(value: number) {
160+
this.getOrCreateAdjustmentFilter().gamma = value;
161+
}
162+
163+
public get colorRed(): number {
164+
return this.getOrCreateAdjustmentFilter().red * 255.0;
165+
}
166+
public set colorRed(value: number) {
167+
this.getOrCreateAdjustmentFilter().red = value / 255.0;
168+
}
169+
170+
public get colorGreen(): number {
171+
return this.getOrCreateAdjustmentFilter().green * 255.0;
172+
}
173+
public set colorGreen(value: number) {
174+
this.getOrCreateAdjustmentFilter().green = value / 255.0;
175+
}
176+
177+
public get colorBlue(): number {
178+
return this.getOrCreateAdjustmentFilter().blue * 255.0;
179+
}
180+
public set colorBlue(value: number) {
181+
this.getOrCreateAdjustmentFilter().blue = value / 255.0;
182+
}
183+
118184
/**
119185
* old film filter
120186
* @public

0 commit comments

Comments
 (0)