Commit Graph

951 Commits

Author SHA1 Message Date
StarryWorm 357fa00a4a rm class_db.h from resource.h 2026-02-27 19:08:29 -05:00
Thaddeus Crews abdde1b69d Core: Remove class_db.h include from ref_counted.h 2026-02-26 18:14:23 -06:00
Rémi Verschelde 16f5289f42 ClassDB: Allow binding bitfield enums and constants from separate namespaces 2026-02-25 18:49:35 +01:00
Thaddeus Crews b98838a7b9 Core: Add missing integral conversions to Variant 2026-02-24 12:48:23 -06:00
Thaddeus Crews 9a19d32fdb Merge pull request #116541 from Ivorforce/a-variant-shaped-pool
Move variant pools to their own compile unit.
2026-02-21 12:17:01 -06:00
Lukas Tenbrink e9465cd380 Move variant pools to their own compile unit. 2026-02-21 13:24:17 +01:00
Lukas Tenbrink e75aa9ed86 Include some headers explicitly in some important spots, to estimate include costs better. 2026-02-20 15:33:03 +01:00
Thaddeus Crews 83f30234d2 Merge pull request #112785 from Ivorforce/clang-tidy-ci
Integrate `clang-tidy` into CI
2026-02-19 19:20:42 -06:00
Lukas Tenbrink 6e345f80ec Integrate (a nerfed version of) clang-tidy into CI.
For now, it's integrated into core, main and scene only.
Fix a few superficial clang-tidy failures.
2026-02-20 00:49:00 +01:00
Lukas Tenbrink a6adb12240 Remove message_queue.h include from object.h. 2026-02-20 00:27:41 +01:00
Thaddeus Crews fa56f71ddd Merge pull request #107452 from Ivorforce/bit-math-header
Move binary math functions to `Math` namespace in `math_funcs_binary.h`
2026-02-17 09:28:31 -06:00
Thaddeus Crews ff9085448e Merge pull request #112459 from Repiteo/core/variant-comparison-cleanup
Core: Clean up `Variant` comparison operators
2026-02-17 09:28:19 -06:00
Lukas Tenbrink 0ea5ece984 Move binary math functions to Math namespace in math_funcs_binary header. 2026-02-17 12:24:35 +01:00
Thaddeus Crews 2d5b30c476 Merge pull request #115963 from blueskythlikesclouds/reduce-includes-to-rd
Reduce includes to rendering device.
2026-02-12 08:19:16 -06:00
Thaddeus Crews 92a90a8e6f Merge pull request #114558 from Chaosus/fix_precision
Fix parameter precision for `ease`/`step_decimals` function
2026-02-10 10:34:39 -06:00
Skyth 8fbf2f1e14 Reduce includes to rendering device.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2026-02-10 16:58:50 +03:00
Lukas Tenbrink c5df0cb82b Don't right-align escaped newlines, e.g. for #define. This has previously led to long diffs in the commit history. 2026-02-04 19:31:28 +01:00
Lukas Tenbrink 1950689f1d Do not include input_enums.h and keyboard.h from variant.h and binder_common.h. 2026-01-29 12:12:53 +01:00
Thaddeus Crews f5d21bfa9c Merge pull request #113228 from dalexeev/gds-improve-const-eval-array-dict
GDScript: Improve evaluation of constant expressions with arrays/dictionaries
2026-01-26 13:14:24 -06:00
David Snopek 5d995a9558 Fix crash when converting Variant to incompatible RequiredPtr<T> 2026-01-20 19:12:15 -06:00
Danil Alexeev 6d06b3a7d6 GDScript: Improve evaluation of constant expressions with arrays/dictionaries 2026-01-12 11:59:38 +03:00
Danil Alexeev 37f09e579e Core: Fix implicit conversions in ContainerTypeValidate 2026-01-09 22:54:08 +03:00
Chaosus 46a62fc0c2 Fix parameter precision for ease/step_decimals function 2026-01-03 16:20:19 +03:00
Rémi Verschelde d2eb458b2b RequiredPtr: Fix template conditional for MSVC
Fixes #114206.
2025-12-19 23:40:25 +01:00
Lukas Tenbrink ebc9aebb69 Optimize RequiredParam to not increase and decrease refcounts on call. 2025-12-03 21:21:18 +01:00
Thaddeus Crews 9f76aa3df5 Merge pull request #113282 from dsnopek/required-ptr-get-out-there
Use `RequiredParam`/`RequiredResult` in some high value places
2025-12-02 20:42:53 -06:00
David Snopek fc92ce3e7f Use RequiredParam/RequiredResult in some high value places 2025-12-02 10:44:12 -06:00
Rémi Verschelde 6d4ad21903 Merge pull request #113211 from aaronp64/type_by_name_map
Make `Variant::get_type_by_name` `HashMap` initialization thread-safe
2025-12-02 14:16:41 +01:00
Rémi Verschelde 37cfae845b Merge pull request #113132 from aaronp64/variant_op_eval
Reuse/optimize common `OperatorEvaluator*::evaluate` logic
2025-12-02 14:16:32 +01:00
aaronp64 5f7566a72e Reuse/optimize common OperatorEvaluator*::evaluate logic
Added CommonEvaluate class to be used by OperatorEvaluator* classes that have the same logic for `evaluate` and `validated_evaluate`. CommonEvaluate initializes the return Variant to the correct type, then passes through to validated_evaluate, reducing code duplication between evaluate/validated_evaluate and avoiding the overhead of creating/destroying temporary Variants from previous evaluate implementations.
2025-11-28 11:06:19 -05:00
aaronp64 8ac43f4733 Make Variant::get_type_by_name HashMap initialization thread-safe
Updated Variant::get_type_by_name to call separate function for static HashMap initialization, which includes adding the initial key/value pairs.
2025-11-26 15:01:49 -05:00
Lukas Tenbrink 109d3d8530 Make Vector bsearch method const. 2025-11-25 19:05:30 +01:00
David Snopek d95d49ee12 Add RequiredParam<T> and RequiredValue<T> to mark Object * arguments and return values as required
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
2025-11-24 12:12:09 -06:00
Thaddeus Crews 2c11facde0 Merge pull request #112853 from aaronp64/dictionary_error_key
Include key in `Dictionary::operator[]` error message
2025-11-18 08:25:47 -06:00
kobewi e14263f917 Remove empty constructors and destructors from core/ 2025-11-17 20:09:05 +01:00
aaronp64 c18332740c Include key in Dictionary::operator[] error message
Include key in error message when lookup fails
2025-11-16 18:06:04 -05:00
Thaddeus Crews cabbc616c2 Core: Cleanup Variant comparison operators 2025-11-05 19:22:41 -06:00
David Snopek bc9f3c7d92 Make Vector<T>::duplicate() const
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2025-11-04 17:13:11 -06:00
David Snopek fc58be9bfc GDExtension: Add system for builtin method compatibility 2025-11-04 17:12:31 -06:00
Thaddeus Crews f50d7fa1e8 Merge pull request #110709 from DeeJayLSP/dict-reserve
Add `reserve()` to `Dictionary`, apply to constructors on GDScript VM
2025-10-20 18:09:58 -05:00
Thaddeus Crews 7390c358f5 Core: Consolidate typed container logic 2025-10-15 08:04:51 -05:00
StarryWorm c17e76572d Fix type_info.h includes 2025-10-14 11:12:41 -04:00
Thaddeus Crews 16a11ac88b Merge pull request #111358 from Ivorforce/no-variant-hasher
Remove `VariantHasher` and `VariantComparator` in favour of specialising `HashMapHasherDefault` and `HashMapComparatorDefault`.
2025-10-10 10:26:12 -05:00
Thaddeus Crews d4a87d9bb3 Merge pull request #106636 from Ivorforce/dictionary-mutating-fix
Fix `Dictionary::operator[]` from C++ accidentally modifying `const` dictionaries.
2025-10-10 10:26:01 -05:00
Thaddeus Crews c41e47034e Merge pull request #111342 from Ivorforce/dict-assert-no-string
Assert that `dictionary.h` does not include `String`, and that neither of the fundamental containers include `Object`
2025-10-09 11:46:50 -05:00
Thaddeus Crews 7efb51c9d3 Merge pull request #111361 from Ivorforce/cleanup-hashfuncs
Clean up `hashfuncs.h`
2025-10-09 11:46:43 -05:00
Lukas Tenbrink f678729f89 Clean up hashfuncs.h: Move long functions to hashfuncs.cpp and replace static with inline. Remove hash_make_uint64_t and hash_make_uint32_t. 2025-10-07 13:50:18 +02:00
Lukas Tenbrink d2ee378d1c Remove VariantHasher and VariantComparator in favour of specializing HashMapHasherDefault and HashMapComparatorDefault. 2025-10-07 13:47:39 +02:00
Gergely Kis 6c44c80c62 LibGodot: Core - Build Godot Engine as a Library
* Add a new GodotInstance GDCLASS that provides startup and iteration commands to control a Godot instance.
* Adds a libgodot_create_godot_instance entry point that creates a new Godot instance and returns a GodotInstance object.
* Adds a libgodot_destroy_godot_instance entry point that destroys the Godot instance.

Sample Apps: https://github.com/migeran/libgodot_project

Developed by [Migeran](https://migeran.com)

Sponsors & Acknowledgements:

* Initial development sponsored by [Smirk Software](https://www.smirk.gg/)
* Rebasing to Godot 4.3 and further development sponsored by [Xibbon Inc.](https://xibbon.com)
* The GDExtension registration of the host process & build system changes were based
  on @Faolan-Rad's LibGodot PR: https://github.com/godotengine/godot/pull/72883
* Thanks to Ben Rog-Wilhelm (Zorbathut) for creating a smaller, minimal version for easier review.
* Thanks to Ernest Lee (iFire) for his support

Co-Authored-By: Gabor Koncz <gabor.koncz@migeran.com>
Co-Authored-By: Ben Rog-Wilhelm <zorba-github@pavlovian.net>
2025-10-07 02:15:41 +02:00
Lukas Tenbrink 839e0358b3 Assert that dictionary.h does not include String, and that neither of the fundamental containers include Object. 2025-10-06 23:03:27 +02:00