1
0
Fork 0
Commit Graph

859 Commits

Author SHA1 Message Date
Thaddeus Crews e33f89fe27
Merge pull request #111323 from HolonProduction/rm-script
Remove `Object::script`
2025-10-10 10:26:09 -05:00
Raul Santos 09ad9e535b
Rename `MTVIRTUAL` to `DEBUG_VIRTUAL` 2025-10-09 22:11:18 +02:00
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
HolonProduction 2adecffbc3 Remove `Object::script` 2025-10-06 16:27:53 +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