summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/main.cpp31
1 files changed, 23 insertions, 8 deletions
diff --git a/main/main.cpp b/main/main.cpp
index f6a8391447..ea9e75176b 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -121,6 +121,7 @@ static bool force_lowdpi = false;
static int init_screen = -1;
static bool use_vsync = true;
static bool editor = false;
+static bool project_manager = false;
static bool show_help = false;
static bool disable_render_loop = false;
static int fixed_fps = -1;
@@ -511,6 +512,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
} else if (I->get() == "-e" || I->get() == "--editor") { // starts editor
editor = true;
+ } else if (I->get() == "-p" || I->get() == "--project-manager") { // starts project manager
+
+ project_manager = true;
} else if (I->get() == "--no-window") { // disable window creation, Windows only
OS::get_singleton()->set_no_window_mode(true);
@@ -779,8 +783,18 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
#ifdef TOOLS_ENABLED
- if (main_args.size() == 0 && (!ProjectSettings::get_singleton()->has_setting("application/run/main_loop_type")) && (!ProjectSettings::get_singleton()->has_setting("application/run/main_scene") || String(ProjectSettings::get_singleton()->get("application/run/main_scene")) == ""))
+ if (!project_manager) {
+ // Determine if the project manager should be requested
+ project_manager =
+ main_args.size() == 0 &&
+ !ProjectSettings::get_singleton()->has_setting("application/run/main_loop_type") &&
+ (!ProjectSettings::get_singleton()->has_setting("application/run/main_scene") ||
+ String(ProjectSettings::get_singleton()->get("application/run/main_scene")) == "");
+ }
+
+ if (project_manager) {
use_custom_res = false; //project manager (run without arguments)
+ }
#endif
@@ -830,9 +844,11 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation", 2);
GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation.mobile", 3);
- if (editor) {
- OS::get_singleton()->_allow_hidpi = true; //editors always in hidpi
+ if (editor || project_manager) {
+ // The editor and project manager always detect and use hiDPI if needed
+ OS::get_singleton()->_allow_hidpi = true;
}
+
Engine::get_singleton()->_pixel_snap = GLOBAL_DEF("rendering/quality/2d/use_pixel_snap", false);
OS::get_singleton()->_keep_screen_on = GLOBAL_DEF("display/window/energy_saving/keep_screen_on", true);
if (rtm == -1) {
@@ -1185,7 +1201,6 @@ bool Main::start() {
String test;
String _export_preset;
bool export_debug = false;
- bool project_manager_request = false;
List<String> args = OS::get_singleton()->get_cmdline_args();
for (int i = 0; i < args.size(); i++) {
@@ -1195,7 +1210,7 @@ bool Main::start() {
} else if (args[i] == "-e" || args[i] == "--editor") {
editor = true;
} else if (args[i] == "-p" || args[i] == "--project-manager") {
- project_manager_request = true;
+ project_manager = true;
} else if (args[i].length() && args[i][0] != '-' && game_path == "") {
game_path = args[i];
}
@@ -1473,7 +1488,7 @@ bool Main::start() {
}
String local_game_path;
- if (game_path != "" && !project_manager_request) {
+ if (game_path != "" && !project_manager) {
local_game_path = game_path.replace("\\", "/");
@@ -1518,7 +1533,7 @@ bool Main::start() {
#endif
}
- if (!project_manager_request && !editor) {
+ if (!project_manager && !editor) {
if (game_path != "" || script != "") {
//autoload
List<PropertyInfo> props;
@@ -1626,7 +1641,7 @@ bool Main::start() {
}
#ifdef TOOLS_ENABLED
- if (project_manager_request || (script == "" && test == "" && game_path == "" && !editor)) {
+ if (project_manager || (script == "" && test == "" && game_path == "" && !editor)) {
ProjectManager *pmanager = memnew(ProjectManager);
ProgressDialog *progress_dialog = memnew(ProgressDialog);