Skip to content

Commit fe6366e

Browse files
committed
Fix multiply logic
1 parent d80c0a8 commit fe6366e

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/ImageSharp/Primitives/ColorMatrix.Impl.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@ public readonly bool IsIdentity
134134
result.V += right.Z * left.V.Z;
135135
result.V += right.W * left.V.W;
136136

137+
result.V.X += right.V.X;
138+
result.V.Y += right.V.Y;
139+
result.V.Z += right.V.Z;
140+
result.V.W += right.V.W;
141+
137142
return result;
138143
}
139144

tests/ImageSharp.Tests/Primitives/ColorMatrixTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ public void ColorMatrixMultiply()
7676
m.M44 = (value1.M41 * value2.M14) + (value1.M42 * value2.M24) + (value1.M43 * value2.M34) + (value1.M44 * value2.M44);
7777

7878
// Fifth row
79-
m.M51 = (value1.M51 * value2.M11) + (value1.M52 * value2.M21) + (value1.M53 * value2.M31) + (value1.M54 * value2.M41);
80-
m.M52 = (value1.M51 * value2.M12) + (value1.M52 * value2.M22) + (value1.M53 * value2.M32) + (value1.M54 * value2.M52);
81-
m.M53 = (value1.M51 * value2.M13) + (value1.M52 * value2.M23) + (value1.M53 * value2.M33) + (value1.M54 * value2.M53);
82-
m.M54 = (value1.M51 * value2.M14) + (value1.M52 * value2.M24) + (value1.M53 * value2.M34) + (value1.M54 * value2.M54);
79+
m.M51 = (value1.M51 * value2.M11) + (value1.M52 * value2.M21) + (value1.M53 * value2.M31) + (value1.M54 * value2.M41) + value2.M51;
80+
m.M52 = (value1.M51 * value2.M12) + (value1.M52 * value2.M22) + (value1.M53 * value2.M32) + (value1.M54 * value2.M52) + value2.M52;
81+
m.M53 = (value1.M51 * value2.M13) + (value1.M52 * value2.M23) + (value1.M53 * value2.M33) + (value1.M54 * value2.M53) + value2.M53;
82+
m.M54 = (value1.M51 * value2.M14) + (value1.M52 * value2.M24) + (value1.M53 * value2.M34) + (value1.M54 * value2.M54) + value2.M54;
8383

8484
Assert.Equal(m, value1 * value2, this.approximateFloatComparer);
8585
}

0 commit comments

Comments
 (0)