Commit Graph

217 Commits

Author SHA1 Message Date
David Snopek
4a9409a30f Update GDVIRTUAL*() macros to match Godot 4.4 2025-02-26 12:56:55 -06:00
Brecht Kuppens
7576dc5930 Fix buffer overrun with enums pointers cast to int64_t* when enum is only 32-bit 2025-01-20 10:29:16 +01:00
David Snopek
65046d00a5 Merge pull request #1676 from dsnopek/gdextension-virtual-method-compat
Update for virtual method compatibility system
2025-01-12 05:28:38 -06:00
David Snopek
5c9529fc84 Update for virtual method compatibility system 2025-01-11 16:36:59 -06:00
Fabio Alessandrelli
c4f1abe3f9 [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).
2025-01-07 20:33:12 +01:00
Thaddeus Crews
2ffff669f5 Implement typed dictionaries 2024-09-17 15:05:16 -05:00
Raul Santos
9a89d226c7 Correct type for char16 and char32 meta 2024-08-23 00:33:11 +02:00
David Snopek
265412cc53 Merge pull request #1557 from mihe/cpp-operators
Fix incorrect generation of some C++ operators
2024-08-22 16:45:18 -05:00
David Snopek
62305943a7 Merge pull request #1555 from raulsntos/fix-r1722784216
Avoid hardcoded type conversion for metadata
2024-08-22 16:30:17 -05:00
Mikael Hermansson
9949d09f3e Fix incorrect generation of some C++ operators 2024-08-21 20:37:52 +02:00
Raul Santos
4829199081 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.
2024-08-20 14:53:22 +02:00
A Thousand Ships
f131efb791 Make generated code mostly style compliant 2024-07-17 17:29:31 +02:00
David Snopek
56cd3fd99e Unexpose UtilityFunctions::is_instance_valid() 2024-07-01 12:29:28 -05:00
Thaddeus Crews
e0d363aad8 Integrate .pre-commit-config.yaml 2024-06-24 15:43:55 -05:00
A Thousand Ships
e7a13e3bf4 Fix some style details in generation 2024-06-18 17:46:54 +02:00
David Snopek
ed1e963a31 Merge pull request #1490 from AThousandShips/arg_name_fix
Enforce `p_` prefixes for arguments in binds
2024-06-18 10:43:27 -05:00
Fabio Alessandrelli
1186c488bd Add support for build profiles.
Allow enabling or disabling specific classes (which will not be built).
2024-06-15 16:19:41 +02:00
A Thousand Ships
9e2771f918 Enforce p_ prefixes for arguments in binds 2024-06-14 16:05:03 +02:00
David Snopek
ee9acbcf10 Merge pull request #1488 from AThousandShips/default_node_path
Add default argument processing for `NodePath`
2024-06-14 08:15:04 -05:00
David Snopek
64f1bc847a Merge pull request #1485 from dsnopek/classdb-call-static-method
Fix vararg methods forwarded to the `ClassDB` singleton
2024-06-14 08:14:42 -05:00
A Thousand Ships
37e7a6da05 Add default argument processing for NodePath 2024-06-13 20:53:01 +02:00
David Snopek
6c4064125b Merge pull request #1487 from AThousandShips/arg_default_fix
Fix generating default values for `StringName`
2024-06-13 13:49:54 -05:00
bruvzg
2360f84513 [TextServer, GDExtension] Fix building text servers as GDExtension, expose new/changed low-level methods to GDExtension API. 2024-06-13 18:57:24 +03:00
A Thousand Ships
6cd6c8923a Fix generating default values for StringName
Cases other than `&""` were not processed correctly
2024-06-13 16:57:23 +02:00
David Snopek
e04a26b2bc Fix vararg methods forwarded to the ClassDB singleton 2024-06-12 10:32:38 -05:00
David Snopek
88df025aa0 Clean up instance bindings for engine singletons to prevent crash 2024-05-10 19:51:31 -05:00
David Snopek
23178e81ff Add support for PackedVector4Array 2024-05-06 14:30:04 -05:00
David Snopek
e1b3b32db5 Allow forwarding from ClassDB to ClassDBSingleton to support enumerations 2024-04-23 13:47:36 -05:00
David Snopek
44d78ec881 Merge pull request #1409 from Repiteo/class-to-typename
Enforce template syntax  `typename` over `class`
2024-04-02 14:30:01 -05:00
David Snopek
a62f633ceb Merge pull request #1379 from dsnopek/uninitialized-value-mk2
Avoid creating most objects that Godot is going to use placement new to initialize
2024-03-14 11:06:59 -05:00
David Snopek
e6b6df5893 Merge pull request #1399 from bruvzg/init_list
[Packed*Array] Add support for initializer lists.
2024-03-12 14:30:38 -05:00
David Snopek
12ebe4b180 Use explicit ::godot namespace in gdvirtual.gen.inc 2024-03-12 13:06:57 -05:00
Thaddeus Crews
87f5fb0691 Enforce template syntax typename over class 2024-03-10 16:02:43 -05:00
A Thousand Ships
fc986c2d12 Fix crash on virtual method calls 2024-03-05 15:30:59 +01:00
bruvzg
8c98a90f32 [Packed*Array] Add support for initializer lists. 2024-03-03 12:50:53 +02:00
David Snopek
c4fde852e6 Avoid creating most objects that Godot is going to use placement new to initialize 2024-02-26 10:36:16 -06:00
David Snopek
5fcc43e54d Merge pull request #1377 from dsnopek/gdextension-register-virtual-method
Allow GDExtensions to register virtual methods and call them on scripts (godot-cpp support)
2024-02-12 18:43:12 -06:00
David Snopek
9a13efa0e3 Merge pull request #1363 from Daylily-Zeleen/daylily-zeleen/fix_object_return_value_of_builtin_types_methods
Fix object return value of builtin types' methods.
2024-02-12 14:33:20 -06:00
David Snopek
8fbb7cf795 Allow GDExtensions to register virtual methods and call them on scripts 2024-02-12 13:30:07 -06:00
DaylilyZeleen
6a3753c076 Fix object return value of builtin types' methods. 2024-02-13 03:20:02 +08:00
David Snopek
0145e900f3 Merge pull request #1357 from bruvzg/cpp_64
Switch to 64-bit ints.
2024-01-19 12:15:55 -06:00
Rémi Verschelde
64529361b4 Merge pull request #1351 from Daylily-Zeleen/daylily-zeleen/remove_namespace_in_global_constants_binding
Remove "godot" namespace when binding global constants.
2024-01-11 13:10:51 +01:00
bruvzg
59a5a8b104 Switch to 64-bit ints. 2024-01-10 15:36:36 +02:00
Daylily-Zeleen
bd40a94424 Remove "godot" namespace when binding global constants. 2024-01-07 15:24:02 +08:00
A Thousand Ships
f037a697eb Add missing OP_POWER operator to Variant 2024-01-06 21:12:52 +01:00
Mikael Hermansson
943d1c8cdf Change bit field enums to use uint64_t as underlying type 2023-11-28 01:03:41 +01:00
Rémi Verschelde
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
LAK132
39c139c814 Fix file list issues when trying to build with meson via cmake 2023-11-11 23:29:33 +10:30
David Snopek
d33bd47219 Add CallableCustom that devs can use in their GDExtensions 2023-11-06 00:09:06 -06:00
David Snopek
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