Thaddeus Crews
eafc21fb05
Merge pull request #112784 from migueldeicaza/fix_dynamic_xcframework_loading
...
iOS: Fix loading of xcframework dynamic libraries.
2025-11-18 08:25:45 -06:00
kobewi
e14263f917
Remove empty constructors and destructors from core/
2025-11-17 20:09:05 +01:00
Miguel de Icaza
b1465d6af0
iOS: Fix loading of xcframework dynamic libraries.
...
The logic used to determine whether to invoke the in-memory registration or to
delegate the loading of a library is incorrect for xcframework packages - as
these can contain either static or dynamic libraries.
This change instead lets the operating system handle the library request, and if
it fails, it attempts to load from the internal registry.
With this change, xcframeworks containing dynamic libraries work without
workarounds on iOS.
With an additional fallback case courtesy of @bruvzg
This fixes https://github.com/godotengine/godot/issues/112783
2025-11-14 16:31:09 -05:00
David Snopek
fc58be9bfc
GDExtension: Add system for builtin method compatibility
2025-11-04 17:12:31 -06:00
Thaddeus Crews
d845f0960d
Merge pull request #112351 from charjr/fix-array-remove-at
...
GDExtension: Add missing method flag
2025-11-04 16:32:51 -06:00
John Charman
c342ce423c
GDExtension: Add missing method flag
...
Add GDEXTENSION_METHOD_FLAG_VIRTUAL_REQUIRED
2025-11-04 18:44:11 +00:00
Thaddeus Crews
ae9732139a
Merge pull request #109433 from KoBeWi/hastension
...
Add `has_extension()` method to String
2025-10-31 09:23:30 -05: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
dc5e615a1d
Remove Array include from dictionary.h and ustring.h.
2025-10-06 16:21:36 +02: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
Thaddeus Crews
76c039fb09
Merge pull request #108725 from dsnopek/gdextension-mem-alloc-pad-align
...
GDExtension: Add `mem_alloc2` (and friends) so padding can be requested
2025-09-30 18:35:09 -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
Edward Moulsdale
e366471fdc
Add GDSOFTCLASS to deeper inheritors of Object
2025-09-24 19:15:56 +01:00
Thaddeus Crews
f279257883
Merge pull request #110537 from dsnopek/gdextension-do-not-update-gdextension-special-compat-hashes
...
GDExtension: Update warning about `gdextension_special_compat_hashes.cpp` to prevent confusion
2025-09-16 20:28:55 -05:00
Quentin Quaadgras
e9131550b1
add codeblock indentation back to --dump-extension-api-with-docs
...
xml codeblock indentation was changed from spaces to tabs but the tabs
were being replaced with empty strings when exported with
--dump-extension-api-with-docs, this is small change so that tab
characters are no longer replaced.
2025-09-16 22:04:32 +12:00
Yufeng Ying
a50fc5acd8
Change ClassDB::get_class_list and related stuff.
2025-09-16 15:00:33 +08:00
David Snopek
d0a0d8b798
GDExtension: Update warning about gdextension_special_compat_hashes.cpp to prevent confusion
2025-09-15 14:02:56 -05:00
Emmanuel Leblond
a7f224375a
Fix classdb_register_extension_class* documentation in core/extension/gdextension_interface.h
2025-08-28 22:11:14 +02:00
kobewi
a33ae0be0e
Add has_extension() method to String
2025-08-12 13:15:16 +02:00
Thaddeus Crews
b1792e5fb5
Merge pull request #109309 from dsnopek/gdextension-startup-callback-after-reload
...
GDExtension: Call startup callback only after reload is fully finished
2025-08-07 10:40:35 -05:00
David Snopek
92d9227d4a
GDExtension: Call startup callback only after reload is fully finished
2025-08-05 08:30:39 -05:00
Yarvin
1aca96d139
Postpone adding new extension plugins to the editor.
...
----
Extension EditorPlugins added during Hot Reload on Initialization level
Editor were being attached to the scene tree before all the GDExtension
Classes (such as already loaded resources) are re-initialized.
2025-08-04 21:57:22 +02:00
David Snopek
91a4a28aab
GDExtension: Add mem_alloc2 (and friends) so padding can be requested
2025-07-17 16:16:05 -05:00
David Snopek
e325c4bdba
GDExtension: Prevent compatibility breakage from change to ClassDB::instantiate() for unexposed classes
2025-07-14 14:09:23 -05:00
A Thousand Ships
f11aff3841
Editor: Restructure editor code
...
Moving various editor files into sub folders to reduce clutter
2025-07-04 18:18:22 +02:00
David Snopek
d5eb66947b
Fix minor inconsistencies and errors in gdextension_interface.h
2025-06-22 07:56:00 -05:00
David Snopek
3b7e34556c
GDExtension: Always run shutdown callback before deinitializing any levels
2025-06-18 07:51:12 -05:00
Lukas Tenbrink
b13a0e1834
Rename String::resize to resize_uninitialized, to better communicate to callers that new characters must be initialized.
2025-06-11 18:13:02 +02:00
Rémi Verschelde
e9775a0c57
Merge pull request #106030 from raulsntos/gdextension/main-loop-callbacks
...
[GDExtension] Add function to register main loop callbacks
2025-06-10 12:29:52 +02:00
Raul Santos
73488f5afd
[GDExtension] Add function to register main loop callbacks
2025-06-10 04:55:20 +02:00
David Snopek
e4aaf9fbc6
GDExtension: Check if class without recreate callback is creatable, before marking whole extension as unreloadable
2025-06-09 10:34:57 -05:00
Thaddeus Crews
cc4bbf78fb
Merge pull request #105345 from Zylann/gdextension_print_version
...
Print Godot version when an extension is found to be incompatible
2025-06-04 10:34:24 -05:00
Michael Alexsander
454e4f817c
Make build profile project detection also set build options
2025-06-03 11:11:33 -03: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
5b935881fc
Typed array equality operator logic updated
...
• Instead of calling to `_ref`, the same effect is achieved by calling to the base class assignment operator
• No longer need to be expose `_ref`; set back to private & remove reference from gdextension_interface
2025-05-13 14:41:16 -05:00
Lukas Tenbrink
ec32dae1da
Rename _strlen_clipped to strnlen (and use the system equivalent for char * inputs).
...
Add `strnlen` for `char16_t *` and `wchar_t *`.
2025-05-06 15:17:07 +02:00
Thaddeus Crews
01fc9aee6c
Core: Modernize C headers with C++ equivalents
2025-05-02 08:23:01 -05:00
kobewi
5af4bef46f
Inline static variables (part 1)
2025-04-29 18:10:44 +02:00
Thaddeus Crews
f8a8d6cf04
Merge pull request #105700 from dementive/config-file-get-improvement
...
Improve ConfigFile get_sections and get_section_keys by returning Vector<String>
2025-04-27 19:21:31 -05:00
Lukas Tenbrink
f2bab45202
Fix GDExtensionLoader using the wrong super type in GDSOFTCLASS.
2025-04-27 10:28:08 +02:00
dementive
b8e44a0000
Improve ConfigFile get_sections and get_section_keys by returning Vector<String>
2025-04-24 20:10:31 -04:00
Marc Gilleron
ab36db2cfa
Print Godot version when an extension is found to be incompatible
2025-04-13 14:14:23 +02:00
Thaddeus Crews
0fbb22c095
Merge pull request #104432 from YYF233333/dict_iter2
...
Do not iterate `Dictionary` with `Dictionary::keys()`
2025-04-07 08:43:33 -05:00
Thaddeus Crews
5edb235018
CI: Bump various pre-commit hooks
2025-04-07 08:23:35 -05:00
Yufeng Ying
8ae16699c5
Do not use Dictionary::keys() for Dictionary iteration.
2025-04-05 18:42:13 +08: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
Kiro
23129a66ed
Replace append_utfx with direct String::utfx
2025-03-30 19:56:38 +02:00
Thaddeus Crews
780cf03051
Merge pull request #104556 from Ivorforce/string-extend-instead-of-parse
...
Use `append_` instead of `parse_` for `String` methods.
2025-03-29 10:16:33 -05:00