summaryrefslogtreecommitdiff
path: root/main/main.cpp
AgeCommit message (Collapse)Author
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-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
2022-05-06Merge pull request #58258 from Calinou/editor-doctool-auto-headlessRémi Verschelde
Make `--doctool` imply `--headless` to speed up class reference generation
2022-05-04Merge pull request #60723 from reduz/refactor-module-initializationRémi Verschelde
2022-05-04Refactor module initializationreduz
* Changed to use the same stages as extensions. * Makes the initialization more coherent, helping solve problems due to lack of stages. * Makes it easier to port between module and extension. * removed the DRIVER initialization level (no longer needed).
2022-05-03Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio
These typedefs don't save much typing compared to the full `Ref<Resource>` and `Ref<RefCounted>`, yet they sometimes introduce confusion among new contributors.
2022-04-26Rename variable names for some singletonsAaron Franke
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-04-04Improve autoload inheritance error messageJason Yundt
Autoloaded scripts should always inherit from Node. When you run a project that tries to autoload a script which doesn’t inherit from Node, then Godot gives an error. Before this change, the error said “Script does not inherit a Node”. That error message is a little bit misleading. If a class inherits a Node, then one of its superclasses has a Node. If a class inherits _from_ Node, then one of its superclasses is Node. This change corrects that mistake. Fixes #59884.
2022-04-04Add action map editor for OpenXRBastiaan Olij
2022-03-29Move OpenXR project settings to the main, to make them visible on ↵bruvzg
unsupported platforms.
2022-03-28Android port of the Godot EditorFredy Huya-Kouadio
These set of changes focus primarily on getting the core logic and overall Godot Editor UI and functionality up and running natively on Android devices. UI tweaks / cleanup / polish, as well configuration for Android specific functionality / restrictions will be addressed in follow-up PRs iteratively based on feedback. Co-authored-by: thebestnom <shoval.arad@gmail.com>
2022-03-18Merge pull request #58233 from bruvzg/gde_tsRémi Verschelde
2022-03-17Rename Project setting display/window/stretch/shrink to scaleMarkus Sauermann
2022-03-17Unify TextServer built-in module and GDExtension code.bruvzg
2022-03-15Merge pull request #59153 from Calinou/debug-stringnames-improveRémi Verschelde
Improve `--debug-stringnames` to be more useful
2022-03-15Improve `--debug-stringnames` to be more usefulHugo Locurcio
- Print all StringNames, not just the top 100. - Print statistics at the end of the list of StringNames, with unreferenced and rarely referenced StringNames. - List the CLI argument in `--help` and shell completion.
2022-03-13Make `-q` CLI argument toggle quiet stdout instead of quittingHugo Locurcio
`-q` is a common toggle in a command line applications for quiet mode (see apt or dnf for examples). In contrast, `--quit` isn't needed as often.
2022-03-13Tweak the display order of CLI arguments in `--help` for consistencyHugo Locurcio
`--profile-gpu` was renamed to `--gpu-profile` for consistency with `--gpu-abort`. This also updates the shell completion files to the latest `master` branch.
2022-03-13Cleanup embed subwindows getterskobewi
2022-03-11Convert uses of `DirAccess *` to `DirAccessRef` to prevent memleaksRémi Verschelde
`DirAccess *` needs to be deleted manually, and this is often forgotten especially when doing early returns with `ERR_FAIL_COND`. `DirAccessRef` is deleted automatically when it goes out of scope. Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-03-09Remove unused GDNative codeRémi Verschelde
This has been superseded by GDExtension so this code is no longer useful nor usable. There's still some GDNative-related stuff in platform export code which needs to be adapted for GDExtension (e.g. to include GDExtension libraries in exports).
2022-02-28Reorder native extension types initialization, initializing editor lastGilles Roudière
2022-02-23Implementing OpenXR driverBastiaan Olij
2022-02-20Fix extension registration order.Paulo Poiati
2022-02-18Revert "Fix extension registration order."Rémi Verschelde
This reverts commit 94ef200bab8feb5024b2c64ac14daa24e0c4cc55. This broke extension loading. Fixes #58273.
2022-02-17Make `--doctool` imply `--headless` to speed up class reference generationHugo Locurcio
This also prevents spawning an unnecessary splash screen window while the class reference is generated.
2022-02-16Fix extension registration order.Paulo Poiati
2022-02-15Editor: Cleanup some includes dependenciesRémi Verschelde
Removes some unnecessary includes from `editor_node.h`, and instead add those where they're used. Removes unnecessary `editor_node.h` includes in various editor classes. Renames `dynamicfont` to `dynamic_font` in a couple files. Misc cleanup while jumping through that rabbit hole.
2022-02-14Cleanup of preprocessor directives in main.cppTechnicalSoup
Remove redundant set of preprocessor directives and combine duplicate if statements.
2022-02-12Fix Project Manager crash on exit.bruvzg
Fix editor settings loading / saving by Project Manager.
2022-02-12Use EditorFileDialog instead of FileDialog in the project managerHendrik Brucker