| 80 | bool GlobalSettings::enabledCachedReadFiles = false; |
| 81 | |
| 82 | void GlobalSettings::init(int argc, const char **argv) { |
| 83 | GlobalSettings::largeFontBold = nullptr; |
| 84 | GlobalSettings::largeFont = nullptr; |
| 85 | GlobalSettings::mediumFont = nullptr; |
| 86 | GlobalSettings::defaultFont = nullptr; |
| 87 | GlobalSettings::sectionTitleFont = nullptr; |
| 88 | GlobalSettings::iconFontsLoaded = false; |
| 89 | GlobalSettings::availableFileSystemVersions.clear(); |
| 90 | GlobalSettings::demos.clear(); |
| 91 | GlobalSettings::fileSystemVersions.clear(); |
| 92 | GlobalSettings::components.clear(); |
| 93 | |
| 94 | GlobalSettings::dataFolderLocation = KNativeSystem::getLocalDirectory(); |
| 95 | if (Fs::nativePathSeperator.length()==0) { |
| 96 | Fs::nativePathSeperator = GlobalSettings::dataFolderLocation.charAt(GlobalSettings::dataFolderLocation.length()-1); |
| 97 | } |
| 98 | GlobalSettings::dataFolderLocation = GlobalSettings::dataFolderLocation.substr(0, GlobalSettings::dataFolderLocation.length()-1); |
| 99 | GlobalSettings::exePath = Fs::getNativeParentPath(BString::copy(argv[0])); |
| 100 | GlobalSettings::exeFilePath = BString::copy(argv[0]); |
| 101 | if (!Fs::doesNativePathExist(GlobalSettings::dataFolderLocation)) { |
| 102 | Fs::makeNativeDirs(GlobalSettings::dataFolderLocation); |
| 103 | } |
| 104 | GlobalSettings::configFilePath = GlobalSettings::dataFolderLocation.stringByApppendingPath("boxedwine.ini"); |
| 105 | ConfigFile config(GlobalSettings::configFilePath); |
| 106 | GlobalSettings::dataFolderLocation = config.readString(B("DataFolder"), GlobalSettings::dataFolderLocation); |
| 107 | GlobalSettings::dataFolderLocation = GlobalSettings::dataFolderLocation.replace("//", "/"); |
| 108 | GlobalSettings::dataFolderLocation = GlobalSettings::dataFolderLocation.replace("\\\\", "\\"); |
| 109 | GlobalSettings::theme = config.readString(B("Theme"), B("Dark")); |
| 110 | GlobalSettings::defaultResolution = config.readString(B("DefaultResolution"), B("1024x768")); |
| 111 | GlobalSettings::defaultScale = config.readInt(B("DefaultScale"), 100); |
| 112 | GlobalSettings::defaultVsync = config.readInt(B("DefaultVsync"), VSYNC_DEFAULT); |
| 113 | GlobalSettings::fontScale = (float)config.readInt(B("FontScale"), 100) / 100.0f; |
| 114 | GlobalSettings::fileUrls.push_back(config.readString(B("FilesURL"), B("http://www.boxedwine.org/v2/" BOXEDWINE_VERSION_STR "/filesV2.xml"))); |
| 115 | for (int i = 1; i < 10; i++) { |
| 116 | BString name = "FilesURL" + BString::valueOf(i + 1); |
| 117 | BString url = config.readString(name, B("")); |
| 118 | if (url.length()) { |
| 119 | GlobalSettings::fileUrls.push_back(url); |
| 120 | } |
| 121 | } |
| 122 | GlobalSettings::lastScreenCx = config.readInt(B("WindowWidth"), 0); |
| 123 | GlobalSettings::lastScreenCy = config.readInt(B("WindowHeight"), 0); |
| 124 | GlobalSettings::lastScreenX = config.readInt(B("WindowX"), 0); |
| 125 | GlobalSettings::lastScreenY = config.readInt(B("WindowY"), 0); |
| 126 | #ifdef __MACH__ |
| 127 | GlobalSettings::defaultOpenGL = config.readInt(B("OpenGL"), OPENGL_TYPE_LLVM_PIPE); |
| 128 | #else |
| 129 | GlobalSettings::defaultOpenGL = config.readInt(B("OpenGL"), OPENGL_TYPE_DEFAULT); |
| 130 | #endif |
| 131 | GlobalSettings::enabledAutomation = config.readBool(B("EnableAutomation"), false); |
| 132 | GlobalSettings::enabledCachedReadFiles = config.readBool(B("EnabledCachedReadFiles"), false); |
| 133 | |
| 134 | if (!Fs::doesNativePathExist(configFilePath)) { |
| 135 | saveConfig(); |
| 136 | } |
| 137 | GlobalSettings::startUp(); |
| 138 | |
| 139 | U32 width = 0; |
nothing calls this directly
no test coverage detected