| 143 | } |
| 144 | |
| 145 | void BoxedApp::launch() { |
| 146 | BString launchCmd; |
| 147 | BString args; |
| 148 | |
| 149 | GlobalSettings::startUpArgs = StartUpArgs(); |
| 150 | |
| 151 | // set container defaults first, then override with app settings |
| 152 | this->container->launch(); |
| 153 | |
| 154 | if (this->resolution.length()) { |
| 155 | GlobalSettings::startUpArgs.setResolution(this->resolution); |
| 156 | } else { |
| 157 | GlobalSettings::startUpArgs.setResolution(GlobalSettings::getDefaultResolution()); |
| 158 | } |
| 159 | if (this->bpp) { |
| 160 | GlobalSettings::startUpArgs.setBpp(this->bpp); |
| 161 | } |
| 162 | if (this->fullScreen != FULLSCREEN_NOTSET) { |
| 163 | GlobalSettings::startUpArgs.setFullscreen(this->fullScreen); |
| 164 | } |
| 165 | if (GlobalSettings::isDpiAware() && this->dpiAware) { |
| 166 | GlobalSettings::startUpArgs.dpiAware = true; |
| 167 | } |
| 168 | if (this->ddrawOverride) { |
| 169 | GlobalSettings::startUpArgs.ddrawOverridePath = this->path; |
| 170 | } |
| 171 | GlobalSettings::startUpArgs.enableDXVK = this->enableDXVK; |
| 172 | GlobalSettings::startUpArgs.disableHideCursor = this->disableHideCursor; |
| 173 | GlobalSettings::startUpArgs.forceRelativeMouse = this->forceRelativeMouse; |
| 174 | if (this->autoRefresh) { |
| 175 | GlobalSettings::startUpArgs.envValues.push_back(B("BOXED_DD_AUTOREFRESH=1")); |
| 176 | } |
| 177 | if (this->cpuAffinity) { |
| 178 | GlobalSettings::startUpArgs.setCpuAffinity(this->cpuAffinity); |
| 179 | } |
| 180 | if (this->glExt.length()) { |
| 181 | GlobalSettings::startUpArgs.setAllowedGlExtension(this->glExt); |
| 182 | } |
| 183 | if (this->scale) { |
| 184 | GlobalSettings::startUpArgs.setScale(this->scale); |
| 185 | } else { |
| 186 | GlobalSettings::startUpArgs.setScale(GlobalSettings::getDefaultScale()); |
| 187 | } |
| 188 | if (this->vsync == (U32)VSYNC_NOT_SET) { |
| 189 | GlobalSettings::startUpArgs.setVsync(GlobalSettings::getDefaultVsync()); |
| 190 | } else { |
| 191 | GlobalSettings::startUpArgs.setVsync(this->vsync); |
| 192 | } |
| 193 | if (this->scaleQuality) { |
| 194 | GlobalSettings::startUpArgs.setScaleQuality(BString::valueOf(this->scaleQuality)); |
| 195 | } |
| 196 | if (this->pollRate >= 0) { |
| 197 | GlobalSettings::startUpArgs.pollRate = this->pollRate; |
| 198 | } |
| 199 | if (this->skipFramesFPS) { |
| 200 | GlobalSettings::startUpArgs.skipFrameFPS = this->skipFramesFPS; |
| 201 | } |
| 202 | if (this->uid != -1) { |
no test coverage detected