1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-22 15:06:45 +00:00
Commit Graph

382 Commits

Author SHA1 Message Date
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