summaryrefslogtreecommitdiff
path: root/main/main.cpp
AgeCommit message (Collapse)Author
2021-03-17Tweak the editor splash screen color to better match the default themeHugo Locurcio
This helps achieve a visually "smoother" transition between the splash screen and the editor.
2021-03-12Fixes small typos and grammar correctionAnshul7sp1
2021-03-05Move cursor shape loading after module loadingJohannes
fixes #46685
2021-02-28Logger: Cache 'flush_stdout_on_print' to improve performance, and works ↵Mateo Kuruk Miccino
before ProjectSettings starts. ProjectSetting: Now 'application/run/flush_stdout_on_print' requires a restart of the Editor to take effect
2021-02-25Remove GDScript bindings for OS.get/set_exit_code, ↵Emmanuel Leblond
SceneTree.quit(<exit_code>) should be used instead
2021-02-22Merge pull request #46307 from RandomShaper/fix_crash_mono_glueRémi Verschelde
Make glue generation shutdown more graceful
2021-02-22Merge pull request #46313 from goostengine/tests-init-translation-serverRémi Verschelde
Initialize `TranslationServer` in the test environment
2021-02-22Initialize `TranslationServer` in the test environmentAndrii Doroshenko (Xrayez)
2021-02-22Make glue generation shutdown more gracefulPedro J. Estébanez
2021-02-18Merge pull request #46131 from bruvzg/move_tablet_to_dsRémi Verschelde
Move tablet driver API from OS to DisplayServer
2021-02-18Added ability to override built-in actions for the editorEric M
This adds the ability to add overrides for built-in actions (i.e. ui_*) in the editor. Also added a number of additional built-in actions for various text-related actions, gui-generic actions (like copy and paste) and graph-related actions (duplicate nodes), etc. Moved the definition of input actions to input_map, rather than in project_settings so the editor can make use of these actions as well.
2021-02-18Move tablet driver API from OS to DisplayServer.bruvzg
2021-02-18Reorganize Project Settingsreduz
-Advanced Settings toggle also hides advanced properties when disabled -Simplified Advanced Bar (errors were just plain redundant) -Reorganized rendering quality settings. -Reorganized miscelaneous settings for clean up.
2021-02-18Disable engine splash logic on Android; this is now handled by the Android ↵Fredia Huya-Kouadio
theme api. In addition, add support for scaling and applying filter to the splash screen on Android. One limitation of the api being used is that the splash screen aspect ratio is not maintained when it's scaled up.
2021-02-10Make Servers truly Thread Safereduz
-Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread). -RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault. -Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory). -3D physics server changed to be made multithread friendly. -Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads. -Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
2021-02-02Main: Load translations and remaps before scene typesRémi Verschelde
This ensures that settings like `gui/theme/custom_font` handle resource remappings properly, as they load resources in `register_scene_types()`. Path remaps used to be done before loading scene types in early Godot versions (as hinted by the "Load Remaps" comment just before "Load Scene Types") but this was broken when developing new localization features. Fixes #17640.
2021-01-31Merge pull request #45315 from RandomShaper/modernize_threadRémi Verschelde
Modernize Thread
2021-01-29Add GDNative JSON generator for the builtin APIGeorge Marques
Which can be used by language bindings to generate code statically. This is generated as a different file from the class API because it has different requirements (the builtin types have constructors and don't have signals), so bindings can better make use of each JSON file without extra parsing. This also cleans up a bit the old API generator, mainly initializing structs and renaming "instanciable" to the more correct "instantiable". The argument description in help text was updated to better reflect how it should be used. The <path> argument is mandatory.
2021-01-29Modernize ThreadPedro J. Estébanez
- Based on C++11's `thread` and `thread_local` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed (except for the few cases of non-portable functions) - Simpler for `NO_THREADS` - Thread ids are now the same across platforms (main is 1; others follow)
2021-01-24Shadow map rendering optimizationreduz
-All shadow rendering is done with raster now (no compute) -All shadow rendering is done by rendering directly to the shadow atlas -Improved how buffer clearing is done to optimize the above. -Ability to set shadows as 16 bits.
2021-01-24Several GI related optimizations and fixesreduz
-SDFGI direct light is done over many frames -SDFGI Changed settings for rays/frame -SDFGI Misc optimizations -SDFGI Bug fix on probe scroll -GIProbe was not working, got it to work again -GIProbe dynamic objects were not working, fixed -Added a half size GI option.
2021-01-19Modernize RWLockPedro J. Estébanez
- Based on C++14's `shared_time_mutex` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed - Simpler for `NO_THREADS`
2021-01-09Split OS::execute into two methodsMarcel Admiraal
1. execute(): Executes a command and returns the results. 2. create_process(): Creates a new process and returns the new process' id.
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-29Fix warning spam when using `--help` or `--version` command line argumentHugo Locurcio
When a project setting is not found, a warning message is printed. This moves the default value declaration so it can be found when the `--help` or `--version` command line arguments are used.
2020-12-22Rename MainLoop methods to match Node methodsMarcel Admiraal
2020-12-15Add a project setting to enable stdout flushing in release buildsHugo Locurcio
This can be used in server builds for journalctl compatibility.
2020-12-03Reorganize rendering server.reduz
-Made RenderingServerScene abstract, allowing reimplementation -RenderingServerRaster -> RenderingServerDefault, but this class is going away soon.
2020-12-02Refactor DocData into core and editor (DocTools) partsThakee Nathees
2020-11-26[Complex Text Layouts] Refactor Font class, default themes and controls to ↵bruvzg
use Text Server interface. Implement interface mirroring. Add TextLine and TextParagraph classes. Handle UTF-16 input on macOS and Windows.
2020-11-26[Complex Text Layouts] Implement TextServer interface. Implement Fallback ↵bruvzg
TextServer.
2020-11-19Merge pull request #43661 from EricEzaM/PR/INP2-rename_load_from_globalsRémi Verschelde
load_from_globals() -> load_from_project_settings()
2020-11-19load_from_globals() -> load_from_project_settings()Eric M
2020-11-18allow vulkan validation layers in release builds if explicity asked forJordan Schidlowsky
2020-11-17Fix CLI export when export_path is in preset.Fabio Alessandrelli
Export presets contains the export_path option, to specify the default export location, but the CLI export option disregarded that, and always required and export path to be specified. After this commit, if the export path is not specified in the command, the one in the preset will be used, erroring only if it's not present or invalid.
2020-11-16Merge pull request #42167 from madmiraal/fix-42108Rémi Verschelde
Remove the unnecessary sync() and the restrictions it imposes on 3D Physics.
2020-11-10Merge pull request #43369 from Calinou/allow-svg-project-iconRémi Verschelde
Allow using SVG images as project icon
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-11-06Allow using SVG images as project iconHugo Locurcio
Since exporters will save their own icon, the target platforms don't have to support SVG to display the icon correctly. This closes #23068.
2020-11-06Refactored Variant Operators.reduz
-Using classes to call and a table -For typed code (GDS or GDNative), can obtain functions to call prevalidated or ptr.
2020-10-30Refactor pixel snapping.reduz
-Rename pixel_snap to snap_2d_to_vertices -Added snap_2d_to_transforms which is more useful Fixes #41814 Solves proposal https://github.com/godotengine/godot-proposals/issues/1666 Supersedes #35606, supersedes #41535, supersedes #41534
2020-10-27Vulkan: Make validation layers optionalRémi Verschelde
They're now disabled by default, and can be enabled with the command line argument `--vk-layers`. When enabled, the errors about them being missing are now warnings, as users were confused and thought this meant Vulkan is broken for them. Fix crash in `~VulkanContext` when validation layers are disabled (exposed by this PR since before they could not be disabled without source modification). Also moved VulkanContext member initializations to header. Fixes #37102.
2020-10-01iOS: move touch delay to settingsSergey Minakov
2020-09-24OS: Remove unused get_splash_tick_msecRémi Verschelde
It was added in 3e20391bf607dc7c452b056854aed4a8c99ba0f6 but it doesn't seem particularly useful, and it was only implemented for the custom splash branch and not the default one, so it could return an uninitialized int.
2020-09-23Ignore thread models when compiling with NO_THREADFabio Alessandrelli
The thread model option for physics (2D) and rendering (single-unsafe, single-safe, multithread), was causing crashes/locks when set as multithreaded and exported for a platform that does not support threads (namely HTML5). This commit ensures that when threads support is not available, that option is ignored, and the equivalent of "single-unsafe" is always used instead.
2020-09-18Remove the unnecessary sync() and the restrictions it imposes on 3D Physics.Marcel Admiraal
2020-09-03Merge pull request #41332 from bruvzg/win_subsys_optionRémi Verschelde
Revert #41164, add subsystem build option.
2020-09-02Merge pull request #41190 from Xrayez/main-loop-type-classRémi Verschelde
Accept global classes for `MainLoop` type in project settings
2020-08-17Revert "[Windows] Attach to parent console instead of creating new one."bruvzg
This reverts commit 4f7a49db53c6aaabeca70fe8901144af708fb6b2.
2020-08-16Port ClassDB tests to use doctestAndrii Doroshenko (Xrayez)
Extracted the most minimal core initialization functionality from `setup()` and `setup2()` so that `ClassDB` could be tested properly (input, audio, rendering, physics etc, are excluded). Display and rendering servers/singletons are not initialized at all. Due to the fact that most subsystems are disabled, fixed various crashes in the process (in order): - `AcceptDialog` OK/cancel swap behavior (used `DisplayServer` while `register_scene_types()`); - `make_default_theme` which depends on `RenderingServer`; - `XRServer` singleton access while calling `register_modules_types()`; - hidden bug in a way joypads are cleaned up (MacOS and Linux only). Removed manual `ClassDB` init/cleanup calls from `test_validate_testing.h`. ClassDB tests: Co-authored-by: Ignacio Etcheverry <ignalfonsore@gmail.com>