move dirs init for iOS and OSX
This commit is contained in:
@@ -417,14 +417,7 @@
|
|||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface AppOSX : NSApplication<NSApplicationDelegate>
|
@implementation AppOSX
|
||||||
{
|
|
||||||
Window* window;
|
|
||||||
Controller* controller;
|
|
||||||
View* view;
|
|
||||||
NSString* file2open;
|
|
||||||
}
|
|
||||||
@end @implementation AppOSX
|
|
||||||
- (instancetype)init
|
- (instancetype)init
|
||||||
{
|
{
|
||||||
self = [super init];
|
self = [super init];
|
||||||
@@ -458,10 +451,6 @@
|
|||||||
// Do some additional configuration if needed here
|
// Do some additional configuration if needed here
|
||||||
[[BITHockeyManager sharedHockeyManager] startManager];
|
[[BITHockeyManager sharedHockeyManager] startManager];
|
||||||
|
|
||||||
if (!App::I->check_license())
|
|
||||||
return;
|
|
||||||
|
|
||||||
App::I = new App;
|
|
||||||
App::I->initLog();
|
App::I->initLog();
|
||||||
App::I->create();
|
App::I->create();
|
||||||
NSRect r = NSMakeRect(0, 0, App::I->width, App::I->height);
|
NSRect r = NSMakeRect(0, 0, App::I->width, App::I->height);
|
||||||
@@ -497,12 +486,63 @@
|
|||||||
LOG("app launched");
|
LOG("app launched");
|
||||||
App::I->ui_thread_start();
|
App::I->ui_thread_start();
|
||||||
}
|
}
|
||||||
|
- (void)init_dirs
|
||||||
|
{
|
||||||
|
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSPicturesDirectory, NSUserDomainMask, YES);
|
||||||
|
NSString* docpath = [(NSString*)[paths objectAtIndex:0] stringByAppendingString:@"/PanoPainter"];
|
||||||
|
|
||||||
|
NSError* err = nil;
|
||||||
|
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:docpath withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating rec path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
App::I->data_path = [docpath cStringUsingEncoding:NSASCIIStringEncoding];
|
||||||
|
|
||||||
|
NSString* recpath = [docpath stringByAppendingString:@"/rec"];
|
||||||
|
App::I->rec_path = [recpath cStringUsingEncoding:NSASCIIStringEncoding];
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:recpath withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating rec path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
// brushes
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/brushes"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating brushes path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/brushes/thumbs"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating brushes thumbs path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
// textures
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/patterns"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating patterns path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/patterns/thumbs"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating patterns thumbs path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
// settings
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/settings"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating settings path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
int main(int argc, const char * argv[])
|
int main(int argc, const char * argv[])
|
||||||
{
|
{
|
||||||
install_global_handlers();
|
install_global_handlers();
|
||||||
|
|
||||||
|
App::I = new App;
|
||||||
|
|
||||||
|
if (!App::I->check_license())
|
||||||
|
return 0;
|
||||||
|
|
||||||
AppOSX* app = [AppOSX sharedApplication];
|
AppOSX* app = [AppOSX sharedApplication];
|
||||||
|
App::I->osx_app = app;
|
||||||
[app run];
|
[app run];
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,3 +31,12 @@
|
|||||||
- (std::string)clipboard_get_string;
|
- (std::string)clipboard_get_string;
|
||||||
- (bool)clipboard_set_string:(const std::string&)s;
|
- (bool)clipboard_set_string:(const std::string&)s;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@interface AppOSX : NSApplication<NSApplicationDelegate>
|
||||||
|
{
|
||||||
|
Window* window;
|
||||||
|
Controller* controller;
|
||||||
|
View* view;
|
||||||
|
}
|
||||||
|
- (void)init_dirs;
|
||||||
|
@end
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
>
|
>
|
||||||
{
|
{
|
||||||
@public GameView* glview;
|
@public GameView* glview;
|
||||||
@public CADisplayLink *displayLink;
|
@public EAGLContext* context;
|
||||||
}
|
}
|
||||||
- (void)display_file:(std::string)filename;
|
- (void)display_file:(std::string)filename;
|
||||||
- (void)reset_touch;
|
- (void)reset_touch;
|
||||||
@@ -35,4 +35,5 @@
|
|||||||
- (void)share_file:(NSString*)file_path;
|
- (void)share_file:(NSString*)file_path;
|
||||||
- (std::string)clipboard_get_string;
|
- (std::string)clipboard_get_string;
|
||||||
- (bool)clipboard_set_string:(const std::string&)s;
|
- (bool)clipboard_set_string:(const std::string&)s;
|
||||||
|
- (void)init_dirs;
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -24,12 +24,6 @@ std::condition_variable render_cv;
|
|||||||
@implementation GameImagePicker
|
@implementation GameImagePicker
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface GameViewController () {
|
|
||||||
NSLock* gl_lock;
|
|
||||||
}
|
|
||||||
@property (strong, nonatomic) EAGLContext *context;
|
|
||||||
@end
|
|
||||||
|
|
||||||
//std::map<
|
//std::map<
|
||||||
bool pen_down = false;
|
bool pen_down = false;
|
||||||
int t_count = 0;
|
int t_count = 0;
|
||||||
@@ -59,25 +53,18 @@ std::recursive_mutex lock_mutex;
|
|||||||
- (void)async_lock
|
- (void)async_lock
|
||||||
{
|
{
|
||||||
lock_mutex.lock();
|
lock_mutex.lock();
|
||||||
// if (lock_thread != [NSThread currentThread] || lock_count == 0)
|
[EAGLContext setCurrentContext:context];
|
||||||
// [gl_lock lock];
|
|
||||||
// lock_thread = [NSThread currentThread];
|
|
||||||
// lock_count++;
|
|
||||||
[EAGLContext setCurrentContext:self.context];
|
|
||||||
GameView* view = (GameView*)self.view;
|
GameView* view = (GameView*)self.view;
|
||||||
[view bindDrawable];
|
[view bindDrawable];
|
||||||
}
|
}
|
||||||
- (void)async_unlock
|
- (void)async_unlock
|
||||||
{
|
{
|
||||||
// lock_count--;
|
|
||||||
// if (lock_count == 0)
|
|
||||||
// [gl_lock unlock];
|
|
||||||
lock_mutex.unlock();
|
lock_mutex.unlock();
|
||||||
}
|
}
|
||||||
- (void)async_swap
|
- (void)async_swap
|
||||||
{
|
{
|
||||||
[self.context presentRenderbuffer:GL_FRAMEBUFFER];
|
[context presentRenderbuffer:GL_FRAMEBUFFER];
|
||||||
[self->glview display];
|
[glview display];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)share_file:(NSString *)file_path
|
- (void)share_file:(NSString *)file_path
|
||||||
@@ -109,6 +96,44 @@ std::recursive_mutex lock_mutex;
|
|||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)init_dirs
|
||||||
|
{
|
||||||
|
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
||||||
|
NSString* docpath = (NSString*)[paths objectAtIndex:0];
|
||||||
|
App::I->data_path = [docpath cStringUsingEncoding:NSASCIIStringEncoding];
|
||||||
|
|
||||||
|
NSError* err = nil;
|
||||||
|
|
||||||
|
NSString* recpath = [docpath stringByAppendingString:@"/rec"];
|
||||||
|
App::I->rec_path = [recpath cStringUsingEncoding:NSASCIIStringEncoding];
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:recpath withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating rec path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
// brushes
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/brushes"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating brushes path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/brushes/thumbs"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating brushes thumbs path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
// patterns
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/patterns"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating patterns path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/patterns/thumbs"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating patterns thumbs path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
// settings
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/settings"] withIntermediateDirectories:YES attributes:nil error:&err])
|
||||||
|
{
|
||||||
|
LOG("error creating settings path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (void)pick_photo:(std::function<void(std::string)>) callback
|
- (void)pick_photo:(std::function<void(std::string)>) callback
|
||||||
{
|
{
|
||||||
@@ -393,20 +418,18 @@ std::set<UITouch*> ignored_touch;
|
|||||||
{
|
{
|
||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
App::I = new App;
|
App::I = new App;
|
||||||
App::I->initLog();
|
|
||||||
App::I->ios_view = self;
|
App::I->ios_view = self;
|
||||||
|
App::I->initLog();
|
||||||
|
|
||||||
//self.preferredFramesPerSecond = 60;
|
//self.preferredFramesPerSecond = 60;
|
||||||
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
|
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
|
||||||
|
|
||||||
if (!self.context) {
|
if (!context) {
|
||||||
NSLog(@"Failed to create ES context");
|
NSLog(@"Failed to create ES context");
|
||||||
}
|
}
|
||||||
|
|
||||||
gl_lock = [[NSLock alloc] init];
|
|
||||||
|
|
||||||
GameView *view = (GameView *)self.view;
|
GameView *view = (GameView *)self.view;
|
||||||
view.context = self.context;
|
view.context = context;
|
||||||
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
|
view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
|
||||||
view.enableSetNeedsDisplay = NO;
|
view.enableSetNeedsDisplay = NO;
|
||||||
glview = view;
|
glview = view;
|
||||||
|
|||||||
77
src/app.cpp
77
src/app.cpp
@@ -143,82 +143,9 @@ void App::initAssets()
|
|||||||
void App::initLog()
|
void App::initLog()
|
||||||
{
|
{
|
||||||
#if defined(__IOS__)
|
#if defined(__IOS__)
|
||||||
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
[ios_view init_dirs];
|
||||||
NSString* docpath = (NSString*)[paths objectAtIndex:0];
|
|
||||||
data_path = [docpath cStringUsingEncoding:NSASCIIStringEncoding];
|
|
||||||
|
|
||||||
NSError* err = nil;
|
|
||||||
|
|
||||||
NSString* recpath = [docpath stringByAppendingString:@"/rec"];
|
|
||||||
rec_path = [recpath cStringUsingEncoding:NSASCIIStringEncoding];
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:recpath withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating rec path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
// brushes
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/brushes"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating brushes path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/brushes/thumbs"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating brushes thumbs path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
// patterns
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/patterns"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating patterns path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/patterns/thumbs"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating patterns thumbs path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
// settings
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/settings"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating settings path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
#elif defined(__OSX__)
|
#elif defined(__OSX__)
|
||||||
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSPicturesDirectory, NSUserDomainMask, YES);
|
[osx_app init_dirs];
|
||||||
NSString* docpath = [(NSString*)[paths objectAtIndex:0] stringByAppendingString:@"/PanoPainter"];
|
|
||||||
|
|
||||||
NSError* err = nil;
|
|
||||||
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:docpath withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating rec path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
data_path = [docpath cStringUsingEncoding:NSASCIIStringEncoding];
|
|
||||||
|
|
||||||
NSString* recpath = [docpath stringByAppendingString:@"/rec"];
|
|
||||||
rec_path = [recpath cStringUsingEncoding:NSASCIIStringEncoding];
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:recpath withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating rec path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
// brushes
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/brushes"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating brushes path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/brushes/thumbs"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating brushes thumbs path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
// textures
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/patterns"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating patterns path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/patterns/thumbs"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating patterns thumbs path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
// settings
|
|
||||||
if (![[NSFileManager defaultManager] createDirectoryAtPath:[docpath stringByAppendingString:@"/settings"] withIntermediateDirectories:YES attributes:nil error:&err])
|
|
||||||
{
|
|
||||||
LOG("error creating settings path: %s", [[err localizedDescription] cStringUsingEncoding:NSASCIIStringEncoding]);
|
|
||||||
}
|
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
//CHAR my_documents[MAX_PATH];
|
//CHAR my_documents[MAX_PATH];
|
||||||
//HRESULT result = SHGetFolderPathA(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, my_documents);
|
//HRESULT result = SHGetFolderPathA(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, my_documents);
|
||||||
|
|||||||
Reference in New Issue
Block a user