Fixing OpenRead and OpenOverwrite on OS X
This commit is contained in:
committed by
Joshua Granick
parent
e5364db04e
commit
6c8caee1d7
@@ -126,11 +126,29 @@ FILE *OpenOverwrite(const char *inName); // [ddc]
|
|||||||
extern int gFixedOrientation;
|
extern int gFixedOrientation;
|
||||||
|
|
||||||
#elif defined(HX_MACOS)
|
#elif defined(HX_MACOS)
|
||||||
} // close namespace nme
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
extern "C" FILE *OpenRead(const char *inName);
|
FILE *OpenRead(const char *inName)
|
||||||
extern "C" bool GetBundleFilename(const char *inName, char *outBuffer,int inBufSize);
|
{
|
||||||
extern "C" FILE *OpenOverwrite(const char *inName);
|
FILE *result = fopen(inName,"rb");
|
||||||
namespace nme {
|
if (!result) {
|
||||||
|
CFStringRef str = CFStringCreateWithCString(NULL, inName, kCFStringEncodingUTF8);
|
||||||
|
CFURLRef path = CFBundleCopyResourceURL(CFBundleGetMainBundle(), str, NULL, NULL);
|
||||||
|
CFRelease(str);
|
||||||
|
if (path) {
|
||||||
|
str = CFURLCopyPath(path);
|
||||||
|
CFIndex maxSize = CFStringGetMaximumSizeForEncoding(CFStringGetLength(str),kCFStringEncodingUTF8);
|
||||||
|
char *buffer = (char *)malloc(maxSize);
|
||||||
|
if (CFStringGetCString(str, buffer, maxSize, kCFStringEncodingUTF8)) {
|
||||||
|
result = fopen(buffer,"rb");
|
||||||
|
free(buffer);
|
||||||
|
}
|
||||||
|
CFRelease(str);
|
||||||
|
CFRelease(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#define OpenOverwrite(x) fopen(x,"wb")
|
||||||
#else
|
#else
|
||||||
#ifdef TIZEN
|
#ifdef TIZEN
|
||||||
extern int gFixedOrientation;
|
extern int gFixedOrientation;
|
||||||
|
|||||||
Reference in New Issue
Block a user