diff options
-rw-r--r-- | core/project_settings.cpp | 58 | ||||
-rw-r--r-- | platform/osx/export/export.cpp | 15 | ||||
-rw-r--r-- | platform/osx/godot_main_osx.mm | 7 | ||||
-rw-r--r-- | platform/osx/os_osx.h | 1 | ||||
-rw-r--r-- | platform/osx/os_osx.mm | 11 |
5 files changed, 88 insertions, 4 deletions
diff --git a/core/project_settings.cpp b/core/project_settings.cpp index a74917162b..8de9fff3f1 100644 --- a/core/project_settings.cpp +++ b/core/project_settings.cpp @@ -262,6 +262,11 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack) { if (_load_settings("res://project.godot") == OK || _load_settings_binary("res://project.binary") == OK) { _load_settings("res://override.cfg"); +#ifdef DEBUG_ENABLED + } else { + // when debug version of godot is used, provide some feedback to the developer + print_line("Couldn't open project over network"); +#endif } return OK; @@ -279,6 +284,12 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack) { if (_load_settings("res://project.godot") == OK || _load_settings_binary("res://project.binary") == OK) { //load override from location of the main pack _load_settings(p_main_pack.get_base_dir().plus_file("override.cfg")); +#ifdef DEBUG_ENABLED + // when debug version of godot is used, provide some feedback to the developer + print_line("Successfully loaded " + p_main_pack + "/project.godot or project.binary"); + } else { + print_line("Couldn't load/find " + p_main_pack + "/project.godot or project.binary"); +#endif } return OK; @@ -286,12 +297,43 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack) { //Attempt with execname.pck if (exec_path != "") { + bool found = false; + + // get our filename without our path (note, not using exec_path.get_basename anymore because not all file systems have dots in their file names!) + String filebase_name = exec_path.get_file(); - if (_load_resource_pack(exec_path.get_basename() + ".pck")) { + // try to open at the location of executable + String datapack_name = exec_path.get_base_dir().plus_file(filebase_name) + ".pck"; + if (_load_resource_pack(datapack_name)) { + found = true; + } else { +#ifdef DEBUG_ENABLED + // when debug version of godot is used, provide some feedback to the developer + print_line("Couldn't open " + datapack_name); +#endif + datapack_name = filebase_name + ".pck"; + if (_load_resource_pack(datapack_name)) { + found = true; +#ifdef DEBUG_ENABLED + } else { + // when debug version of godot is used, provide some feedback to the developer + print_line("Couldn't open " + datapack_name); +#endif + } + } + // if we opened our package, try and load our project... + if (found) { if (_load_settings("res://project.godot") == OK || _load_settings_binary("res://project.binary") == OK) { - //load override from location of executable + // load override from location of executable _load_settings(exec_path.get_base_dir().plus_file("override.cfg")); + +#ifdef DEBUG_ENABLED + // when debug version of godot is used, provide some feedback to the developer + print_line("Successfully loaded " + datapack_name + "/project.godot or project.binary"); + } else { + print_line("Couldn't load/find " + datapack_name + "/project.godot or project.binary"); +#endif } return OK; @@ -312,6 +354,12 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack) { if (_load_settings("res://project.godot") == OK || _load_settings_binary("res://project.binary") == OK) { _load_settings("res://override.cfg"); +#ifdef DEBUG_ENABLED + // when debug version of godot is used, provide some feedback to the developer + print_line("Successfully loaded " + resource_path + "/project.godot or project.binary"); + } else { + print_line("Couldn't load/find " + resource_path + "/project.godot or project.binary"); +#endif } return OK; @@ -337,6 +385,12 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack) { candidate = current_dir; found = true; break; +#ifdef DEBUG_ENABLED + // when debug version of godot is used, provide some feedback to the developer + print_line("Successfully loaded " + current_dir + "/project.godot or project.binary"); + } else { + print_line("Couldn't load/find " + current_dir + "/project.godot or project.binary"); +#endif } d->change_dir(".."); diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp index 7f749030ec..2ec76fe0dd 100644 --- a/platform/osx/export/export.cpp +++ b/platform/osx/export/export.cpp @@ -88,8 +88,15 @@ public: }; void EditorExportPlatformOSX::get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) { - - // what does this need to do? + if (p_preset->get("texture_format/s3tc")) { + r_features->push_back("s3tc"); + } + if (p_preset->get("texture_format/etc")) { + r_features->push_back("etc"); + } + if (p_preset->get("texture_format/etc2")) { + r_features->push_back("etc2"); + } } void EditorExportPlatformOSX::get_export_options(List<ExportOption> *r_options) { @@ -112,6 +119,10 @@ void EditorExportPlatformOSX::get_export_options(List<ExportOption> *r_options) r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/identity"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/entitlements"), "")); #endif + + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "texture_format/s3tc"), true)); + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "texture_format/etc"), false)); + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "texture_format/etc2"), false)); } void EditorExportPlatformOSX::_make_icon(const Ref<Image> &p_icon, Vector<uint8_t> &p_data) { diff --git a/platform/osx/godot_main_osx.mm b/platform/osx/godot_main_osx.mm index 83d782cc2f..84e58a7323 100644 --- a/platform/osx/godot_main_osx.mm +++ b/platform/osx/godot_main_osx.mm @@ -74,6 +74,13 @@ int main(int argc, char **argv) { } } +#ifdef DEBUG_ENABLED + // lets report the path we made current after all that + char cwd[4096]; + getcwd(cwd, 4096); + printf("Current path: %s\n", cwd); +#endif + OS_OSX os; Error err = Main::setup(argv[0], argc - first_arg, &argv[first_arg]); diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h index ebaebd84ce..ee44d8c570 100644 --- a/platform/osx/os_osx.h +++ b/platform/osx/os_osx.h @@ -181,6 +181,7 @@ public: virtual void get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen = 0) const; virtual String get_executable_path() const; + virtual String get_resource_dir() const; virtual LatinKeyboardVariant get_latin_keyboard_variant() const; diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index f502fb9a9c..ffc497b780 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -1736,6 +1736,17 @@ String OS_OSX::get_executable_path() const { } } +String OS_OSX::get_resource_dir() const { + // start with our executable path + String path = get_executable_path(); + + int pos = path.find_last("/Contents/MacOS/"); + if (pos < 0) + return OS::get_resource_dir(); + + return path.substr(0, pos) + "/Contents/Resources/"; +} + // Returns string representation of keys, if they are printable. // static NSString *createStringForKeys(const CGKeyCode *keyCode, int length) { |