diff --git a/Tests/LottieMetalTest/Sources/ViewController.swift b/Tests/LottieMetalTest/Sources/ViewController.swift index f4ca69a3c5..ff9c7fe159 100644 --- a/Tests/LottieMetalTest/Sources/ViewController.swift +++ b/Tests/LottieMetalTest/Sources/ViewController.swift @@ -119,7 +119,7 @@ public final class ViewController: UIViewController { self.view.layer.addSublayer(MetalEngine.shared.rootLayer) - if "".isEmpty { + if !"".isEmpty { if #available(iOS 13.0, *) { self.test = ReferenceCompareTest(view: self.view) } diff --git a/submodules/TelegramUI/Components/LottieCpp/Sources/Lottie/Public/Primitives/Vectors.mm b/submodules/TelegramUI/Components/LottieCpp/Sources/Lottie/Public/Primitives/Vectors.mm index 81a0f4ff73..699f0fec89 100644 --- a/submodules/TelegramUI/Components/LottieCpp/Sources/Lottie/Public/Primitives/Vectors.mm +++ b/submodules/TelegramUI/Components/LottieCpp/Sources/Lottie/Public/Primitives/Vectors.mm @@ -555,7 +555,21 @@ bool CATransform3D::isInvertible() const { } CATransform3D CATransform3D::inverted() const { - return fromNativeTransform(CATransform3DMakeAffineTransform(CGAffineTransformInvert(CATransform3DGetAffineTransform(nativeTransform(*this))))); + simd_double4x4 matrix = { + simd_make_double4(m11, m21, m31, m41), + simd_make_double4(m12, m22, m32, m42), + simd_make_double4(m13, m23, m33, m43), + simd_make_double4(m14, m24, m34, m44) + }; + simd_double4x4 result = simd_inverse(matrix); + CATransform3D nativeResult = CATransform3D( + result.columns[0][0], result.columns[1][0], result.columns[2][0], result.columns[3][0], + result.columns[0][1], result.columns[1][1], result.columns[2][1], result.columns[3][1], + result.columns[0][2], result.columns[1][2], result.columns[2][2], result.columns[3][2], + result.columns[0][3], result.columns[1][3], result.columns[2][3], result.columns[3][3] + ); + + return nativeResult; } bool CGRect::intersects(CGRect const &other) const {