diff --git a/Tests/LottieMetalTest/SoftwareLottieRenderer/PublicHeaders/SoftwareLottieRenderer/SoftwareLottieRenderer.h b/Tests/LottieMetalTest/SoftwareLottieRenderer/PublicHeaders/SoftwareLottieRenderer/SoftwareLottieRenderer.h index a2f624d816..960b2d3450 100644 --- a/Tests/LottieMetalTest/SoftwareLottieRenderer/PublicHeaders/SoftwareLottieRenderer/SoftwareLottieRenderer.h +++ b/Tests/LottieMetalTest/SoftwareLottieRenderer/PublicHeaders/SoftwareLottieRenderer/SoftwareLottieRenderer.h @@ -18,7 +18,7 @@ CGRect getPathNativeBoundingBox(CGPathRef _Nonnull path); - (instancetype _Nullable)initWithData:(NSData * _Nonnull)data; -- (void)setFrame:(NSInteger)index; +- (void)setFrame:(CGFloat)index; - (UIImage * _Nullable)renderForSize:(CGSize)size useReferenceRendering:(bool)useReferenceRendering canUseMoreMemory:(bool)canUseMoreMemory skipImageGeneration:(bool)skipImageGeneration; @end diff --git a/Tests/LottieMetalTest/SoftwareLottieRenderer/Sources/SoftwareLottieRenderer.mm b/Tests/LottieMetalTest/SoftwareLottieRenderer/Sources/SoftwareLottieRenderer.mm index e8d108c44f..43a8b83412 100644 --- a/Tests/LottieMetalTest/SoftwareLottieRenderer/Sources/SoftwareLottieRenderer.mm +++ b/Tests/LottieMetalTest/SoftwareLottieRenderer/Sources/SoftwareLottieRenderer.mm @@ -53,8 +53,8 @@ CGRect getPathNativeBoundingBox(CGPathRef _Nonnull path) { return CGSizeMake(size.x, size.y); } -- (void)setFrame:(NSInteger)index { - _renderer->setFrame((int)index); +- (void)setFrame:(CGFloat)index { + _renderer->setFrame((float)index); } - (UIImage * _Nullable)renderForSize:(CGSize)size useReferenceRendering:(bool)useReferenceRendering canUseMoreMemory:(bool)canUseMoreMemory skipImageGeneration:(bool)skipImageGeneration { diff --git a/Tests/LottieMetalTest/Sources/CompareToReferenceRendering.swift b/Tests/LottieMetalTest/Sources/CompareToReferenceRendering.swift index d5c356726f..78d3ef49c4 100644 --- a/Tests/LottieMetalTest/Sources/CompareToReferenceRendering.swift +++ b/Tests/LottieMetalTest/Sources/CompareToReferenceRendering.swift @@ -91,7 +91,7 @@ func processDrawAnimation(baseCachePath: String, path: String, name: String, siz let referenceImageData = try! Data(contentsOf: URL(fileURLWithPath: cacheFolderPath + "/frame\(frameIndex)")) let referenceImage = decompressImageFrame(data: referenceImageData) - renderer.setFrame(frameIndex) + renderer.setFrame(CGFloat(frameIndex)) let image = renderer.render(for: size, useReferenceRendering: !useNonReferenceRendering, canUseMoreMemory: false, skipImageGeneration: false)! let (diffImage, deltaImage) = areImagesEqual(image, referenceImage, allowedDifference: allowedDifference) diff --git a/Tests/LottieMetalTest/Sources/ViewController.swift b/Tests/LottieMetalTest/Sources/ViewController.swift index 9ff203ede4..4db3e67960 100644 --- a/Tests/LottieMetalTest/Sources/ViewController.swift +++ b/Tests/LottieMetalTest/Sources/ViewController.swift @@ -152,7 +152,7 @@ private final class ManualReferenceCompareTest { let bundlePath = Bundle.main.path(forResource: "TestDataBundle", ofType: "bundle")! self.fileList = buildAnimationFolderItems(basePath: bundlePath, path: "") - self.renderSize = CGSize(width: 128.0, height: 128.0) + self.renderSize = CGSize(width: 256.0, height: 256.0) self.view = view self.view.backgroundColor = .white @@ -224,24 +224,24 @@ private final class ManualReferenceCompareTest { var animationTime = 0.0 let secondsPerFrame = 1.0 / Double(renderer.framesPerSecond) - let frameDisplayLink = SharedDisplayLinkDriver.shared.add { [weak self] deltaTime in + let frameDisplayLink = SharedDisplayLinkDriver.shared.add(framesPerSecond: .max, { [weak self] deltaTime in guard let self, let currentItem = self.currentItem else { return } - var frameIndex = Int(animationTime / secondsPerFrame) - frameIndex = frameIndex % currentItem.renderer.frameCount + var frameIndex = animationTime / secondsPerFrame + frameIndex = frameIndex.truncatingRemainder(dividingBy: Double(currentItem.renderer.frameCount)) currentItem.renderer.setFrame(frameIndex) let image = currentItem.renderer.render(for: self.renderSize, useReferenceRendering: !self.testNonReference, canUseMoreMemory: false, skipImageGeneration: false)! self.imageView.image = image - currentItem.referenceRenderer.setFrame(index: frameIndex) + currentItem.referenceRenderer.setFrame(index: Int(frameIndex)) let referenceImage = currentItem.referenceRenderer.makeImage(width: Int(self.renderSize.width), height: Int(self.renderSize.height))! self.referenceImageView.image = referenceImage animationTime += deltaTime - } + }) self.frameDisplayLink = frameDisplayLink frameDisplayLink.isPaused = false } @@ -267,7 +267,7 @@ public final class ViewController: UIViewController { if #available(iOS 13.0, *) { self.test = ReferenceCompareTest(view: self.view, testNonReference: false) } - } else if !"".isEmpty { + } else if "".isEmpty { if #available(iOS 13.0, *) { self.test = ManualReferenceCompareTest(view: self.view) } @@ -308,7 +308,7 @@ public final class ViewController: UIViewController { var numUpdates: Int = 0 var frameIndex = 0 while true { - animationRenderer.setFrame(frameIndex) + animationRenderer.setFrame(CGFloat(frameIndex)) let _ = animationRenderer.render(for: CGSize(width: CGFloat(performanceFrameSize), height: CGFloat(performanceFrameSize)), useReferenceRendering: false, canUseMoreMemory: true, skipImageGeneration: true) frameIndex = (frameIndex + 1) % animationRenderer.frameCount numUpdates += 1 diff --git a/Tests/LottieMetalTest/skia/BUILD b/Tests/LottieMetalTest/skia/BUILD index 2444ddde2c..540ec8688e 100644 --- a/Tests/LottieMetalTest/skia/BUILD +++ b/Tests/LottieMetalTest/skia/BUILD @@ -3,12 +3,18 @@ load("@build_bazel_rules_apple//apple:apple.bzl", "apple_dynamic_framework_import", ) +framework_imports = select({ + "@build_bazel_rules_apple//apple:ios_arm64": glob([ + "device/libskia.framework/**" + ]), + "//build-system:ios_sim_arm64": glob([ + "simulator/libskia.framework/**" + ]) +}) apple_dynamic_framework_import( name = "libskia", - framework_imports = glob([ - "libskia.framework/**" - ]), + framework_imports = framework_imports, visibility = ["//visibility:public"], ) diff --git a/Tests/LottieMetalTest/skia/libskia.framework/Info.plist b/Tests/LottieMetalTest/skia/simulator/libskia.framework/Info.plist similarity index 100% rename from Tests/LottieMetalTest/skia/libskia.framework/Info.plist rename to Tests/LottieMetalTest/skia/simulator/libskia.framework/Info.plist diff --git a/Tests/LottieMetalTest/skia/libskia.framework/libskia b/Tests/LottieMetalTest/skia/simulator/libskia.framework/libskia similarity index 100% rename from Tests/LottieMetalTest/skia/libskia.framework/libskia rename to Tests/LottieMetalTest/skia/simulator/libskia.framework/libskia diff --git a/submodules/LottieCpp/lottiecpp b/submodules/LottieCpp/lottiecpp index 4aa40846d2..2b10b84f62 160000 --- a/submodules/LottieCpp/lottiecpp +++ b/submodules/LottieCpp/lottiecpp @@ -1 +1 @@ -Subproject commit 4aa40846d24842e1168375c3db79d85e913ca1e9 +Subproject commit 2b10b84f626c66288366f0ad2d6af2a396ec454e