Skip to content

Commit 1c9a553

Browse files
authored
fix: FeComposite add default value for k1...4 (#2557)
# Summary Fixes #2552 by adding default value for k1, k2, k3, k4 according to the spec: https://www.w3.org/TR/SVG11/filters.html#feCompositeElement > If the attribute is not specified, the effect is as if a value of 0 were specified. ## Test Plan [Repro from issue 2552](https://github.com/TomCorvus/RNSVG/blob/main/App.js) ## Compatibility | OS | Implemented | | ------- | :---------: | | iOS | ✅ | | MacOS | ✅ |
1 parent 01db444 commit 1c9a553

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

apple/Filters/RNSVGFeComposite.mm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,10 @@ - (CIImage *)applyFilter:(NSMutableDictionary<NSString *, CIImage *> *)results p
179179
} else if (self.operator1 == SVG_FECOMPOSITE_OPERATOR_ARITHMETIC) {
180180
[filter setValue:inputImage1 forKey:@"inputImage1"];
181181
[filter setValue:inputImage2 forKey:@"inputImage2"];
182-
[filter setValue:(self.k1 != nil ? self.k1 : 0) forKey:@"inputK1"];
183-
[filter setValue:(self.k2 != nil ? self.k2 : 0) forKey:@"inputK2"];
184-
[filter setValue:(self.k3 != nil ? self.k3 : 0) forKey:@"inputK3"];
185-
[filter setValue:(self.k4 != nil ? self.k4 : 0) forKey:@"inputK4"];
182+
[filter setValue:(self.k1 != nil ? self.k1 : @0) forKey:@"inputK1"];
183+
[filter setValue:(self.k2 != nil ? self.k2 : @0) forKey:@"inputK2"];
184+
[filter setValue:(self.k3 != nil ? self.k3 : @0) forKey:@"inputK3"];
185+
[filter setValue:(self.k4 != nil ? self.k4 : @0) forKey:@"inputK4"];
186186
} else {
187187
[filter setValue:inputImage1 forKey:@"inputImage"];
188188
[filter setValue:inputImage2 forKey:@"inputBackgroundImage"];

src/elements/filters/FeComposite.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ export default class FeComposite extends FilterPrimitive<FeCompositeProps> {
3030

3131
static defaultProps = {
3232
...this.defaultPrimitiveProps,
33+
k1: 0,
34+
k2: 0,
35+
k3: 0,
36+
k4: 0,
3337
};
3438

3539
render() {

0 commit comments

Comments
 (0)