Commit graph

856 commits

Author SHA1 Message Date
Thaddeus Crews
e20acd3fe3
Merge pull request #111289 from HolonProduction/rm-has-named-classes
Move deprecated `has_named_classes` from `ScriptLanguage` to `ScriptLanguageExtension`
2025-10-08 13:56:37 -05:00
Lukas Tenbrink
5df5c2212a Simplify gdvirtual.gen.inc _get_method_info arguments with a helper function.
# Conflicts:
#	core/object/make_virtuals.py
2025-10-07 22:23:43 +02:00
Thaddeus Crews
89e3587cd8
Merge pull request #111339 from HolonProduction/obj-pack
Bitpack more `Object` booleans
2025-10-07 11:54:34 -05:00
Thaddeus Crews
1c643549f3
Merge pull request #111337 from Ivorforce/gdvirtual-init-virtual-ptr
Abstract `Object` virtual pointer init into a method instead of duplicating it across `gdvirtual.gen.inc`
2025-10-07 11:54:31 -05:00
Lukas Tenbrink
91c48b3151 Abstract Object virtual pointer init into a method instead of duplicating it across gdvirtual.gen.inc. 2025-10-07 00:12:40 +02:00
HolonProduction
7b2e148687 Bitpack more Object booleans 2025-10-06 22:01:22 +02:00
Thaddeus Crews
5935a32e32
Core: Cleanup headers in core/config
- `MainLoop` now forward-declared in `OS`
2025-10-06 09:20:56 -05:00
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
HolonProduction
abeb9c654e Move deprecated has_named_classes from ScriptLanguage to ScriptLanguageExtension 2025-10-05 16:55:06 +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
Thaddeus Crews
f44aa13a9f
Merge pull request #111090 from dsnopek/gdextension-compat-unexposed-classes-redo
GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once
2025-10-02 15:12:00 -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
Thaddeus Crews
93fd5c7ad0
Merge pull request #110907 from beicause/extension-deconstruct-before-object
Free script and extension instance before object deconstructing
2025-09-30 18:35:10 -05: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
fdf32d1b2a
Merge pull request #108577 from YYF233333/global_class_list
Simplify `ScriptServer::get_global_class_list`
2025-09-30 11:19:10 -05:00
Luo Zhihao
727066fe1f Free script and extension instance before object deconstructing
Co-Authored-By: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-09-26 18:15:08 +08:00
A Thousand Ships
bd65cfa876
Revert "Replace many uses of is_class with derives_from."
This reverts commit 78b743cf4a.
2025-09-25 13:48:53 +02:00
Lukas Tenbrink
8ef4a43ada Replace many uses of is_class with derives_from. 2025-09-23 19:59:00 +02: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
3fa7c65914
Merge pull request #108504 from precup/optimize-duplicate
Avoid unnecessary copy in ClassDB::get_property_list
2025-09-18 12:42:27 -05:00
Thaddeus Crews
38d80598f5
Merge pull request #108121 from Repiteo/core/disabled-class-rework
Core: Handle disabled class detection in `ClassDB`
2025-09-17 11:34:16 -05:00
Yufeng Ying
a50fc5acd8 Change ClassDB::get_class_list and related stuff. 2025-09-16 15:00:33 +08:00
aaronp64
cfde73ac17 Remove unused parameter in __constant_get_enum_name/__constant_get_bitfield_name
Removed unused String parameter in __constant_get_enum_name() and __constant_get_bitfield_name() to avoid creating/destroying extra Strings.
2025-09-02 13:13:12 -04:00
Clay John
6339f31a02
Merge pull request #109770 from RandomShaper/fix_signal_antifree
Fix regression in mechanism to hold objects while emitting
2025-09-01 19:42:13 -07:00
Pedro J. Estébanez
a25846507d Fix regression in mechanism to hold objects while emitting 2025-08-28 18:23:27 +02:00
Thaddeus Crews
221731f30e
Merge pull request #110003 from WinnerWind/fix-zero-threadcount
Revert "Prevent crashing if `max_threads` is zero."
2025-08-27 13:39:44 -05:00
WinnerWind
976016b701 Revert "Prevent crashing if max_threads is zero."
This reverts commit a1788e09bf.
2025-08-27 09:02:34 +05:30
Thaddeus Crews
555e7ad073
Core: Handle disabled class detection in ClassDB 2025-08-26 09:31:14 -05:00
Yarvin
b2e4c4f334 Fix typo - is_deprecated was being set twice, skipping is_experimental. 2025-08-19 13:54:41 +02:00
Thaddeus Crews
f5152699bc
Merge pull request #108768 from WinnerWind/fix-zero-threadcount
FIX: Prevent crashing if `max_threads` is zero.
2025-08-18 08:29:04 -05:00
WinnerWind
a1788e09bf Prevent crashing if max_threads is zero.
Adds a note in the docs that a thread count of 0 has the same effect as a thread count of -1.

Change language of WorkerThreadPool in ProjectSettings

Co-Authored-By: Tomasz Chabora <kobewi4e@gmail.com>
2025-08-17 20:12:41 +05:30
David Snopek
3eed53686b Don't use alloca() in Object::emit_signalp() to prevent stack overflow 2025-08-14 09:54:59 -05:00
Pāvels Nadtočajevs
9fd98410df
Automatically unregister loggers when script language is deinitialized. 2025-08-02 18:29:00 +03:00
clayjohn
2a8ac1c05b Allow processing low priority threads on calling thread in the WTP.
This fixes a recent regression. In theory, low priority tasks should always go to the queue and never be executed on the calling thread. However, when using NO_THREADS build, all tasks need to execute on the calling thread.
2025-07-30 23:15:38 -07:00
clayjohn
782b9e328c Ensure that threads only process one pump task.
This is necessary because we will always deadlock if a thread takes on multiple pump tasks since pump tasks never return.

This means when using separate threads for certain systems (like physics or rendering), we need to be sure that there are enough threads to have at least one per system (to ensure forward progress).
2025-07-29 07:15:34 -07:00
kobewi
188e313dd8 Fix Variant properties losing value upon script update 2025-07-12 20:29:19 +02:00
Mike Precup
047edb8933 Avoid unnecessary copy in get_property_list 2025-07-10 17:06:13 -07:00
Mikael Hermansson
3528e83ff3 Various fixes and style nitpicks 2025-07-09 14:27:48 +02: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
Lukas Tenbrink
df7dab4946 Use idiomatic templating vargs in a few places to reduce code. 2025-06-08 12:24:07 +02:00
Pāvels Nadtočajevs
b6461a3bd5
Add WorkerThreadPool.get_caller_group_id 2025-06-05 14:23:26 +03:00