Skip to content

Commit e45d4cf

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents 6d13765 + 4d1675c commit e45d4cf

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed

haxe/ui/backend/openfl/FilterConverter.hx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import haxe.ui.backend.openfl.filters.HueRotateFilter;
1010
import haxe.ui.backend.openfl.filters.ContrastFilter;
1111
import haxe.ui.backend.openfl.filters.SaturateFilter;
1212
import haxe.ui.backend.openfl.filters.TintFilter;
13+
import haxe.ui.backend.openfl.filters.InvertFilter;
14+
import haxe.ui.backend.openfl.filters.BrightnessFilter;
1315

1416
class FilterConverter {
1517
public static function convertFilter(input:Filter):BitmapFilter {
@@ -49,6 +51,12 @@ class FilterConverter {
4951
} else if ((input is haxe.ui.filters.Saturate)) {
5052
var saturate:haxe.ui.filters.Saturate = cast(input, haxe.ui.filters.Saturate);
5153
output = new SaturateFilter(saturate.multiplier).filter;
54+
} else if (input is haxe.ui.filters.Invert) {
55+
var invert:haxe.ui.filters.Invert = cast(input, haxe.ui.filters.Invert);
56+
output = new InvertFilter(invert.multiplier).filter;
57+
} else if (input is haxe.ui.filters.Brightness) {
58+
var brightness:haxe.ui.filters.Brightness = cast(input, haxe.ui.filters.Brightness);
59+
output = new BrightnessFilter(brightness.multiplier).filter;
5260
}
5361

5462
#end
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package haxe.ui.backend.openfl.filters;
2+
3+
import openfl.filters.ColorMatrixFilter;
4+
5+
class BrightnessFilter {
6+
public var filter:ColorMatrixFilter;
7+
8+
public function new(multiplier:Float = 1) {
9+
// In html, 0 is a black image, 1 has no effect, over it's a multiplier
10+
// So we adapt
11+
if (multiplier <= 1) multiplier = (multiplier -1) * 255;
12+
if (multiplier > 1) multiplier = (multiplier -1) * 110;
13+
14+
filter = new ColorMatrixFilter([
15+
1,0,0,0,multiplier,
16+
0,1,0,0,multiplier,
17+
0,0,1,0,multiplier,
18+
0,0,0,1,0,
19+
0,0,0,0,1]);
20+
}
21+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package haxe.ui.backend.openfl.filters;
2+
3+
import openfl.filters.ColorMatrixFilter;
4+
5+
class InvertFilter {
6+
public var filter:ColorMatrixFilter;
7+
8+
/*<filter id="invert">
9+
<feComponentTransfer>
10+
<feFuncR type="table" tableValues="[amount] (1 - [amount])"/>
11+
<feFuncG type="table" tableValues="[amount] (1 - [amount])"/>
12+
<feFuncB type="table" tableValues="[amount] (1 - [amount])"/>
13+
</feComponentTransfer>
14+
</filter>*/
15+
16+
public function new(multiplier:Float = 1) {
17+
filter = new ColorMatrixFilter([
18+
-1*multiplier, 0, 0, 0, 255,
19+
0, -1*multiplier, 0, 0, 255,
20+
0, 0, -1*multiplier, 0, 255,
21+
0, 0, 0, 1, 0]);
22+
}
23+
}

0 commit comments

Comments
 (0)