summaryrefslogtreecommitdiff
path: root/core/config
AgeCommit message (Collapse)Author
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"
2022-03-04Improve app name and system permission message localization.bruvzg
Add localizable string (Dictionary<Lang Code, String>) property editor and property hint. Add localized "app name" property to the project settings. Add localized permission and copyright properties to the macOS and iOS export settings. Remove some duplicated ("app name") and deprecated ("info") macOS and iOS export properties.
2022-03-02Always register the Smooth Trimesh Collision project settingHugo Locurcio
This ensures the project setting never disappears from the editor, even if the current physics engine is GodotPhysics. This also adds documentation for the Smooth Trimesh Collision project setting.
2022-02-12Use EditorFileDialog instead of FileDialog in the project managerHendrik Brucker
2022-02-12Merge pull request #57641 from Geometror/compilation-time-improvements-1Rémi Verschelde
2022-02-12Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker
2022-02-11has_setting now correctly returns true when the setting is present due to a ↵BimDav
feature tag
2022-02-09Core: Move generated `VERSION_HASH` to a `.cpp` fileRémi Verschelde
This lets us have its definition in `core/version.h` and avoid rebuilding a handful of files every time the commit hash changes.
2022-01-29Rename the physics server `run_on_thread` project settingsHugo Locurcio
`run_on_separate_thread` is more explicit.
2022-01-17Merge pull request #55020 from bruvzg/vlk_device_surface_checkRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-11-25Don't show errors when getting nonexistent settingsAaron Franke
2021-11-25Move logic for saving project features to ProjectSettings save_customAaron Franke
2021-11-24Project feature warning systemAaron Franke
2021-11-22[Vulkan] Check each device capabilities before selecting it.bruvzg
Split instance and physical device selection function and move device selection to window creation, to reject devices without present capability. Add device preferred type check in discrete > integrated > virtual > cpu > other order. Add device list printout. Add command line argument to override device selection.
2021-11-22Ignore override.cfg when in editorkobewi
2021-10-18Restrict the project data directory configurationne0fhyk
2021-10-13Fix character encoding of Engine::get_copyright_infoNathan Franke
2021-10-11Make the project data directory customizable.ne0fhyk
2021-10-05Merge pull request #52711 from m4gr3d/provide_getter_for_project_data_dir_masterRémi Verschelde
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-15Provide a getter for the project data directory.ne0fhyk
2021-09-10Fix path with multiple slashes not being corrected on templatesRicardo Subtil
2021-08-26Use OrderedHashMap for autoloads to preserve orderLyuma
2021-08-25Add ability to register singletons from engine APIreduz
* Exposed functions in Engine to register and unregister singletons. * Added the concept of user singletons, which can be removed (the system ones can't).
2021-08-11Rename `iterations_per_second` to `physics_ticks_per_second`Hugo Locurcio
This makes it clearer that this property is only about physics FPS, not rendering FPS. The `physics_fps` project setting was also renamed to `physics_ticks_per_second` for consistency.
2021-08-09Use doubles for time in many other placesAaron Franke
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-15Misc cleanup of header includesRémi Verschelde
Was looking for misuse of module headers without checking that the module is actually enabled and got carried away...
2021-07-12Change VSync mode project setting enum type from string to integerHendrik Brucker
2021-07-06Restructure and reimplement vsync optionsHendrik Brucker
-Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX -Removed the V-Sync via Compositor option
2021-07-01Use PROPERTY_USAGE_NONE instead of 0 for no property usageAaron Franke
Also use const more often.
2021-06-25Implement native extension systemreduz
* Deprecates GDNative in favor of a simpler, lower level interface. * New extension system allows registering core engine classes. * Simple header interface in gdnative_interace.h
2021-06-20Merge pull request #48359 from Calinou/add-engine-print-error-propertyRémi Verschelde
2021-06-16Save binary ProjectSettings key length properlyHaoyu Qiu