193 Commits

Author SHA1 Message Date
b889fc3ce8 Fix buffer overrun with enums pointers cast to int64_t* when enum is only 32-bit
(cherry picked from commit 7576dc5930)
2025-01-27 15:59:15 -06:00
71b5b84fb1 [Bindings] Build profile now strips methods and skip files
This allows removing dependencies that are not explicitly unused by the
gdextension being built and is implemented using an intermediate json
API file with the methods and classes stripped (i.e. without touching
the file generators).

(cherry picked from commit c4f1abe3f9)
2025-01-27 15:58:30 -06:00
f9095a5552 Fix incorrect generation of some C++ operators
(cherry picked from commit 9949d09f3e)
2024-09-03 17:14:57 -05:00
63c67a9977 Avoid hardcoded type conversion for metadata
The engine uses the names `int` and `float` to refer to the 64-bit types, so in the bindings generator we have a hardcoded conversion for those types.

But this type conversion should not be used for metadata. Even though the underlying type should still be 64-bit for interop, metadata is meant to specify the correct type to expose. So if metadata says `float` it means the type is really meant to be a 32-bit `float` and not `double`. Other hardcoded type conversions (`int` and `Nil`) won't ever be metadata.

This change corrects the `float` type, to use the right type in the generated C++ code. Before we were always using `double` due to this type conversion.

(cherry picked from commit 4829199081)
2024-09-03 17:14:48 -05:00
12f6eecf65 Make generated code mostly style compliant
(cherry picked from commit f131efb791)
2024-09-03 17:14:15 -05:00
c35e7545b7 Integrate .pre-commit-config.yaml
(cherry picked from commit e0d363aad8)
2024-07-17 09:17:36 -05:00
19f56af1be Fix some style details in generation
(cherry picked from commit e7a13e3bf4)
2024-07-17 09:12:21 -05:00
7f3e914c6d Enforce p_ prefixes for arguments in binds
(cherry picked from commit 9e2771f918)
2024-07-17 09:11:54 -05:00
528b7801d2 Add support for build profiles.
Allow enabling or disabling specific classes (which will not be built).

(cherry picked from commit 1186c488bd)
2024-07-17 09:06:07 -05:00
c5204a2e84 Add default argument processing for NodePath
(cherry picked from commit 37e7a6da05)
2024-06-14 12:44:10 -05:00
a6e5caacf8 Fix generating default values for StringName
Cases other than `&""` were not processed correctly

(cherry picked from commit 6cd6c8923a)
2024-06-14 12:44:10 -05:00
246fd4718c Fix vararg methods forwarded to the ClassDB singleton
(cherry picked from commit e04a26b2bc)
2024-06-14 12:44:10 -05:00
18354f9b9b Clean up instance bindings for engine singletons to prevent crash
(cherry picked from commit 88df025aa0)
2024-05-17 16:40:13 -05:00
acee69a3f6 Allow forwarding from ClassDB to ClassDBSingleton to support enumerations
(cherry picked from commit e1b3b32db5)
2024-05-17 16:35:22 -05:00
7473b984cb Enforce template syntax typename over class
(cherry picked from commit 87f5fb0691)
2024-04-08 11:49:37 -05:00
98ad839827 Avoid creating most objects that Godot is going to use placement new to initialize
(cherry picked from commit c4fde852e6)
2024-04-08 11:45:25 -05:00
a07b1f6e07 [Packed*Array] Add support for initializer lists.
(cherry picked from commit 8c98a90f32)
2024-04-08 11:44:28 -05:00
dc19986497 Fix object return value of builtin types' methods.
(cherry picked from commit 6a3753c076)
2024-03-11 12:46:39 -05:00
c2d4ccd592 Switch to 64-bit ints.
(cherry picked from commit 59a5a8b104)
2024-03-11 12:46:27 -05:00
3129672a4f Remove "godot" namespace when binding global constants.
(cherry picked from commit bd40a94424)
2024-01-22 15:29:36 -06:00
c0b2d85ffc Add missing OP_POWER operator to Variant
(cherry picked from commit f037a697eb)
2024-01-22 15:29:27 -06:00
943d1c8cdf Change bit field enums to use uint64_t as underlying type 2023-11-28 01:03:41 +01:00
4fed88afcf Merge pull request #1307 from LAK132/master
Fix file list issues when trying to build with meson via cmake
2023-11-24 12:35:29 +01:00
39c139c814 Fix file list issues when trying to build with meson via cmake 2023-11-11 23:29:33 +10:30
d33bd47219 Add CallableCustom that devs can use in their GDExtensions 2023-11-06 00:09:06 -06:00
64eac01d04 Merge pull request #1266 from dsnopek/automatic-engine-class-registration
Automatically register only engine classes whose header has been included
2023-10-16 10:47:06 -05:00
b507b3e591 Automatically register only engine classes whose header has been included 2023-10-16 10:19:11 -05:00
3d814f9e4a Use the new string_name_new_with_latin1_chars function to improve StringName construction performance 2023-10-09 16:59:29 -05:00
b1fd1b65fd Merge pull request #1242 from AThousandShips/null_check
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-20 07:32:14 -05:00
0d6de7a80e Merge pull request #1164 from dsnopek/classdb-singleton-alternate
Add static methods to `ClassDB` for the methods bound to the `ClassDB` singleton
2023-09-19 10:33:15 -05:00
1e5767693e Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-13 14:34:04 +02:00
5cdc2fc099 Merge pull request #1214 from dsnopek/ptrtoarg-native-struct
Ensure that PtrToArg specializations for native structs are used
2023-09-08 10:12:23 -05:00
8990d5a40e Merge pull request #1091 from Daylily-Zeleen/daylily-zeleen/implement_builtin_classes_vararg_methods
Implement vararg methods of builtin classes.
2023-09-02 08:04:29 -05:00
3cd3f24150 Ensure that PtrToArg specializations for native structs are used 2023-08-15 17:54:11 -05:00
5eebc6b20c Merge pull request #1193 from Zylann/version_header
Added generated version header
2023-08-11 10:33:49 -05:00
6f913563d8 Add static methods to ClassDB for the methods bound to the ClassDB singleton 2023-07-31 16:04:27 -05:00
8bc1c1dbeb Implement String::resize() 2023-07-31 15:14:10 -05:00
c6b2c82570 Added generated version header 2023-07-26 23:23:56 +01:00
548c758677 Don't cache null forever if a singleton isn't available yet
# Conflicts:
#	binding_generator.py
2023-07-22 16:31:28 +01:00
efc16b49d9 In generated methods, only construct the method StringName the first time 2023-07-13 13:05:41 -05:00
3536803e9e Implement vararg methods of builtin classes. 2023-07-03 17:30:42 +08:00
130644c061 Merge pull request #1138 from dsnopek/editor-plugins-deinitialize
Automatically remove editor plugins when deinitializing GDExtension
2023-06-19 10:43:34 +02:00
ca78bcf558 Merge pull request #1086 from lucasrafael98/fixes/missing-include-audio-frame
Fix: Include method_ptrcall.hpp on simple structs.
2023-06-19 10:43:10 +02:00
f56f45156b Merge pull request #1143 from bruvzg/py_utf8
Force UTF-8 encoding in the binding generator script.
2023-06-16 10:30:08 +02:00
f1ad719ffc Force UTF-8 encoding in the binding generator script. 2023-06-16 10:41:23 +03:00
db2394dbe7 Identifiers containing double underscore are reserved according to the C++ standard
Rename __* to _gde_*

https://timsong-cpp.github.io/cppwp/n3337/global.names

https://en.cppreference.com/w/cpp/language/identifiers

Identifiers appearing as a token or preprocessing token (i.e., not in user-defined-string-literal like operator ""id) (since C++11) of one of the following forms are reserved:
 - identifiers with a double underscore anywhere;
 - identifiers that begin with an underscore followed by an uppercase letter;
 - in the global namespace, identifiers that begin with an underscore.
2023-06-15 20:45:01 -04:00
d28a3cbbd5 Automatically remove editor plugins when deinitializing GDExtension 2023-06-13 14:24:33 -05:00
d12cf071bb Merge pull request #1128 from Mathis-Z/master
Fixing #1127 by making return types of auto-generated functions dynamic
2023-06-08 22:31:51 +02:00
ac98dd2752 Fixing #1127 by making return types of auto-generated functions dynamic 2023-06-08 20:35:29 +02:00
ad726015e7 Revert the changes from PR #1044 and #1045 and standardize on Object ** encoding in ptrcall 2023-06-07 08:30:33 -05:00