diff --git a/PanoPainter/Info.plist b/PanoPainter/Info.plist
index 7cc02b4..70b3784 100644
--- a/PanoPainter/Info.plist
+++ b/PanoPainter/Info.plist
@@ -24,8 +24,8 @@
1
LSRequiresIPhoneOS
- NSPhotoLibraryAddUsageDescription
- Save the pano image in the user gallery
+ NSPhotoLibraryUsageDescription
+ Export the panoramic to the gallery
UILaunchStoryboardName
LaunchScreen
UIMainStoryboardFile
diff --git a/engine.xcodeproj/project.pbxproj b/engine.xcodeproj/project.pbxproj
index ab1c918..68f421c 100644
--- a/engine.xcodeproj/project.pbxproj
+++ b/engine.xcodeproj/project.pbxproj
@@ -128,6 +128,7 @@
AD1063AC1EC7AE92002A525F /* node_viewport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD10637B1EC7ADFA002A525F /* node_viewport.cpp */; };
AD29CC621EA2B214008C8BFA /* action.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD29CC601EA2B214008C8BFA /* action.cpp */; };
AD30D82F1F783E0100B6A112 /* libcurl.4.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = AD30D82E1F783E0100B6A112 /* libcurl.4.tbd */; };
+ AD30D8331F8049BD00B6A112 /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AD30D8321F8049BC00B6A112 /* Photos.framework */; };
AD3B1EC01E3B8B7600E918E3 /* layout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD3B1EBE1E3B8B7600E918E3 /* layout.cpp */; };
AD4C08D91E89BD0F0051D85F /* asset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD4C08CF1E89BD0F0051D85F /* asset.cpp */; };
AD4C08DA1E89BD0F0051D85F /* bezier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AD4C08D11E89BD0F0051D85F /* bezier.cpp */; };
@@ -285,6 +286,7 @@
AD29CC601EA2B214008C8BFA /* action.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = action.cpp; sourceTree = ""; };
AD29CC611EA2B214008C8BFA /* action.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = action.h; sourceTree = ""; };
AD30D82E1F783E0100B6A112 /* libcurl.4.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcurl.4.tbd; path = usr/lib/libcurl.4.tbd; sourceTree = SDKROOT; };
+ AD30D8321F8049BC00B6A112 /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; };
AD3B1EBE1E3B8B7600E918E3 /* layout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = layout.cpp; sourceTree = ""; };
AD3B1EBF1E3B8B7600E918E3 /* layout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = layout.h; sourceTree = ""; };
AD4C08CF1E89BD0F0051D85F /* asset.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = asset.cpp; sourceTree = ""; };
@@ -383,6 +385,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ AD30D8331F8049BD00B6A112 /* Photos.framework in Frameworks */,
AD759B691F279B3900211963 /* GLKit.framework in Frameworks */,
ADD7D2B31EBFA42C00D5A897 /* Security.framework in Frameworks */,
ADD7D2B11EBFA42600D5A897 /* libz.tbd in Frameworks */,
@@ -575,6 +578,7 @@
AD759B631F2793AD00211963 /* Frameworks */ = {
isa = PBXGroup;
children = (
+ AD30D8321F8049BC00B6A112 /* Photos.framework */,
AD30D82E1F783E0100B6A112 /* libcurl.4.tbd */,
AD759B661F27964D00211963 /* GLKit.framework */,
AD759B641F2793AE00211963 /* OpenGLES.framework */,
diff --git a/engine/canvas.cpp b/engine/canvas.cpp
index 54a2333..875e0dc 100644
--- a/engine/canvas.cpp
+++ b/engine/canvas.cpp
@@ -4,6 +4,7 @@
#ifdef __APPLE__
#include
+#import
#endif
@@ -837,8 +838,18 @@ void ui::Canvas::export_equirectangular(std::string data_path)
inject_xmp(name);
//int ret = stbi_write_png(name, m_latlong.getWidth(), m_latlong.getHeight(), 4, latlong_data.get(), m_latlong.stride());
#ifdef __IOS__
- image = [UIImage imageWithContentsOfFile:[NSString stringWithUTF8String:name]];
- UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
+ [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
+ NSURL* url = [NSURL fileURLWithPath:[NSString stringWithUTF8String:name]];
+ PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:url];
+ changeRequest.creationDate = [NSDate date];
+ } completionHandler:^(BOOL success, NSError *error) {
+ if (success) {
+ NSLog(@"successfully saved");
+ }
+ else {
+ NSLog(@"error saving to photos: %@", error);
+ }
+ }];
#endif
}