Commit Graph

213 Commits (0cfe01eff23459a1c0c516e02940cf21317f777d)

Author SHA1 Message Date
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
David Snopek b507b3e591 Automatically register only engine classes whose header has been included 2023-10-16 10:19:11 -05:00
David Snopek 3d814f9e4a Use the new `string_name_new_with_latin1_chars` function to improve StringName construction performance 2023-10-09 16:59:29 -05:00
David Snopek 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
David Snopek 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