Skip to content

Commit a773580

Browse files
committed
Fix multiply
1 parent 531c110 commit a773580

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/ImageSharp/Primitives/ColorMatrix.Impl.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public readonly bool IsIdentity
133133
result.V = right.X * left.V.X;
134134
result.V += right.Y * left.V.Y;
135135
result.V += right.Z * left.V.Z;
136-
result.V += (right.W * left.V.W) + right.W;
136+
result.V += right.W * left.V.W;
137137

138138
return result;
139139
}

tests/ImageSharp.Tests/Primitives/ColorMatrixTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,20 @@ public void ColorMatrixMultiply()
7575
m.M43 = (value1.M41 * value2.M13) + (value1.M42 * value2.M23) + (value1.M43 * value2.M33) + (value1.M44 * value2.M43);
7676
m.M44 = (value1.M41 * value2.M14) + (value1.M42 * value2.M24) + (value1.M43 * value2.M34) + (value1.M44 * value2.M44);
7777

78+
#if NET6_0
7879
// Fifth row
7980
m.M51 = (value1.M51 * value2.M11) + (value1.M52 * value2.M21) + (value1.M53 * value2.M31) + (value1.M54 * value2.M41) + value2.M51;
8081
m.M52 = (value1.M51 * value2.M12) + (value1.M52 * value2.M22) + (value1.M53 * value2.M32) + (value1.M54 * value2.M52) + value2.M52;
8182
m.M53 = (value1.M51 * value2.M13) + (value1.M52 * value2.M23) + (value1.M53 * value2.M33) + (value1.M54 * value2.M53) + value2.M53;
8283
m.M54 = (value1.M51 * value2.M14) + (value1.M52 * value2.M24) + (value1.M53 * value2.M34) + (value1.M54 * value2.M54) + value2.M54;
84+
#endif
85+
#if NET7_0_OR_GREATER
86+
// Fifth row
87+
m.M51 = (value1.M51 * value2.M11) + (value1.M52 * value2.M21) + (value1.M53 * value2.M31) + (value1.M54 * value2.M41);
88+
m.M52 = (value1.M51 * value2.M12) + (value1.M52 * value2.M22) + (value1.M53 * value2.M32) + (value1.M54 * value2.M52);
89+
m.M53 = (value1.M51 * value2.M13) + (value1.M52 * value2.M23) + (value1.M53 * value2.M33) + (value1.M54 * value2.M53);
90+
m.M54 = (value1.M51 * value2.M14) + (value1.M52 * value2.M24) + (value1.M53 * value2.M34) + (value1.M54 * value2.M54);
91+
#endif
8392

8493
Assert.Equal(m, value1 * value2, this.approximateFloatComparer);
8594
}

0 commit comments

Comments
 (0)