From a8856b25cd207724c1e126bcdc5134b73efcf4ec Mon Sep 17 00:00:00 2001 From: Cal Stephens Date: Tue, 29 Aug 2023 10:44:38 -0700 Subject: [PATCH 1/4] Fix issue where value providers could be ignored when falling back to main thread rendering engine --- Example/Example/AnimationPreviewView.swift | 7 +++++++ .../Animation/LottieAnimationLayer.swift | 4 ++++ Tests/SnapshotConfiguration.swift | 10 +++++++++- ...utomaticRenderingEngine.TypeFace-G-100.png | Bin 2841 -> 2722 bytes ...AutomaticRenderingEngine.TypeFace-G-75.png | Bin 5699 -> 5618 bytes 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Example/Example/AnimationPreviewView.swift b/Example/Example/AnimationPreviewView.swift index db5afc984a..8fc7f9bc63 100644 --- a/Example/Example/AnimationPreviewView.swift +++ b/Example/Example/AnimationPreviewView.swift @@ -60,6 +60,11 @@ struct AnimationPreviewView: View { animationPlaying = false } } + .configure { animationView in + DispatchQueue.main.async { + currentRenderingEngine = animationView.currentRenderingEngine + } + } .getRealtimeAnimationProgress(animationPlaying ? $sliderValue : nil) Spacer() @@ -94,6 +99,7 @@ struct AnimationPreviewView: View { updateIndex() } .toolbar { + Text((currentRenderingEngine ?? .coreAnimation).description) optionsMenu } } @@ -111,6 +117,7 @@ struct AnimationPreviewView: View { @State private var loopMode: LottieLoopMode = .loop @State private var playFromProgress: AnimationProgressTime = 0 @State private var playToProgress: AnimationProgressTime = 1 + @State private var currentRenderingEngine: RenderingEngine? private var playbackMode: LottiePlaybackMode { if animationPlaying { diff --git a/Sources/Public/Animation/LottieAnimationLayer.swift b/Sources/Public/Animation/LottieAnimationLayer.swift index 1e8a7579af..e38a46c4e7 100644 --- a/Sources/Public/Animation/LottieAnimationLayer.swift +++ b/Sources/Public/Animation/LottieAnimationLayer.swift @@ -1096,6 +1096,10 @@ public class LottieAnimationLayer: CALayer { } animationLayer.lottieAnimationLayer = self + + for (keypath, valueProvider) in valueProviders { + animationLayer.setValueProvider(valueProvider, keypath: keypath) + } animationLayerDidLoad?(self, renderingEngine) diff --git a/Tests/SnapshotConfiguration.swift b/Tests/SnapshotConfiguration.swift index 0b94cfb33f..9e107f279c 100644 --- a/Tests/SnapshotConfiguration.swift +++ b/Tests/SnapshotConfiguration.swift @@ -111,7 +111,15 @@ extension SnapshotConfiguration { // Test cases for `RenderingEngineOption.automatic` "9squares_AlBoardman": .useAutomaticRenderingEngine, // Supports the Core Animation engine "LottieFiles/shop": .useAutomaticRenderingEngine, // Throws a compatibility error in `init` - "TypeFace/G": .useAutomaticRenderingEngine, // Throws a compatibility error in `display()` + "TypeFace/G": { // Throws a compatibility error in `display()` + var configuration = SnapshotConfiguration.useAutomaticRenderingEngine + configuration.customValueProviders = [ + "G 2.Ellipse 1.Stroke 1.Color": ColorValueProvider(.red), + "G Outlines 3.G.Fill 1.Color": ColorValueProvider(.red), + "Shape Layer 18.Shape 1.Stroke 2.Color": ColorValueProvider(.red), + ] + return configuration + }(), ] } diff --git a/Tests/__Snapshots__/SnapshotTests/testAutomaticRenderingEngine.TypeFace-G-100.png b/Tests/__Snapshots__/SnapshotTests/testAutomaticRenderingEngine.TypeFace-G-100.png index 2b5d56e50d49f682262ad5d1252c2a32316edb60..0595e79072ba6ac67333a12525e0747d45c1ab83 100644 GIT binary patch literal 2722 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 F@E=`~(76Br diff --git a/Tests/__Snapshots__/SnapshotTests/testAutomaticRenderingEngine.TypeFace-G-75.png b/Tests/__Snapshots__/SnapshotTests/testAutomaticRenderingEngine.TypeFace-G-75.png index 32245c6e5167c1085a965e42c9aed55d5f1876a7..99ec08f8e721899e9a1a383fc3e175d35bf20792 100644 GIT binary patch literal 5618 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 b)~_4z!)eOL9X;fDx1z41tz7l&W%&O9^hRoW From 17e22198c772605fea300104f81b1da9209e2a9e Mon Sep 17 00:00:00 2001 From: Cal Stephens Date: Thu, 7 Sep 2023 15:37:58 -0700 Subject: [PATCH 2/4] Update more snapshots --- ...nimationRenderingEngine.TypeFace-G-100.png | Bin 2841 -> 2722 bytes ...AnimationRenderingEngine.TypeFace-G-75.png | Bin 5685 -> 5574 bytes ...inThreadRenderingEngine.TypeFace-G-100.png | Bin 2841 -> 2722 bytes ...ainThreadRenderingEngine.TypeFace-G-75.png | Bin 5699 -> 5618 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.TypeFace-G-100.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.TypeFace-G-100.png index 2b5d56e50d49f682262ad5d1252c2a32316edb60..0595e79072ba6ac67333a12525e0747d45c1ab83 100644 GIT binary patch literal 2722 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 F@E=`~(76Br diff --git a/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.TypeFace-G-75.png b/Tests/__Snapshots__/SnapshotTests/testCoreAnimationRenderingEngine.TypeFace-G-75.png index 33f15ec8f4fea44d432019239aa3780cb16bd384..0fab73af99990dde4112ecc0de4f81236340ae4a 100644 GIT binary patch delta 5303 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 ODjf|2^*UASi2njQ_vZEh delta 5390 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 L>8e(#*hKsX@C0Cu diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.TypeFace-G-100.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.TypeFace-G-100.png index 2b5d56e50d49f682262ad5d1252c2a32316edb60..0595e79072ba6ac67333a12525e0747d45c1ab83 100644 GIT binary patch literal 2722 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 F@E=`~(76Br diff --git a/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.TypeFace-G-75.png b/Tests/__Snapshots__/SnapshotTests/testMainThreadRenderingEngine.TypeFace-G-75.png index 32245c6e5167c1085a965e42c9aed55d5f1876a7..99ec08f8e721899e9a1a383fc3e175d35bf20792 100644 GIT binary patch literal 5618 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 b)~_4z!)eOL9X;fDx1z41tz7l&W%&O9^hRoW From 7b108dc4243f1eb802c323a9e189648c622838ce Mon Sep 17 00:00:00 2001 From: Cal Stephens Date: Thu, 7 Sep 2023 19:53:39 -0700 Subject: [PATCH 3/4] Fix extra spaces on blank line --- Sources/Public/Animation/LottieAnimationLayer.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Sources/Public/Animation/LottieAnimationLayer.swift b/Sources/Public/Animation/LottieAnimationLayer.swift index e38a46c4e7..15514f3e3d 100644 --- a/Sources/Public/Animation/LottieAnimationLayer.swift +++ b/Sources/Public/Animation/LottieAnimationLayer.swift @@ -1096,7 +1096,6 @@ public class LottieAnimationLayer: CALayer { } animationLayer.lottieAnimationLayer = self - for (keypath, valueProvider) in valueProviders { animationLayer.setValueProvider(valueProvider, keypath: keypath) } From 0d9293d2c5763c3e6ad70f89c0644d89a56521d7 Mon Sep 17 00:00:00 2001 From: Cal Stephens Date: Thu, 7 Sep 2023 19:54:16 -0700 Subject: [PATCH 4/4] Put back blank line --- Sources/Public/Animation/LottieAnimationLayer.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/Public/Animation/LottieAnimationLayer.swift b/Sources/Public/Animation/LottieAnimationLayer.swift index 15514f3e3d..1c283724d7 100644 --- a/Sources/Public/Animation/LottieAnimationLayer.swift +++ b/Sources/Public/Animation/LottieAnimationLayer.swift @@ -1096,6 +1096,7 @@ public class LottieAnimationLayer: CALayer { } animationLayer.lottieAnimationLayer = self + for (keypath, valueProvider) in valueProviders { animationLayer.setValueProvider(valueProvider, keypath: keypath) }