1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00
Commit Graph

227 Commits

Author SHA1 Message Date
Thaddeus Crews
686b56fae9 Merge pull request #106434 from Ivorforce/invert-hashfuncs
Reduce cross project includes by rewriting `HashMapHasherDefault`.
2025-10-06 09:06:37 -05:00
Thaddeus Crews
dd6ffaabdc Merge pull request #105793 from Ivorforce/gdtype-the-first
Core: Add initial architecture for first-class `Object` types. Optimize `is_class`
2025-10-06 09:06:36 -05:00
Lukas Tenbrink
9d44b68867 Remove rw_lock.h and rb_map.h includes from object.h. 2025-10-05 23:29:04 +02:00
Lukas Tenbrink
ad600125df Rewrite HashMapHasherDefault based on type traits - it is now possible to declare a default hashing function for any type.
Remove cross-project includes from `hashfuncs.h`.
Improve hashing function for `Color` (based on values instead of `String`).
Move `Variant` comparison from `hash_map.h` to `dictionary.cpp` (`VariantComparatorDictionary`), where it's used.
Remove now unnecessary `HashableHasher`.
2025-10-05 01:49:11 +02:00
Thaddeus Crews
f6aa5ba23c Merge pull request #97210 from AleksLitynski/object-snapshot-debugger
Add an ObjectDB Profiling Tool
2025-10-03 12:01:11 -05:00
Lukas Tenbrink
ac85d24e64 Add GDType and Object::_gdtype_ptr for first-class Object typing.
The type is currently bare-bones, but will be expanded in future PRs.
2025-10-01 18:49:48 +02:00
David Snopek
2c707a911f GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once 2025-09-30 14:48:06 -05:00
Thaddeus Crews
a20ca7bbfe Merge pull request #110459 from YeldhamDev/let_the_poor_ints_slide
Allow to use sliders for integers in `EditorSpinSlider`
2025-09-22 13:28:52 -05:00
Michael Alexsander
f16ff829f0 Allow to use sliders for integers in EditorSpinSlider 2025-09-22 11:23:15 -03:00
Lukas Tenbrink
96619d46a1 Use AncestralClass to speed up Object::cast_to when possible. 2025-09-22 13:21:51 +02:00
Thaddeus Crews
149a4b4ca1 Merge pull request #107868 from lawnjelly/quick_ancestry4
Provide quick access to `Object` ancestry
2025-09-20 13:41:39 -05:00
Thaddeus Crews
555e7ad073 Core: Handle disabled class detection in ClassDB 2025-08-26 09:31:14 -05:00
Aleksander Litynski
78f1543e35 Add an ObjectDB Profiling Tool
A new tab is added to the debugger that can help profile a game's memory usage.

Specifically, this lets you save a snapshot of all the objects in a running
game's ObjectDB to disk. It then lets you view the snapshot and diff two
snapshots against each other. This is meant to work similarly to Chrome's
heap snapshot tool or Unity's memory profiler.
2025-07-08 16:39:24 +02:00
lawnjelly
14a814586a Provide quick access to Object ancestry 2025-06-23 07:11:11 +01:00
Haoyu Qiu
a7ab249a2a Make PROPERTY_HINT_GROUP_ENABLE hide properties by default 2025-06-16 20:03:49 +08:00
Rémi Verschelde
22702244f8 Merge pull request #105414 from KoBeWi/disable_uid_here
Add `@export_file_path` to export raw paths (no UID)
2025-06-13 01:30:24 +02:00
Michael Alexsander
454e4f817c Make build profile project detection also set build options 2025-06-03 11:11:33 -03:00
Rindbee
5e2396e001 Add a flag to make the connection automatically emit the source object.
Mainly used to improve the connection dialog.

Not implemented in `emit_signalp()`, append the source object when a PackScene is instantiated.
2025-05-27 20:19:03 +08:00
Thaddeus Crews
06301bee3e Merge pull request #106775 from Ivorforce/gdsoftclass-expand
Move compatible functionality from `GDCLASS` to `GDSOFTCLASS`.
2025-05-26 11:24:26 -05:00
Lukas Tenbrink
621a8d14fa Move compatible functionality from GDCLASS to GDSOFTCLASS. 2025-05-26 17:41:15 +02:00
kobewi
42249bb659 Add @export_file_path to export raw paths (no UID) 2025-05-22 13:25:17 +02:00
Logan Detrick
1a427d3dec Add feature hint string and "On" text for checkable groups 2025-05-21 14:56:55 -07:00
Thaddeus Crews
d237e31a89 Style: Remove redundant DEBUG_METHODS_ENABLED
• Replaced with functionally identical and far more ubiquitous `DEBUG_ENABLED`
2025-05-15 13:09:41 -05:00
Thaddeus Crews
1c4b660312 Merge pull request #96611 from Dynamic-Pistol/master
Add `PROPERTY_HINT_INPUT_NAME` for use with `@export_custom` to allow using input actions
2025-05-13 16:22:25 -05:00
Lukas Tenbrink
e57427900f Use BinaryMutex instead of Mutex for StringName. 2025-04-28 17:13:26 +02:00
Dynamic-Pistol
c8fed1e1d0 Add PROPERTY_HINT_INPUT_NAME
Added PROPERTY_HINT_INPUT_NAME for StringName based off https://github.com/godotengine/godot-proposals/discussions/7559
2025-04-23 22:23:44 +02:00
Lukas Tenbrink
91fe434a86 Always use String as StringName backing internally. 2025-04-23 14:57:03 +02:00
Thaddeus Crews
0cc292f880 Merge pull request #105272 from lodetrick/add_section_toggle
Add enable checkboxes to editor sections
2025-04-21 08:24:20 -05:00
Juan
2f39d8ebef Add thread safety to Object signals
* It turns out the majority of this work was done already by AThousandShips as part of #89451. This allows to do lock-less emitting of signals.
* This means, that only the signal map needs to be protected, making the task simple and without risk of deadlocks, or affecting performance.
* Objects can choose to not protect signals for performance (as example Node uses thread guards for protection, so these signals are not thread safe).
2025-04-16 17:14:44 +02:00
cier
ebe9370724 Add enable checkboxes to editor sections
Fixes https://github.com/godotengine/godot-proposals/issues/4173
2025-04-15 13:49:41 -07:00
Lukas Tenbrink
fbe64ffb45 Change get_class_static to return StringName.
Use that static `get_class_static` for `_get_class_namev` to avoid duplication.
2025-04-08 23:25:05 +02:00
Thaddeus Crews
36991aba34 Merge pull request #104264 from YYF233333/layout/gdvirtual
Optimize gdvirtual function layout
2025-04-08 12:32:51 -05:00
Thaddeus Crews
5dc7d56b92 Merge pull request #105099 from Ivorforce/object-classname-cache
Fix caching of objects' class name pointer in `Object` instances.
2025-04-08 12:32:40 -05:00
Lukas Tenbrink
e7f087b91a Fix caching of objects' class name pointer in Object instances.
Use `get_class_name` for `get_class` calls. Merge `get_parent_class_static` into `get_class_static`.
2025-04-07 21:05:21 +02:00
Thaddeus Crews
5edb235018 CI: Bump various pre-commit hooks 2025-04-07 08:23:35 -05:00
Thaddeus Crews
046c9f540c Merge pull request #105030 from Ivorforce/class-is-enabled-object
Move `GD_IS_CLASS_ENABLED` and respective include from `class_db.h` to `object.h`, as this is where it's needed.
2025-04-04 17:40:58 -05:00
Lukas Tenbrink
aa5ca4f1a2 Move GD_IS_CLASS_ENABLED and respective include from class_db.h to object.h, as this is where it's needed. 2025-04-04 23:45:35 +02:00
Thaddeus Crews
78922d756a Core: Decouple GDCLASS from ClassDB 2025-04-04 16:21:30 -05:00
Yufeng Ying
057858a0fb Optimize gdvirtual layout.
Co-authored-by: David Snopek <dsnopek@gmail.com>
2025-04-04 22:54:42 +08:00
Lukas Tenbrink
e6d166344b Remove unused get_inheritance_list_static from GDCLASS. 2025-04-03 17:18:28 +02:00
Lukas Tenbrink
be82731f99 Removed unused get_valid_parents_static functions from GDCLASS. 2025-04-02 13:50:47 +02:00
Thaddeus Crews
1f1b1c56e7 Merge pull request #104381 from Ivorforce/object-notification-nobool
Optimize `Object::notification` by avoiding runtime branches
2025-04-01 19:53:37 -05:00
Lukas Tenbrink
8a76e31547 Remove bool from Object::notification virtual function; replace with separate functions to avoid branching. 2025-04-01 15:26:32 +02:00
Thaddeus Crews
abd565eb19 Merge pull request #104844 from Ivorforce/gdsoftclass
Add and require `GDSOFTCLASS` for `Object` subclasses that want to cast but do not use `GDCLASS`.
2025-03-31 19:02:03 -05:00
Lukas Tenbrink
fa0a3c9c6e Add and require GDSOFTCLASS for Object subclasses that want to cast but do not use GDCLASS. 2025-03-31 20:49:50 +02:00
Thaddeus Crews
8f6bb119f4 Merge pull request #100602 from KoBeWi/over_100_changes_in_50_random_files_aka_the_best_kind_of_PR
Add templated version of `ObjectDB::get_instance()`
2025-03-31 12:03:47 -05:00
kobewi
bc9d0c7835 Add templated version of ObjectDB::get_instance() 2025-03-27 15:43:23 +01:00
Lukas Tenbrink
dd9dc75a83 Optimize Object::cast_to by assuming no virtual and multiple inheritance, gaining 8x throughput over dynamic_cast.
Add `-Wvirtual-inheritance` to compiler warnings as a sanity check.
2025-03-27 15:39:53 +01:00
A Thousand Ships
d9721954e6 [Core] Use Vector for MethodInfo::arguments 2025-03-10 13:57:53 +01:00
Thaddeus Crews
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00