From 9635b50a35b257b023a1b59e0e151556893cc52e Mon Sep 17 00:00:00 2001 From: tmator Date: Mon, 9 Mar 2009 10:43:56 +0000 Subject: [PATCH] fix main config dir on osx and autodetect ogl version when it build git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2630 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Common/Src/FileUtil.cpp | 15 +++++++++++++++ Source/Core/Common/Src/FileUtil.h | 3 +++ Source/Core/Core/Src/ConfigManager.cpp | 12 ++++++++++++ Source/Core/Core/Src/PluginManager.cpp | 2 +- Source/Core/DolphinWX/Src/Main.cpp | 2 +- Source/Plugins/Plugin_VideoOGL/Src/cocoaGL.m | 9 +++++---- 6 files changed, 37 insertions(+), 6 deletions(-) diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp index e685076495..55e66b5d8b 100644 --- a/Source/Core/Common/Src/FileUtil.cpp +++ b/Source/Core/Common/Src/FileUtil.cpp @@ -510,6 +510,19 @@ bool SetCurrentDirectory(const char *_rDirectory) } #if defined(__APPLE__) + +//get the full config dir +char *GetConfigDirectory() +{ + + static char path[MAX_PATH] = {0}; + if (strlen(path) > 0) + return path; + snprintf(path, sizeof(path), "%s" DIR_SEP CONFIG_FILE, GetUserDirectory()); + return path; + +} + std::string GetBundleDirectory() { // Plugin path will be Dolphin.app/Contents/PlugIns @@ -542,7 +555,9 @@ std::string GetPluginsDirectory() pluginsDir = PLUGINS_DIR; #endif +#if !defined (__APPLE__) pluginsDir += DIR_SEP; +#endif INFO_LOG(COMMON, "GetPluginsDirectory: Setting to %s:", pluginsDir.c_str()); return pluginsDir; diff --git a/Source/Core/Common/Src/FileUtil.h b/Source/Core/Common/Src/FileUtil.h index 4fc3020504..542bdc6411 100644 --- a/Source/Core/Common/Src/FileUtil.h +++ b/Source/Core/Common/Src/FileUtil.h @@ -96,6 +96,9 @@ std::string GetPluginsDirectory(); std::string GetSysDirectory(); #ifdef __APPLE__ + +char *GetConfigDirectory(); + std::string GetBundleDirectory(); #endif diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 80f6b507d3..958abf6696 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -40,7 +40,11 @@ SConfig::~SConfig() void SConfig::SaveSettings() { IniFile ini; +#if defined(__APPLE__) + ini.Load(File::GetConfigDirectory()); // yes we must load first to not kill unknown stuff +#else ini.Load(CONFIG_FILE); // yes we must load first to not kill unknown stuff +#endif // General { @@ -109,14 +113,22 @@ void SConfig::SaveSettings() ini.Set("Core", "WiiMote1Plugin", m_LocalCoreStartupParameter.m_strWiimotePlugin[0]); } +#if defined(__APPLE__) + ini.Save(File::GetConfigDirectory()); +#else ini.Save(CONFIG_FILE); +#endif } void SConfig::LoadSettings() { IniFile ini; +#if defined(__APPLE__) + ini.Load(File::GetConfigDirectory()); +#else ini.Load(CONFIG_FILE); +#endif std::string PluginsDir = File::GetPluginsDirectory(); // Hard coded default diff --git a/Source/Core/Core/Src/PluginManager.cpp b/Source/Core/Core/Src/PluginManager.cpp index ace1d9e0a3..18b5baabc7 100644 --- a/Source/Core/Core/Src/PluginManager.cpp +++ b/Source/Core/Core/Src/PluginManager.cpp @@ -381,7 +381,7 @@ void CPluginManager::ScanForPlugins() #else Directories.push_back(std::string(PLUGINS_DIR)); #endif - + CFileSearch::XStringVector Extensions; Extensions.push_back("*" PLUGIN_SUFFIX); // Get all DLL files in the plugins dir diff --git a/Source/Core/DolphinWX/Src/Main.cpp b/Source/Core/DolphinWX/Src/Main.cpp index ee9ed2de4e..b3462aa412 100644 --- a/Source/Core/DolphinWX/Src/Main.cpp +++ b/Source/Core/DolphinWX/Src/Main.cpp @@ -191,7 +191,7 @@ bool DolphinApp::OnInit() if (!File::Exists("User")) File::CreateDir("User"); if (!File::Exists("User/GC")) File::CreateDir("User/GC"); - + if (!File::Exists("User/Config")) File::CreateDir("User/Config"); // HACK: Get rid of bogus osx param if (argc > 1 && wxString(argv[argc - 1]).StartsWith(_("-psn_"))) { delete argv[argc-1]; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/cocoaGL.m b/Source/Plugins/Plugin_VideoOGL/Src/cocoaGL.m index 47b6389226..3c97703758 100755 --- a/Source/Plugins/Plugin_VideoOGL/Src/cocoaGL.m +++ b/Source/Plugins/Plugin_VideoOGL/Src/cocoaGL.m @@ -69,11 +69,12 @@ NSOpenGLContext* cocoaGLInit(int mode) attr[i++] = mode; attr[i++] = NSOpenGLPFASamples; attr[i++] = 1; - +#ifdef GL_VERSION_1_2 + #warning "your car support ogl 1.2, dolphin wil use software renderer" //if opengl < 1.3 uncomment this twoo lines to use software renderer - //attr[i++] = NSOpenGLPFARendererID; - //attr[i++] = kCGLRendererGenericFloatID; - + attr[i++] = NSOpenGLPFARendererID; + attr[i++] = kCGLRendererGenericFloatID; +#endif attr[i++] = NSOpenGLPFAScreenMask; attr[i++] = CGDisplayIDToOpenGLDisplayMask(CGMainDisplayID());