1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef SkOSFile_ios_DEFINED
- #define SkOSFile_ios_DEFINED
- #include "include/core/SkString.h"
- #ifdef SK_BUILD_FOR_IOS
- #import <CoreFoundation/CoreFoundation.h>
- static bool ios_get_path_in_bundle(const char path[], SkString* result) {
- // Get a reference to the main bundle
- CFBundleRef mainBundle = CFBundleGetMainBundle();
- // Get a reference to the file's URL
- CFStringRef pathRef = CFStringCreateWithCString(nullptr, path, kCFStringEncodingUTF8);
- // We use "data" as our subdirectory to match {{bundle_resources_dir}}/data in GN
- // Unfortunately "resources" is not a valid top-level name in iOS, so we push it one level down
- CFURLRef imageURL = CFBundleCopyResourceURL(mainBundle, pathRef, nullptr, CFSTR("data"));
- CFRelease(pathRef);
- if (!imageURL) {
- return false;
- }
- if (!result) {
- return true;
- }
- // Convert the URL reference into a string reference
- CFStringRef imagePath = CFURLCopyFileSystemPath(imageURL, kCFURLPOSIXPathStyle);
- CFRelease(imageURL);
- // Get the system encoding method
- CFStringEncoding encodingMethod = CFStringGetSystemEncoding();
- // Convert the string reference into an SkString
- result->set(CFStringGetCStringPtr(imagePath, encodingMethod));
- CFRelease(imagePath);
- return true;
- }
- #endif
- #endif // SkOSFile_ios_DEFINED
|