From f0000132fe41406e505fe3f341dd7ea943b7cbda Mon Sep 17 00:00:00 2001 From: dskuza Date: Wed, 4 Jun 2025 15:23:01 +0000 Subject: [PATCH] feat(ios): add support for data binding images (#9664) 8f30ede7be Co-authored-by: David Skuza --- .rive_head | 2 +- Example-iOS/Assets/data_binding_test.riv | Bin 809812 -> 810595 bytes .../Examples/SwiftUI/DataBindingView.swift | 18 ++++++ RiveRuntime.xcodeproj/project.pbxproj | 28 +++++++++ .../RiveDataBindingViewModelInstance.h | 14 +++++ .../RiveDataBindingViewModelInstance.mm | 35 +++++++++++ ...RiveDataBindingViewModelInstanceProperty.h | 29 +++++++++ ...iveDataBindingViewModelInstanceProperty.mm | 39 ++++++++++++ .../RiveRenderImage+Extensions.swift | 26 ++++++++ Source/Logging/RiveLogger+DataBinding.swift | 10 +++ Source/Renderer/RiveFactory.mm | 17 +++++ Source/Renderer/include/RiveFactory.h | 1 + Source/Renderer/include/RivePrivateHeaders.h | 4 ++ Tests/Assets/1x1_jpg.jpg | Bin 0 -> 285 bytes Tests/Assets/1x1_png.png | Bin 0 -> 116 bytes Tests/Assets/data_binding_image_test.riv | Bin 0 -> 270235 bytes Tests/DataBindingTests.swift | 24 +++++++- Tests/RiveRenderImageTests.swift | 58 ++++++++++++++++++ 18 files changed, 303 insertions(+), 2 deletions(-) create mode 100644 Source/Extensions/RiveRenderImage+Extensions.swift create mode 100644 Tests/Assets/1x1_jpg.jpg create mode 100644 Tests/Assets/1x1_png.png create mode 100644 Tests/Assets/data_binding_image_test.riv create mode 100644 Tests/RiveRenderImageTests.swift diff --git a/.rive_head b/.rive_head index e27c72d..a5ac792 100644 --- a/.rive_head +++ b/.rive_head @@ -1 +1 @@ -052a4984ef8526de04a111ea4e7b725271e53d38 +8f30ede7be2d34dd642dc6f53575f1ab9bd3525e diff --git a/Example-iOS/Assets/data_binding_test.riv b/Example-iOS/Assets/data_binding_test.riv index 1def8addce79d8bb790fed627e24d188e2d405e8..289daf146e3a8d0f31f124f35b05fbcdba7a82c4 100644 GIT binary patch delta 2382 zcmZ`)YfMx}6h1R|E|nzO?JksBiOR#>!h*aO5YRs&ECgkN!fM4zQ0taT zu`E;_ZEd4z(=1U5=d+5Ry1LO?rpx0TmdWZFqJ~m26)l=*y zYg32WUe?8aWrChyt#pVDDTCyIdXIh2F0wzAYwgwZOkWcq0N{rfF+R&@I{qAt^Q>_{ zX?%9!EPqL8a-HsWJKeEggl^W>(gg;USTGC8b0P;W@Q7|$bmU#uIh|)A`Ccuux z0K4`g0fu(n2H0u>Y|2PAkue%` z6W9G}(~9c>0z#z`c<*Q!1~rEz)2!W5=g#q;-E%FW3q$c1Q*!?H8~1ySvNIQtjbz_1 z2^7QSB%-Oh5e2@n;M1>gVUfdJDI52Q zZ5e!JlV-A&mu#(az*8aYxgq+VyTzO1ZsO{+#O5zyp~_Laks(oDqeOdcQV2S*fDu3Vm2 zsT5Z-c>>)>1k2)fyr?M%fs`R76y78%KSBxYBWhp=zJkY+1&*`S7P1I0@ff&>8g!gK z__p(XP4~skEFK;n=%PWbbmA<(P`<=>y`NF)FLq|}I1!S~Kca6F(Ur~HX)6(_IXs2< ziIyC0AyLAX%M*h)rK5(Ey~#t$QutU=mx$e2+_+(h)UnK4$NniD(Ox>FKls6U?HG!^ zyat*P<)YE8R79Yca91yn(coI=X#5%rQtjXh{VpASZubyn zk-7EyQHT%M@zvP#z;LI2@(tbsUzd41^mA_7A$9Kb)+wfRHhSrl{&bx?U9_>4j(=lN z8`hZ8wwFMex`%|cT^w08K*%UwUVz8?s9%i%{DY+we58~;L`3HC1;GvSG&)k+RN_+U zUrZ6hIXsHZQr{w?zmUhp2f=JL94!(p8Z8bj0WBFV9W57a16nDX9nFE(C=5lslx!0R zig+YW-9>ypPS=Zg1Bn+o#rzqZYKnP`PZF#;NI(Ry=V6*J+*05NMI0~Yb3?`-npGk* z2qcQz#XKSseLqNoL|6^U0{^>yRNxy$-`gW5_vR~>tmpHa#?cb$3oBZP=T0Uf5+kYy ztV-|=5BRYT_K^a9QTD4;lCzoDiCm{Mug8I`<0A)6mY=*YQNuWl5ghK@V9U-I=w4W0s!A-b@ zpg+B4hi%Jdmd!0&Shlom!?GQgZCbX|vR#(F%(9n{+BmXRt**iQG90zRCnLe#Fe2WT z342sBwXYV}GEnc;;7xa#6~R3_d%7YpDkO|a2Jg~Y*+6meDD(&0!=c@C_l!zVf7M_G z#ky;;zFfec;+*91k--Gna*|Y@Bf|kP8eK7c)&5A_2iiADyCw|NXbe;2xVl)2H&*D- zxO?FaeX&TKo+BBj9cO}SAwG#px$AHZdq(Z3!@_hY3_RQ<=n?rQwvvPF`IoJ3}4DihiEb#}g~~K%AF-d|GnuQkS;jS$04T)Z+j< zsMh?N!v>_85{a}ULQBh z!r`vq&X9`vurwW>APyQXi$V}aKA1*<`p}Q7`C+E|{J2pK`7m{PvF0!OP0;I9`+QiC zQ)Ghm%DlQ#=w(KU*0m{F*AZ3KfQ6DGOGx>hnUoZTEfQ7`p_>Rjal*70SiC$rx;hTc z=T-xL%vG`pGt6FkE7_i?TGfPgp-SDvE7Yt;U8pJ(Mtt*9YPFOtT1s`YlouCE;Ud@k+(`0WK0*NNSz3v%h9Rz zG^q;#yp{E;YXJkVhyWY$kXJUP3*gnb1xM6M9r>Gq$s*)SJz? zj;2qVF^i_zW_+66s~&E_n`t`Gf*XxeaKi&?riHp}!Z!lG6Ux(y87mWusKMa=m+4QC z2BxmIV79YV+b(dcSPT8cO;ys0SqBrxwaW>cjw0LvzoH69(6Q_WypS{qSFZ;o=3L=@+U^$>{(|0mmtot8<+17@AWkR~u%TTvJ~c V>ep7x%w%&5t(TKtnxq~C{0mhdzeE54 diff --git a/Example-iOS/Source/Examples/SwiftUI/DataBindingView.swift b/Example-iOS/Source/Examples/SwiftUI/DataBindingView.swift index 38384d1..dfee993 100644 --- a/Example-iOS/Source/Examples/SwiftUI/DataBindingView.swift +++ b/Example-iOS/Source/Examples/SwiftUI/DataBindingView.swift @@ -43,6 +43,10 @@ private class DataBindingViewModel: RiveViewModel { return dataBindingInstance?.viewModelInstanceProperty(fromPath: "Nested") } + var imageProperty: RiveDataBindingViewModel.Instance.ImageProperty? { + return dataBindingInstance?.imageProperty(fromPath: "Image") + } + init(fileName: String) { super.init(fileName: fileName) @@ -91,6 +95,7 @@ struct DataBindingView: DismissableView { updateEnum() updateNestedViewModel() updateTrigger() + updateImage() // Manually advance the Rive view since it is not playing. // When a Rive view is playing, this is handled for you. @@ -175,5 +180,18 @@ struct DataBindingView: DismissableView { guard let property = riveViewModel.triggerProperty(name: trigger) else { return } property.trigger() } + + private func updateImage() { + let images = [ + UIImage(systemName: "square.and.arrow.down")!, + UIImage(systemName: "paperplane")!, + UIImage(systemName: "externaldrive")!, + // or any other UIImage initializer + ] + guard let property = riveViewModel.imageProperty else { return } + let image = images.randomElement()! + guard let renderImage = RiveRenderImage(image: image, format: .png) else { return } + property.setValue(renderImage) + } } diff --git a/RiveRuntime.xcodeproj/project.pbxproj b/RiveRuntime.xcodeproj/project.pbxproj index 8147711..ee9b7c3 100644 --- a/RiveRuntime.xcodeproj/project.pbxproj +++ b/RiveRuntime.xcodeproj/project.pbxproj @@ -93,12 +93,17 @@ E5964A982A9697B600140479 /* RiveEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = E5964A972A9697B600140479 /* RiveEvent.mm */; }; E599DCF92AAFA06100D1E49A /* rating_animation.riv in Resources */ = {isa = PBXBuildFile; fileRef = E599DCF82AAFA06100D1E49A /* rating_animation.riv */; }; E599DCFA2AAFA06100D1E49A /* rating_animation.riv in Resources */ = {isa = PBXBuildFile; fileRef = E599DCF82AAFA06100D1E49A /* rating_animation.riv */; }; + F21C3D1B2DDFCD93005F82F4 /* RiveRenderImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F21C3D1A2DDFCD93005F82F4 /* RiveRenderImage+Extensions.swift */; }; F21F08142C66526D00FFA205 /* RiveFallbackFontDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F21F08132C66526D00FFA205 /* RiveFallbackFontDescriptor.swift */; }; F22CF1B12D380E3700D35779 /* data_binding_test.riv in Resources */ = {isa = PBXBuildFile; fileRef = F22CF1B02D380E3700D35779 /* data_binding_test.riv */; }; F22CF1B32D380E6900D35779 /* DataBindingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F22CF1B22D380E6900D35779 /* DataBindingTests.swift */; }; F22E12112D67D47C00F2E8C3 /* RiveDisplayLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = F23B2B7F2D2DCD70007AA53E /* RiveDisplayLink.swift */; }; F23626AA2C8F90FA00727D9A /* nested_text_run.riv in Resources */ = {isa = PBXBuildFile; fileRef = F23626A92C8F90FA00727D9A /* nested_text_run.riv */; }; F23992E72CB9C1C60021EF61 /* RenderContextTests.m in Sources */ = {isa = PBXBuildFile; fileRef = F23992E62CB9C1C60021EF61 /* RenderContextTests.m */; }; + F24FC6452DD3C83700DEE8C5 /* RiveRenderImageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24FC6442DD3C83700DEE8C5 /* RiveRenderImageTests.swift */; }; + F24FC6492DD3C85E00DEE8C5 /* 1x1_jpg.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F24FC6472DD3C85E00DEE8C5 /* 1x1_jpg.jpg */; }; + F24FC64A2DD3C85E00DEE8C5 /* 1x1_png.png in Resources */ = {isa = PBXBuildFile; fileRef = F24FC6482DD3C85E00DEE8C5 /* 1x1_png.png */; }; + F24FC6572DD3D7AD00DEE8C5 /* data_binding_image_test.riv in Resources */ = {isa = PBXBuildFile; fileRef = F24FC6562DD3D7AD00DEE8C5 /* data_binding_image_test.riv */; }; F259E5872D35B91700B78FEF /* RiveDataBindingViewModel.mm in Sources */ = {isa = PBXBuildFile; fileRef = F259E5862D35B91700B78FEF /* RiveDataBindingViewModel.mm */; }; F259E5882D35B91700B78FEF /* RiveDataBindingViewModel.h in Headers */ = {isa = PBXBuildFile; fileRef = F259E5852D35B91700B78FEF /* RiveDataBindingViewModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; F25C58A82D5A60EC00186C91 /* RiveLogger+DataBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = F25C58A72D5A60EC00186C91 /* RiveLogger+DataBinding.swift */; }; @@ -228,12 +233,17 @@ E5964A952A965A9300140479 /* RiveEvent.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; path = RiveEvent.h; sourceTree = ""; }; E5964A972A9697B600140479 /* RiveEvent.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = RiveEvent.mm; sourceTree = ""; }; E599DCF82AAFA06100D1E49A /* rating_animation.riv */ = {isa = PBXFileReference; lastKnownFileType = file; name = rating_animation.riv; path = "Example-iOS/Assets/rating_animation.riv"; sourceTree = SOURCE_ROOT; }; + F21C3D1A2DDFCD93005F82F4 /* RiveRenderImage+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RiveRenderImage+Extensions.swift"; sourceTree = ""; }; F21F08132C66526D00FFA205 /* RiveFallbackFontDescriptor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RiveFallbackFontDescriptor.swift; sourceTree = ""; }; F22CF1B02D380E3700D35779 /* data_binding_test.riv */ = {isa = PBXFileReference; lastKnownFileType = file; path = data_binding_test.riv; sourceTree = ""; }; F22CF1B22D380E6900D35779 /* DataBindingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataBindingTests.swift; sourceTree = ""; }; F23626A92C8F90FA00727D9A /* nested_text_run.riv */ = {isa = PBXFileReference; lastKnownFileType = file; path = nested_text_run.riv; sourceTree = ""; }; F23992E62CB9C1C60021EF61 /* RenderContextTests.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = RenderContextTests.m; sourceTree = ""; }; F23B2B7F2D2DCD70007AA53E /* RiveDisplayLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RiveDisplayLink.swift; sourceTree = ""; }; + F24FC6442DD3C83700DEE8C5 /* RiveRenderImageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RiveRenderImageTests.swift; sourceTree = ""; }; + F24FC6472DD3C85E00DEE8C5 /* 1x1_jpg.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 1x1_jpg.jpg; sourceTree = ""; }; + F24FC6482DD3C85E00DEE8C5 /* 1x1_png.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 1x1_png.png; sourceTree = ""; }; + F24FC6562DD3D7AD00DEE8C5 /* data_binding_image_test.riv */ = {isa = PBXFileReference; lastKnownFileType = file; path = data_binding_image_test.riv; sourceTree = ""; }; F259E5852D35B91700B78FEF /* RiveDataBindingViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RiveDataBindingViewModel.h; sourceTree = ""; }; F259E5862D35B91700B78FEF /* RiveDataBindingViewModel.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RiveDataBindingViewModel.mm; sourceTree = ""; }; F25C58A72D5A60EC00186C91 /* RiveLogger+DataBinding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RiveLogger+DataBinding.swift"; sourceTree = ""; }; @@ -321,6 +331,9 @@ 04BE53F726493FE600427B39 /* Assets */ = { isa = PBXGroup; children = ( + F24FC6562DD3D7AD00DEE8C5 /* data_binding_image_test.riv */, + F24FC6472DD3C85E00DEE8C5 /* 1x1_jpg.jpg */, + F24FC6482DD3C85E00DEE8C5 /* 1x1_png.png */, F22CF1B02D380E3700D35779 /* data_binding_test.riv */, F2CCA9782C9B2799007DC0D2 /* referenced_image_asset.riv */, F23626A92C8F90FA00727D9A /* nested_text_run.riv */, @@ -429,6 +442,7 @@ C9C73ED324FC478800EF9516 /* Source */ = { isa = PBXGroup; children = ( + F24FC6502DD3CF6700DEE8C5 /* Extensions */, F259E5842D35B87800B78FEF /* DataBinding */, F2CCA9C02C9E13B2007DC0D2 /* Logging */, C3468E5727EB9887008652FD /* RiveView.swift */, @@ -466,6 +480,7 @@ F2ECC2382C66B920008B20E5 /* RiveFontTests.swift */, F23992E62CB9C1C60021EF61 /* RenderContextTests.m */, F22CF1B22D380E6900D35779 /* DataBindingTests.swift */, + F24FC6442DD3C83700DEE8C5 /* RiveRenderImageTests.swift */, ); path = Tests; sourceTree = ""; @@ -484,6 +499,14 @@ path = Fonts; sourceTree = ""; }; + F24FC6502DD3CF6700DEE8C5 /* Extensions */ = { + isa = PBXGroup; + children = ( + F21C3D1A2DDFCD93005F82F4 /* RiveRenderImage+Extensions.swift */, + ); + path = Extensions; + sourceTree = ""; + }; F259E5842D35B87800B78FEF /* DataBinding */ = { isa = PBXGroup; children = ( @@ -673,6 +696,7 @@ 0424A8742BD592F2000A9A1C /* audio_test.riv in Resources */, 0412652A2B0CCB8E009400EC /* embedded_assets.riv in Resources */, 04BE540B2649403600427B39 /* multiple_animations.riv in Resources */, + F24FC6572DD3D7AD00DEE8C5 /* data_binding_image_test.riv in Resources */, 041265282B0CC387009400EC /* hosted_assets.riv in Resources */, E57798AB2A7310B700FF25C3 /* testtext.riv in Resources */, 04ED72F3299C115100E8DE53 /* empty_animation_state.riv in Resources */, @@ -684,6 +708,8 @@ 04BE54092649403600427B39 /* state_machine_configurations.riv in Resources */, 04BE54072649403600427B39 /* what_a_state.riv in Resources */, 04E222402BE3C85100D82668 /* ball_test.riv in Resources */, + F24FC6492DD3C85E00DEE8C5 /* 1x1_jpg.jpg in Resources */, + F24FC64A2DD3C85E00DEE8C5 /* 1x1_png.png in Resources */, 0424A8762BD59435000A9A1C /* img_test.riv in Resources */, 04BE541A264A823000427B39 /* animationconfigurations.riv in Resources */, 04BE540E2649403600427B39 /* multiple_state_machines.riv in Resources */, @@ -733,6 +759,7 @@ 046FB7F8264EAA60000129B1 /* RiveStateMachineInstance.mm in Sources */, C3468E5C27ED4C41008652FD /* RiveModel.swift in Sources */, F259E5872D35B91700B78FEF /* RiveDataBindingViewModel.mm in Sources */, + F21C3D1B2DDFCD93005F82F4 /* RiveRenderImage+Extensions.swift in Sources */, 046FB7FF264EAA61000129B1 /* RiveFile.mm in Sources */, F2FD94082CC94B1A00C1FC85 /* RiveFallbackFontCache.m in Sources */, 046FB7F2264EAA60000129B1 /* RiveArtboard.mm in Sources */, @@ -763,6 +790,7 @@ F22CF1B32D380E6900D35779 /* DataBindingTests.swift in Sources */, 04BE5418264A818F00427B39 /* RiveAnimationConfigurationsTest.mm in Sources */, 04BE5427264C02AA00427B39 /* StateMachineInstanceTest.mm in Sources */, + F24FC6452DD3C83700DEE8C5 /* RiveRenderImageTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Source/DataBinding/RiveDataBindingViewModelInstance.h b/Source/DataBinding/RiveDataBindingViewModelInstance.h index e3c671b..2e57f93 100644 --- a/Source/DataBinding/RiveDataBindingViewModelInstance.h +++ b/Source/DataBinding/RiveDataBindingViewModelInstance.h @@ -17,6 +17,7 @@ NS_ASSUME_NONNULL_BEGIN @class RiveDataBindingViewModelInstanceColorProperty; @class RiveDataBindingViewModelInstanceEnumProperty; @class RiveDataBindingViewModelInstanceTriggerProperty; +@class RiveDataBindingViewModelInstanceImageProperty; @class RiveDataBindingViewModelInstancePropertyData; /// An object that represents an instance of a view model, used to update @@ -159,6 +160,19 @@ NS_SWIFT_NAME(RiveDataBindingViewModel.Instance) - (nullable RiveDataBindingViewModelInstanceTriggerProperty*) triggerPropertyFromPath:(NSString*)path; +/// Gets an image property in the view model instance. +/// +/// - Note: Unlike a `RiveViewModel.Instance`, a strong reference to this type +/// does not have to be made. If the property exists, the underlying property +/// will be cached, and calling this function again with the same path is +/// guaranteed to return the same object. +/// +/// - Parameter path: The path to the number property. +/// +/// - Returns: The property if it exists at the supplied path, otherwise nil. +- (nullable RiveDataBindingViewModelInstanceImageProperty*) + imagePropertyFromPath:(NSString*)path; + /// Calls all registered property listeners for the properties of the view model /// instance. - (void)updateListeners; diff --git a/Source/DataBinding/RiveDataBindingViewModelInstance.mm b/Source/DataBinding/RiveDataBindingViewModelInstance.mm index 7af0c9e..8f2fc5e 100644 --- a/Source/DataBinding/RiveDataBindingViewModelInstance.mm +++ b/Source/DataBinding/RiveDataBindingViewModelInstance.mm @@ -312,6 +312,41 @@ return triggerProperty; } +- (RiveDataBindingViewModelInstanceImageProperty*)imagePropertyFromPath: + (NSString*)path +{ + RiveDataBindingViewModelInstanceImageProperty* cached; + if ((cached = [self + cachedPropertyFromPath:path + asClass: + [RiveDataBindingViewModelInstanceImageProperty + class]])) + { + return cached; + } + + auto image = _instance->propertyImage(std::string([path UTF8String])); + if (image == nullptr) + { + [RiveLogger logWithViewModelInstance:self + imagePropertyAtPath:path + found:NO]; + return nil; + } + + [RiveLogger logWithViewModelInstance:self + imagePropertyAtPath:path + found:YES]; + RiveDataBindingViewModelInstanceImageProperty* imageProperty = + [[RiveDataBindingViewModelInstanceImageProperty alloc] + initWithImage:image]; + imageProperty.valueDelegate = self; + + [self cacheProperty:imageProperty withPath:path]; + + return imageProperty; +} + - (void)updateListeners { [_properties enumerateKeysAndObjectsUsingBlock:^( diff --git a/Source/DataBinding/RiveDataBindingViewModelInstanceProperty.h b/Source/DataBinding/RiveDataBindingViewModelInstanceProperty.h index c0ab53d..05ae051 100644 --- a/Source/DataBinding/RiveDataBindingViewModelInstanceProperty.h +++ b/Source/DataBinding/RiveDataBindingViewModelInstanceProperty.h @@ -262,4 +262,33 @@ NS_SWIFT_NAME(RiveDataBindingViewModelInstance.TriggerProperty) @end +#pragma mark - Image + +typedef void (^RiveDataBindingViewModelInstanceImagePropertyListener)(void) + NS_SWIFT_NAME(RiveDataBindingViewModelInstanceImageProperty.Listener); + +/// An object that represents a trigger property of a view model instance. +NS_SWIFT_NAME(RiveDataBindingViewModelInstance.ImageProperty) +@interface RiveDataBindingViewModelInstanceImageProperty + : RiveDataBindingViewModelInstanceProperty + +- (instancetype)init NS_UNAVAILABLE; + +- (void)setValue:(nonnull RiveRenderImage*)image; + +/// Adds a block as a listener, called when the property is triggered. +/// +/// - Note: The property can be triggered either explicitly by the developer, +/// or as a result of a change in a state machine. +/// +/// - Parameter listener: The block that will be called when the property's +/// value changes. +/// +/// - Returns: A UUID for the listener, used in conjunction with +/// `removeListener`. +- (NSUUID*)addListener: + (RiveDataBindingViewModelInstanceImagePropertyListener)listener; + +@end + NS_ASSUME_NONNULL_END diff --git a/Source/DataBinding/RiveDataBindingViewModelInstanceProperty.mm b/Source/DataBinding/RiveDataBindingViewModelInstanceProperty.mm index b79900d..2753f90 100644 --- a/Source/DataBinding/RiveDataBindingViewModelInstanceProperty.mm +++ b/Source/DataBinding/RiveDataBindingViewModelInstanceProperty.mm @@ -536,3 +536,42 @@ } @end + +#pragma mark - Image + +@implementation RiveDataBindingViewModelInstanceImageProperty +{ + rive::ViewModelInstanceAssetImageRuntime* _image; +} + +- (instancetype)initWithImage:(rive::ViewModelInstanceAssetImageRuntime*)image +{ + if (self = [super initWithValue:image]) + { + _image = image; + } + return self; +} + +- (void)setValue:(RiveRenderImage*)renderImage +{ + [RiveLogger logPropertyUpdated:self value:@"new image"]; + _image->value([renderImage instance].get()); +} + +- (NSUUID*)addListener: + (RiveDataBindingViewModelInstanceTriggerPropertyListener)listener +{ + return [super addListener:listener]; +} + +- (void)handleListeners +{ + for (RiveDataBindingViewModelInstanceImagePropertyListener listener in self + .listeners.allValues) + { + listener(); + } +} + +@end diff --git a/Source/Extensions/RiveRenderImage+Extensions.swift b/Source/Extensions/RiveRenderImage+Extensions.swift new file mode 100644 index 0000000..9c24778 --- /dev/null +++ b/Source/Extensions/RiveRenderImage+Extensions.swift @@ -0,0 +1,26 @@ +// +// RiveRenderImage+Extensions.swift +// RiveRuntime +// +// Created by David Skuza on 5/22/25. +// Copyright © 2025 Rive. All rights reserved. +// + +public extension RiveRenderImage { + enum Format { + case jpeg(compressionQuality: CGFloat) + case png + } + + convenience init?(image: UIImage, format: Format) { + let data: Data? + switch format { + case .jpeg(let compressionQuality): + data = image.jpegData(compressionQuality: compressionQuality) + case .png: + data = image.pngData() + } + guard let data else { return nil } + self.init(data: data) + } +} diff --git a/Source/Logging/RiveLogger+DataBinding.swift b/Source/Logging/RiveLogger+DataBinding.swift index 2e17864..b53446f 100644 --- a/Source/Logging/RiveLogger+DataBinding.swift +++ b/Source/Logging/RiveLogger+DataBinding.swift @@ -27,6 +27,7 @@ enum RiveLoggerDataBindingEvent { case enumProperty(String, Bool) case viewModelProperty(String, Bool) case triggerProperty(String, Bool) + case imageProperty(String, Bool) } enum Property: DataBindingEvent { case propertyUpdated(String, String) @@ -106,6 +107,11 @@ extension RiveLogger { let message = message(instance: instance, for: "trigger", path: path, found: found) dataBinding.debug("\(message)") } + case .imageProperty(let path, let found): + _log(event: event, level: .debug) { + let message = message(instance: instance, for: "image", path: path, found: found) + dataBinding.debug("\(message)") + } } } @@ -174,6 +180,10 @@ extension RiveLogger { Self.log(viewModelInstance: instance, event: .triggerProperty(path, found)) } + @objc static func log(viewModelInstance instance: RiveDataBindingViewModel.Instance, imagePropertyAtPath path: String, found: Bool) { + Self.log(viewModelInstance: instance, event: .imageProperty(path, found)) + } + // MARK: - Properties @objc(logPropertyUpdated:value:) static func log(propertyUpdated property: RiveDataBindingViewModel.Instance.Property, value: String) { diff --git a/Source/Renderer/RiveFactory.mm b/Source/Renderer/RiveFactory.mm index d9ff70f..a7b2f51 100644 --- a/Source/Renderer/RiveFactory.mm +++ b/Source/Renderer/RiveFactory.mm @@ -12,6 +12,7 @@ #import #import #import +#import #if TARGET_OS_IPHONE #import @@ -41,6 +42,7 @@ static rive::rcp riveFontFromNativeFont(id font, rive::rcp instance; // note: we do NOT own this, so don't delete it } + - (instancetype)initWithImage:(rive::rcp)image { if (self = [super init]) @@ -53,6 +55,21 @@ static rive::rcp riveFontFromNativeFont(id font, return nil; } } + +- (instancetype)initWithData:(NSData*)data +{ + RenderContext* context = [[RenderContextManager shared] newDefaultContext]; + RiveFactory* factory = + [[RiveFactory alloc] initWithFactory:[context factory]]; + auto renderImage = [factory decodeImage:data]; + auto image = [renderImage instance]; + if (image == nullptr || image.get() == nullptr) + { + return nil; + } + return [[RiveRenderImage alloc] initWithImage:image]; +} + - (rive::rcp)instance { return instance; diff --git a/Source/Renderer/include/RiveFactory.h b/Source/Renderer/include/RiveFactory.h index 70a0a7c..d3b4b04 100644 --- a/Source/Renderer/include/RiveFactory.h +++ b/Source/Renderer/include/RiveFactory.h @@ -22,6 +22,7 @@ NS_ASSUME_NONNULL_BEGIN @interface RiveRenderImage : NSObject +- (nullable instancetype)initWithData:(NSData*)data; @end @interface RiveAudio : NSObject diff --git a/Source/Renderer/include/RivePrivateHeaders.h b/Source/Renderer/include/RivePrivateHeaders.h index 3880bfd..a2b8cd0 100644 --- a/Source/Renderer/include/RivePrivateHeaders.h +++ b/Source/Renderer/include/RivePrivateHeaders.h @@ -232,4 +232,8 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithData:(rive::PropertyData)data; @end +@interface RiveDataBindingViewModelInstanceImageProperty () +- (instancetype)initWithImage:(rive::ViewModelInstanceAssetImageRuntime*)image; +@end + NS_ASSUME_NONNULL_END diff --git a/Tests/Assets/1x1_jpg.jpg b/Tests/Assets/1x1_jpg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..844ed5d63a1b3ccd210b12109593b11687d4fe44 GIT binary patch literal 285 zcmb7;OA5j;7=-7yU_xqR0#>@Hh|!8g@BxJ))ru%$y{;E<;URo%yh&``sVir8AH&Sp zt9?Qp_r)GWghOfA2euH5aaI?cb5{sg21c{09k=8$N&HU literal 0 HcmV?d00001 diff --git a/Tests/Assets/1x1_png.png b/Tests/Assets/1x1_png.png new file mode 100644 index 0000000000000000000000000000000000000000..621b075f0760841c3af8bea4daae4c403acc0eca GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)g(ii6yp7;m1`sRwd63p^r=85p>Q zL70(Y)*K0-Aaj6Ei0l9V|Cb+;J^|!%dAc};RLn_E0kT;bm=sgiW&v3Yp00i_>zopr E049wY*8l(j literal 0 HcmV?d00001 diff --git a/Tests/Assets/data_binding_image_test.riv b/Tests/Assets/data_binding_image_test.riv new file mode 100644 index 0000000000000000000000000000000000000000..e1566e3e7406e396d65fc4713eb3e59784af66dc GIT binary patch literal 270235 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%0D;j4#Q-#iQA;B>tV#DvEL8A<02~b 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�nkS8G0v^d`~+UCwjmnI*WjyaH8z2;Kix>7zR`7 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 Vneh)d+kbP*6e*u>5I+Oqa literal 0 HcmV?d00001 diff --git a/Tests/DataBindingTests.swift b/Tests/DataBindingTests.swift index 8a2e437..7f5f771 100644 --- a/Tests/DataBindingTests.swift +++ b/Tests/DataBindingTests.swift @@ -10,7 +10,7 @@ import XCTest @testable import RiveRuntime class DataBindingTests: XCTestCase { - let file = try! RiveFile(testfileName: "data_binding_test") + let file: RiveFile = try! RiveFile(testfileName: "data_binding_test") // MARK: - RiveFile @@ -442,6 +442,28 @@ class DataBindingTests: XCTestCase { XCTAssertNil(instance.triggerProperty(fromPath: "404")) } + // MARK: Image + + func test_viewModelInstance_imageProperty_returnsPropertyOrNil() throws { + let file = try RiveFile(testfileName: "data_binding_image_test") + let instance = file.viewModelNamed("vm")!.createDefaultInstance()! + XCTAssertNotNil(instance.imageProperty(fromPath: "img")) + XCTAssertNil(instance.imageProperty(fromPath: "404")) + } + + func test_viewModelInstance_imageProperty_canSetValue() throws { + let file = try RiveFile(testfileName: "data_binding_image_test") + let instance = file.viewModelNamed("vm")!.createDefaultInstance()! + let property = instance.imageProperty(fromPath: "img")! + + let bundle = Bundle(for: type(of: self)) + let fileURL = bundle.url(forResource: "1x1_jpg", withExtension: "jpg")! + let data = try Data(contentsOf: fileURL) + let renderImage = RiveRenderImage(data: data)! + property.setValue(renderImage) + XCTAssertTrue(property.hasChanged) + } + // MARK: Binding func test_binding_artboard_stringProperty_updatesTextRun() throws { diff --git a/Tests/RiveRenderImageTests.swift b/Tests/RiveRenderImageTests.swift new file mode 100644 index 0000000..1f2d173 --- /dev/null +++ b/Tests/RiveRenderImageTests.swift @@ -0,0 +1,58 @@ +// +// RiveRenderImageTests.swift +// RiveRuntimeTests +// +// Created by David Skuza on 5/13/25. +// Copyright © 2025 Rive. All rights reserved. +// + +import XCTest +import RiveRuntime + +class RiveRenderImageTests: XCTestCase { + func test_imageFromData_withEmptyData_returnsNil() { + // Data comprised of 0 bytes + XCTAssertNil(RiveRenderImage(data: Data())) + } + + func test_imageFromData_withIncompatibleData_returnsNil() throws { + // Data comprised of 8 bytes that do _not_ create an image + XCTAssertNil(RiveRenderImage(data: Data([1, 2, 3, 4, 5, 6, 7, 8]))) + } + + func test_imageFromData_withCompatibleData_returnsImage() throws { + let bundle = Bundle(for: type(of: self)) + + // We know JPG to be a valid Rive image asset format + var fileURL = bundle.url(forResource: "1x1_jpg", withExtension: "jpg")! + var data = try Data(contentsOf: fileURL) + XCTAssertNotNil(RiveRenderImage(data: data)) + + // We know PNG to be a valid Rive image asset format + fileURL = bundle.url(forResource: "1x1_png", withExtension: "png")! + data = try Data(contentsOf: fileURL) + XCTAssertNotNil(RiveRenderImage(data: data)) + } + + // MARK: - Extensions + + func test_imageFromUIImage_withIncorrectFormat_returnsNil() throws { + XCTAssertNil(RiveRenderImage(image: UIImage(), format: .png)) + XCTAssertNil(RiveRenderImage(image: UIImage(), format: .jpeg(compressionQuality: 80))) + } + + func test_imageFromUIImage_withCorrectFormat_returnsImage() throws { + let bundle = Bundle(for: type(of: self)) + + // We know JPG to be a valid Rive image asset format + var fileURL = bundle.url(forResource: "1x1_jpg", withExtension: "jpg")! + var data = try Data(contentsOf: fileURL) + var image = UIImage(data: data)! + XCTAssertNotNil(RiveRenderImage(image: image, format: .jpeg(compressionQuality: 80))) + + fileURL = bundle.url(forResource: "1x1_png", withExtension: "png")! + data = try Data(contentsOf: fileURL) + image = UIImage(data: data)! + XCTAssertNotNil(RiveRenderImage(image: image, format: .png)) + } +}