summaryrefslogtreecommitdiff
path: root/core/config
AgeCommit message (Collapse)Author
2023-01-16Move global script class cache to separate filekobewi
2023-01-13Refactor ProjectSetting overridesJuan Linietsky
* Overrides no longer happen for set/get. * They must be checked with a new function: `ProjectSettings::get_setting_with_override()`. * GLOBAL_DEF/GLOBAL_GET updated to use this This change solves many problems: * General confusion about getting the actual or overriden setting. * Feature tags available after settings are loaded were being ignored, they are now considered. * Hacks required for the Project Settings editor to work. Fixes #64100. Fixes #64014. Fixes #61908.
2023-01-07Add support for the custom initial screen for the main window, fix primary ↵bruvzg
screen detection.
2023-01-06Merge pull request #68429 from KoBeWi/PropertySettingsRémi Verschelde
Add PropertyInfo overload for GLOBAL_DEF
2023-01-05One Copyright Update to rule them allRémi Verschelde
As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
2022-12-21Added the possibility to define a default value in ↵Marius Hanl
ProjectSettings.get_setting(), which is used when no setting is set. Also added tests for the project settings. Co-authored-by: Yuri Sizov <11782833+YuriSizov@users.noreply.github.com>
2022-12-17Remove Disable Touch debug project settingHugo Locurcio
This project setting was only implemented and iOS and likely served no purpose outside of debugging during development of engine features. It was also located in a confusing location in the project settings editor, as it was located below a root category (which appears in bold and is normally not seen as clickable by users).
2022-12-11Add PropertyInfo overload for GLOBAL_DEFkobewi
2022-11-29Project Manager: Fix hacky code for project renameRémi Verschelde
Instantiating a new ProjectSettings is *not* the way to go. ConfigFile works just fine to read/change a single value. Fixes memory leaks as the instantiated ProjectSettings was never freed. Forbid doing this to prevent such problems. Fixes #25661.
2022-11-15Merge pull request #64077 from ↵Rémi Verschelde
Calinou/tweak-audiostreamplayer2d3d-default-panning Decrease default AudioStreamPlayer2D/3D panning strength
2022-11-15Merge pull request #65836 from Calinou/add-max-physics-steps-per-frame-settingRémi Verschelde
Implement adjusting the maximum number of physics steps per rendered frame
2022-11-14Remove redundant Variant-types initializationsMarkus Sauermann
2022-11-08Remove duplicate project settings definitionskobewi
2022-10-31Merge pull request #67578 from KoBeWi/GEDITORRémi Verschelde
Unify usage of GLOBAL/EDITOR_GET
2022-10-20Fix localize_path with custom protocol identifiersGilles Roudière
2022-10-18Unify usage of GLOBAL/EDITOR_GETkobewi
2022-10-09Implement adjusting the maximum number of physics steps per rendered frameHugo Locurcio
When using high physics FPS (which is a requirement to minimize input lag and improve precision in simulation racing games), a higher value prevents the game from slowing down at low rendering FPS. This can be done via an Engine property for run-time changes, or a project setting for initial changes.
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-09Decrease default AudioStreamPlayer2D/3D panning strengthHugo Locurcio
The default panning strength is now more in line with how other engines play positional sound.
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