summaryrefslogtreecommitdiff
path: root/main/main.cpp
AgeCommit message (Collapse)Author
2022-08-22C#: Begin move to .NET CoreIgnacio Roldán Etcheverry
We're targeting .NET 5 for now to make development easier while .NET 6 is not yet released. TEMPORARY REGRESSIONS --------------------- Assembly unloading is not implemented yet. As such, many Godot resources are leaked at exit. This will be re-implemented later together with assembly hot-reloading.
2022-08-18Merge pull request #55032 from Calinou/tweak-default-window-sizeYuri Sizov
Increase the default project window size for better usability
2022-08-18Increase the default project window size for better usabilityHugo Locurcio
The new default window size is tuned to: - Have a 16:9 aspect ratio, - Have both dimensions divisible by 8 to better play along with video recording, - Be displayable correctly in windowed mode on a 1366×768 display (tested on Windows 10 with default settings). This breaks compatibility with projects that didn't change the window size from the default value (or that kept one of the values to its default).
2022-08-13Hide Dummy text driver in the Project Settings as it makes editor unusableHugo Locurcio
This also improves documentation related to driver project settings.
2022-08-06Only define `keep_screen_on` project setting onceRedMser
2022-08-04Tests: Silence some intentional errorsRémi Verschelde
Also fix printing messages in ClassDB test.
2022-08-02Merge pull request #61315 from lawnjelly/variant_bucket_poolsRémi Verschelde
Variant memory pools
2022-08-01Add support for command-line user arguments.Juan Linietsky
Implements the standard Unix double dash (--) commandline argument: * Arguments after a double dash (--) are ignored by Godot and stored for the user. * User can access them via `OS.get_cmdline_user_args()` Example: `godot.exe scene_to_run.tscn --fullscreen -- --start-level 2`
2022-07-29Merge pull request #62601 from smix8/navigation_3d_debug_4.xRémi Verschelde
2022-07-29Add more detailed Navigation Debug Visualizationsmix8
- Adds more customization options to ProjectSettings. - Displays navregion edge connections and navigation polygon edges in editor and at runtime. - Majority of debug code moved from SceneTree to NavigationServer. - Removes the irritating debug MeshInstance child node from NavigationRegion3D and replaces it with direct RenderingServer API.
2022-07-28Rename RenderingServer global shader uniform methods to be more explicitHugo Locurcio
The `global_shader_uniform` name is longer, but it makes it much easier to find the methods when searching in the class reference.
2022-07-28Add startup flag to override XR mode settingsBastiaan Olij
2022-07-28Merge pull request #62414 from Calinou/movie-maker-add-quit-on-endRémi Verschelde
2022-07-27Allow setting a window stretch scale below 1.0Aaron Franke
2022-07-27Add a Movie Quit On Finish property to AnimationPlayerHugo Locurcio
This quits the project when an animation is done playing in the given AnimationPlayer, but only in Movie Maker mode. When this happens, a message is printed with the absolute path of the AnimationPlayer node that caused the engine to quit. This can be used to create videos that stop at a specified time without having to write any script. A report is now also printed to the console when the video is done recording (as long as the engine was exited properly). This report is unfortunately not always visible in the editor's Output panel, as it's printed too late. A method was also added to get the path to the output file from the scripting API.
2022-07-24Mark some editor settings as requiring editor restartPedro J. Estébanez
2022-07-22Implement a Worker ThreadPoolreduz
This PR implements a worked thread pool. It uses a fixed amount of threads in a pool and allows scheduling tasks that can be run on threads (and then waited for). It satisfies the following use cases: * HTML5 thread count is fixed (and similar restrictions are known in consoles) so we need to reuse threads. * Thread spawning is slow in general, so reusing threads is faster anyway. * This implementation supports recursive waiting for tasks, making it less prone to deadlocks if threads from the pool also run tasks. After this is approved and merged, subsequent PRs will be needed to replace the ThreadWorkPool usage by this class.
2022-07-22Merge pull request #63286 from RandomShaper/fix_debugger_focusRémi Verschelde
2022-07-21Fix editor re-focus on debugger break on WindowsPedro J. Estébanez
2022-07-21Rename OSX to macOS and iPhoneOS to iOS.bruvzg
2022-07-19Abort running if --path does not existkobewi
2022-07-12Merge pull request #41833 from dalexeev/splash_delayYuri Sizov
Add boot splash minimum display time setting
2022-07-07[macOS] Improve file association handling, and allow URL schema handling.bruvzg
2022-07-04Variant memory poolslawnjelly
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-07-02Merge pull request #62556 from akien-mga/displayserver-no-headless-fallbackRémi Verschelde
DisplayServer: Don't fallback to headless
2022-07-02Fix exit code of --help and --version, and test them in CIJan Haller
Corrects prior regression which caused ERROR output and exit code of 1.
2022-07-01DisplayServer: Don't fallback to headlessRémi Verschelde
Unless users requested the headless driver specifically, they expect to either see a window, or that the process terminates if there's an error. Currently it would fallback to headless so they'd unexpectedly get a valid headless instance if their DisplayServer failed initializing (e.g. missing Vulkan support). Fixes #58414.
2022-06-30Command line arguments '--version' and '--help' return exit code 0 instead ↵Jan Haller
of 255 Allows to detect whether those commands executed successfully, which makes integration with shell scripts/CI/bindings straightforward.
2022-06-29Merge pull request #62084 from smix8/path_debug_options_4.xRémi Verschelde
Add Path2D/3D debug options
2022-06-28Add boot splash display time settingDanil Alexeev
Implements #8867.
2022-06-21Implement Running Godot as Movie Writerreduz
* Allows running the game in "movie writer" mode. * It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time). * If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult. * Implements a simple, default MJPEG writer. This new features has two main use cases, which have high demand: * Saving game videos in high quality and ensuring the frame rate is *completely* stable, always. * Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this). **Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly). Usage: $ godot --write-movie movie.avi [scene_file.tscn] Missing: * Options for configuring video writing via GLOBAL_DEF * UI Menu for launching with this mode from the editor. * Add to list of command line options. * Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-06-20Add Path2D/3D debug optionssmix8
Add Path2D/3D debug options.
2022-06-16Merge pull request #61951 from Calinou/ios-touch-delay-add-property-hintRémi Verschelde
2022-06-16Merge pull request #61908 from ↵Rémi Verschelde
Calinou/crash-handler-message-tweak-exported-project
2022-06-15Add Godot 3.x -> Godot 4.x project converterRafał Mikrut
2022-06-12Mark some common project settings as basicHugo Locurcio
2022-06-12Add a property hint for the iOS touch delay project settingHugo Locurcio
2022-06-10Tweak default crash handler message in exported projectsHugo Locurcio
When an exported project crashes, the crash handler message shouldn't reference the Godot issue tracker, as not all crashes are Godot's fault. Reporting crashes that only occur on exported projects is still allowed, but it should not be done by people who aren't working on the project in question.
2022-06-01Change Server initialization orderreduz
* Registration of server classes happened after Display initialization. * This made no sense in practice and avoided the registration of custom server drivers (like custom XR server, custom Rendering server, custom XR server). * Initialization moved to _before_ Display.
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-17Hide the first `--print-fps` outputs after the engine has startedHugo Locurcio
The first 2 or 3 prints are inaccurate since the engine has just started at that point.
2022-05-16Rename `--vk-layers` command line argument to `--gpu-validation`Hugo Locurcio
The new name is independent of the graphics API in use. This prepares Godot for implementations of graphics APIs other than Vulkan.
2022-05-16Merge pull request #60986 from fire-forge/capitalismRémi Verschelde
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-13Merge pull request #60894 from derammo/derammo_opengl3_windowsRémi Verschelde
2022-05-12Capitalize/fix some property enum hintsFireForge
2022-05-12Move Display settings higher in the listkobewi
2022-05-12Add a new HashMap implementationreduz
Adds a new, cleaned up, HashMap implementation. * Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing). * Keeps elements in a double linked list for simpler, ordered, iteration. * Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much for performance vs keeping the key, but helps replace old code). * Uses a more modern C++ iterator API, deprecates the old one. * Supports custom allocator (in case there is a wish to use a paged one). This class aims to unify all the associative template usage and replace it by this one: * Map<> (whereas key order does not matter, which is 99% of cases) * HashMap<> * OrderedHashMap<> * OAHashMap<>
2022-05-11opengl3 driver now works on windows including multi windowderammo
fixed and simplified gl_manager_windows swap buffers now called for all windows fixed missing pixel format setting in additional windows this makes them work in OpenGL contexts changed verbose error printing to write once this error message happens very frequently while opengl3 is not finished removed dead code no longer needed after changes fixed comments that were misinformation window messages during window creation now handled these were previously discarded messages now tunnel the required context changed failure to create opengl3 window on windows to be more fatal marked a problem with pen code conditional compilation of vulkan and opengl3 on windows fixed windows debug builds now show messages on debug console also rendering driver selection box now shows only compiled drivers marked some problematic code thanks to akien-mga for patiently rewriting my style mistakes