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