Browse Source

Fix multiply logic

pull/2371/head
Stefan Nikolei 3 years ago
parent
commit
fe6366eb56
  1. 5
      src/ImageSharp/Primitives/ColorMatrix.Impl.cs
  2. 8
      tests/ImageSharp.Tests/Primitives/ColorMatrixTests.cs

5
src/ImageSharp/Primitives/ColorMatrix.Impl.cs

@ -134,6 +134,11 @@ public partial struct ColorMatrix
result.V += right.Z * left.V.Z;
result.V += right.W * left.V.W;
result.V.X += right.V.X;
result.V.Y += right.V.Y;
result.V.Z += right.V.Z;
result.V.W += right.V.W;
return result;
}

8
tests/ImageSharp.Tests/Primitives/ColorMatrixTests.cs

@ -76,10 +76,10 @@ public class ColorMatrixTests
m.M44 = (value1.M41 * value2.M14) + (value1.M42 * value2.M24) + (value1.M43 * value2.M34) + (value1.M44 * value2.M44);
// Fifth row
m.M51 = (value1.M51 * value2.M11) + (value1.M52 * value2.M21) + (value1.M53 * value2.M31) + (value1.M54 * value2.M41);
m.M52 = (value1.M51 * value2.M12) + (value1.M52 * value2.M22) + (value1.M53 * value2.M32) + (value1.M54 * value2.M52);
m.M53 = (value1.M51 * value2.M13) + (value1.M52 * value2.M23) + (value1.M53 * value2.M33) + (value1.M54 * value2.M53);
m.M54 = (value1.M51 * value2.M14) + (value1.M52 * value2.M24) + (value1.M53 * value2.M34) + (value1.M54 * value2.M54);
m.M51 = (value1.M51 * value2.M11) + (value1.M52 * value2.M21) + (value1.M53 * value2.M31) + (value1.M54 * value2.M41) + value2.M51;
m.M52 = (value1.M51 * value2.M12) + (value1.M52 * value2.M22) + (value1.M53 * value2.M32) + (value1.M54 * value2.M52) + value2.M52;
m.M53 = (value1.M51 * value2.M13) + (value1.M52 * value2.M23) + (value1.M53 * value2.M33) + (value1.M54 * value2.M53) + value2.M53;
m.M54 = (value1.M51 * value2.M14) + (value1.M52 * value2.M24) + (value1.M53 * value2.M34) + (value1.M54 * value2.M54) + value2.M54;
Assert.Equal(m, value1 * value2, this.approximateFloatComparer);
}

Loading…
Cancel
Save