summaryrefslogtreecommitdiff
path: root/core/config
AgeCommit message (Collapse)Author
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-10-03Rename `Engine.target_fps` and associated project setting to `max_fps`Hugo Locurcio
This makes the setting easier to find, as research has found there are numerous use cases to limiting FPS. This also improves documentation related to the Engine property and project setting. The project setting also works in projects exported in release mode, so its location in the `debug/` section was misleading.
2022-09-28Project supported features: Ignore old 'Vulkan Clustered/Forward' namesRémi Verschelde
This eases transition from beta 1 to beta 2 so that users don't get a warning about a missing feature. The names were just changed. The old feature names are removed from project.godot when opening such a project.
2022-09-21Merge pull request #65816 from bruvzg/proj_settings_missing_flagsRémi Verschelde
Add missing initial window flags and window mode to the project settings.
2022-09-20Merge pull request #65541 from clayjohn/renderer-settingRémi Verschelde
Split rendering driver project setting into renderer_name and rendering_driver
2022-09-19Split rendering driver project setting into renderer_name and ↵clayjohn
rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
2022-09-19Merge pull request #66079 from Zylann/project_settings_restartRémi Verschelde
Expose ProjectSettings.set_restart_if_changed(name, restart)
2022-09-19Expose ProjectSettings.set_restart_if_changed(name, restart)Marc Gilleron
2022-09-19Add missing initial window flags and window mode to the project settings.bruvzg
2022-09-18Fix inconsistent scene file name casing by moving existing Name_Casing code ↵ryburnj
to separate function in editor_node, and adding a call from both editor_node and scene_tree_dock.
2022-09-03Fix arm32 detection in Engine.Fabio Alessandrelli
The `__ARM_ARCH_7A__` and `__ARM_ARCH_7S__` are not enough, since they do not cover e.g. `__ARM_ARCH_8A__` in 32 bit mode, so instead of trying to cover any possible ARM version that can work in 32 bit mode, we can replace it with the `__arm__` macro which is defined for arm32 only (arm64 uses `__aarch64__`).
2022-09-01Merge pull request #64180 from aaronfranke/project-features-tools-onlyRémi Verschelde
2022-08-29Rename String `plus_file` to `path_join`Aaron Franke
2022-08-27Only compile project features logic in editor buildsAaron Franke
2022-08-27[Windows] Improve build environment detection, add support for Windows on ARM.bruvzg
2022-08-26Determine ProjectSettings' resource path earlyPedro J. Estébanez
2022-08-22Replace Array return types with TypedArraykobewi
2022-08-22Merge pull request #64610 from reduz/startup-benchmark-supportRémi Verschelde
2022-08-19Merge pull request #64334 from YuriSizov/core-bind-property-revert-methodsYuri Sizov
Make `property_*_revert` methods multilevel and expose them for scripting
2022-08-19Add Startup benchmarking supportJuan Linietsky
This adds support for benchmarking engine startup (and editor startup if used). The goal is to use this in the benchmarking server to track improvements and changes to engine, editor, importer and scene loading startup times.
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-18Make `property_*_revert` methods multilevel and expose them for scriptingYuri Sizov
2022-08-08Print expected `os.arch` tuple for current platform in GDExtension errorHugo Locurcio
This also adds `Engine.get_architecture_name()` to get the name of the CPU architecture the Godot binary was built for.
2022-08-06Only define `keep_screen_on` project setting onceRedMser
2022-08-02Merge pull request #61315 from lawnjelly/variant_bucket_poolsRémi Verschelde
Variant memory pools
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-25Allow loading override.cfg from PCK filesAaron Franke
2022-07-21Rename OSX to macOS and iPhoneOS to iOS.bruvzg
2022-07-04Variant memory poolslawnjelly
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-06-21Merge pull request #62122 from reduz/implement-movie-writerRémi Verschelde
Implement a Movie Maker mode
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-20Revert "Disable VRAM compression by default for small textures in Detect 3D"Juan Linietsky
2022-06-17Merge pull request #62023 from Calinou/detect-3d-small-textures-no-vram-compressRémi Verschelde
Disable VRAM compression by default for small textures in Detect 3D
2022-06-17Audio: Expose 2D/3D panning strength parametersEllen Poe
2022-06-14Disable VRAM compression by default for small textures in Detect 3DHugo Locurcio
This is done to prevent reducing texture quality when it doesn't save much video memory, especially for pixel art. The size threshold can be adjusted in the project settings. To get the previous behavior where textures detected to be used in 3D had their compression mode always set to VRAM, set this to the lowest value (16).
2022-06-07Add GLOBAL_DEF_INTERNAL to hide specific settingskobewi
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-17ProjectSettings: use RBMap again instead of HashMapRicardo Buring
This fixes corruption of project.godot and failure to load global classes.
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-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-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-03-11Merge pull request #58986 from akien-mga/diraccessrefRémi Verschelde
2022-03-11Merge pull request #58751 from bruvzg/loc_str_propsRémi Verschelde
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 Bullet module and thirdparty codeRémi Verschelde
It has been disabled in `master` since one year (#45852) and our plan is for Bullet, and possibly other thirdparty physics engines, to be implemented via GDExtension so that they can be selected by the users who need them.
2022-03-07Revert "Fix ProjectSettings has_setting() when used on a overriden setting ↵Rémi Verschelde
with feature tags"