| 386 | } |
| 387 | |
| 388 | QStringList MinecraftInstance::javaArguments() |
| 389 | { |
| 390 | QStringList args; |
| 391 | |
| 392 | if (!m_authlibinjector_javaagent->isNull()) |
| 393 | { |
| 394 | args.append(QString("-javaagent:%1").arg(*m_authlibinjector_javaagent)); |
| 395 | } |
| 396 | |
| 397 | // custom args go first. we want to override them if we have our own here. |
| 398 | args.append(extraArguments()); |
| 399 | |
| 400 | // OSX dock icon and name |
| 401 | #ifdef Q_OS_MAC |
| 402 | args << "-Xdock:icon=icon.png"; |
| 403 | args << QString("-Xdock:name=\"%1\"").arg(windowTitle()); |
| 404 | #endif |
| 405 | auto traits_ = traits(); |
| 406 | // HACK: fix issues on macOS with 1.13 snapshots |
| 407 | // NOTE: Oracle Java option. if there are alternate jvm implementations, this would be the place to customize this for them |
| 408 | #ifdef Q_OS_MAC |
| 409 | if(traits_.contains("FirstThreadOnMacOS")) |
| 410 | { |
| 411 | args << QString("-XstartOnFirstThread"); |
| 412 | } |
| 413 | #endif |
| 414 | |
| 415 | // HACK: Stupid hack for Intel drivers. See: https://mojang.atlassian.net/browse/MCL-767 |
| 416 | #ifdef Q_OS_WIN32 |
| 417 | args << QString("-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_" |
| 418 | "minecraft.exe.heapdump"); |
| 419 | #endif |
| 420 | |
| 421 | int min = settings()->get("MinMemAlloc").toInt(); |
| 422 | int max = settings()->get("MaxMemAlloc").toInt(); |
| 423 | if(min < max) |
| 424 | { |
| 425 | args << QString("-Xms%1m").arg(min); |
| 426 | args << QString("-Xmx%1m").arg(max); |
| 427 | } |
| 428 | else |
| 429 | { |
| 430 | args << QString("-Xms%1m").arg(max); |
| 431 | args << QString("-Xmx%1m").arg(min); |
| 432 | } |
| 433 | |
| 434 | // No PermGen in newer java. |
| 435 | JavaVersion javaVersion = getJavaVersion(); |
| 436 | if(javaVersion.requiresPermGen()) |
| 437 | { |
| 438 | auto permgen = settings()->get("PermGen").toInt(); |
| 439 | if (permgen != 64) |
| 440 | { |
| 441 | args << QString("-XX:PermSize=%1m").arg(permgen); |
| 442 | } |
| 443 | } |
| 444 | |
| 445 | args << "-Duser.language=en"; |
no test coverage detected