Commit Graph

177 Commits (4d5d707d60aac3ecb4d3e413c840448fb1356264)

Author SHA1 Message Date
Mikael Hermansson 76c0a4b4ae Fix incorrect generation of some C++ operators
(cherry picked from commit 9949d09f3e)
2024-09-04 10:13:33 -05:00
Raul Santos 67145b323b 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-04 10:13:23 -05:00
Thaddeus Crews ca26922a19 Integrate `.pre-commit-config.yaml`
(cherry picked from commit e0d363aad8)
2024-07-17 09:56:32 -05:00
A Thousand Ships 1f57a8d76e Fix some style details in generation
(cherry picked from commit e7a13e3bf4)
2024-07-17 09:48:31 -05:00
A Thousand Ships f16814ee05 Enforce `p_` prefixes for arguments in binds
(cherry picked from commit 9e2771f918)
2024-07-17 09:37:59 -05:00
Fabio Alessandrelli 22beef8cbc 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:34:07 -05:00
A Thousand Ships a648650c5d Add default argument processing for `NodePath`
(cherry picked from commit 37e7a6da05)
2024-06-14 10:40:04 -05:00
A Thousand Ships 65058828a6 Fix generating default values for `StringName`
Cases other than `&""` were not processed correctly

(cherry picked from commit 6cd6c8923a)
2024-06-14 10:38:34 -05:00
David Snopek f067a9bff0 Fix vararg methods forwarded to the `ClassDB` singleton
(cherry picked from commit e04a26b2bc)
2024-06-14 10:37:44 -05:00
David Snopek 6328728dc2 Allow forwarding from `ClassDB` to `ClassDBSingleton` to support enumerations
(cherry picked from commit e1b3b32db5)
2024-05-17 16:57:33 -05:00
Thaddeus Crews 9e48c45bfc Enforce template syntax `typename` over `class`
(cherry picked from commit 87f5fb0691)
2024-04-08 11:39:21 -05:00
David Snopek 76d6ce7136 Avoid creating most objects that Godot is going to use placement new to initialize
(cherry picked from commit c4fde852e6)
2024-04-08 11:30:23 -05:00
bruvzg e99d7b3b7e [Packed*Array] Add support for initializer lists.
(cherry picked from commit 8c98a90f32)
2024-04-08 11:29:39 -05:00
DaylilyZeleen 1ac8627b2e Fix object return value of builtin types' methods.
(cherry picked from commit 6a3753c076)
2024-03-11 12:59:32 -05:00
bruvzg 6202bf141e Switch to 64-bit ints.
(cherry picked from commit 59a5a8b104)
2024-03-11 12:59:19 -05:00
Daylily-Zeleen dde0bbb93d Remove "godot" namespace when binding global constants.
(cherry picked from commit bd40a94424)
2024-01-22 15:53:49 -06:00
A Thousand Ships 1c03aa7746 Add missing `OP_POWER` operator to `Variant`
(cherry picked from commit f037a697eb)
2024-01-22 15:53:49 -06:00
LAK132 d5a2e8e797 Fix file list issues when trying to build with meson via cmake
(cherry picked from commit 39c139c814)
2024-01-22 15:53:49 -06:00
David Snopek f7ffc4fe4d Automatically register only engine classes whose header has been included
(cherry picked from commit b507b3e591)
2023-10-22 14:46:26 -05:00
A Thousand Ships 205beacc5b Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
(cherry picked from commit 1e5767693e)
2023-10-09 08:42:16 -05:00
David Snopek bc82ae8b0b Add static methods to `ClassDB` for the methods bound to the `ClassDB` singleton
(cherry picked from commit 6f913563d8)
2023-09-19 21:30:03 -05:00
David Snopek dcd7a69512 Ensure that PtrToArg specializations for native structs are used
(cherry picked from commit 3cd3f24150)
2023-09-19 21:22:54 -05:00
Marc Gilleron 0f2d3652e5 Added generated version header
(cherry picked from commit c6b2c82570)
2023-09-01 17:06:03 -05:00
Marc Gilleron e75ec636db Don't cache `null` forever if a singleton isn't available yet
# Conflicts:
#	binding_generator.py

(cherry picked from commit 548c758677)
2023-08-10 09:08:56 -05:00
David Snopek 5dda0212f6 In generated methods, only construct the method StringName the first time
(cherry picked from commit efc16b49d9)
2023-08-10 09:06:33 -05:00
Rémi Verschelde 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
Rémi Verschelde 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
Rémi Verschelde 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
bruvzg f1ad719ffc Force UTF-8 encoding in the binding generator script. 2023-06-16 10:41:23 +03:00
Andy Maloney 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
David Snopek d28a3cbbd5 Automatically remove editor plugins when deinitializing GDExtension 2023-06-13 14:24:33 -05:00
Rémi Verschelde 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
Mathis-Z ac98dd2752 Fixing #1127 by making return types of auto-generated functions dynamic 2023-06-08 20:35:29 +02:00
David Snopek ad726015e7 Revert the changes from PR #1044 and #1045 and standardize on `Object **` encoding in ptrcall 2023-06-07 08:30:33 -05:00
Rémi Verschelde 2078c00bab
Merge pull request #1114 from dsnopek/editor-plugins
Add support for adding/removing editor plugins
2023-05-26 11:04:35 +02:00
David Snopek e75ebffb70 Add support for adding/removing editor plugins 2023-05-16 22:02:35 -05:00
David Snopek 431e30bc32 Ensure GDExtension class is the correct type for the Godot engine class 2023-05-16 15:18:48 -05:00
David Snopek a5c6ca5920 Update to load function pointers for GDExtension interface 2023-05-09 21:45:48 -05:00
Lucas Rafael cb0b105402 Fix: Include method_ptrcall.hpp on simple structs. 2023-04-07 18:53:07 +01:00
Daylily-Zeleen a614f61015 Fix global enum cast and add Varint::Type cast. 2023-02-02 16:42:15 +08:00
bruvzg 37f6e35974
Update typed array API to match "GDScript: Fix typed arrays". 2023-01-31 11:28:55 +02:00
Andy Maloney 2d5e5c0fd6 Binding generator cleanups
- remove unused vars
- fix a few f-strings
- remove f-string notation where not used
2023-01-30 10:57:26 -05:00
Rémi Verschelde f59fd96ab4
Merge pull request #1013 from bruvzg/set_typed_move
Move Array:set_typed to internal GDExtension structure.
2023-01-30 12:31:38 +01:00
bruvzg 40d3cfd97b
Move Array:set_typed to internal GDExtension structure. 2023-01-30 13:27:25 +02:00
Rémi Verschelde 2ef10f9754
Merge pull request #956 from DmitriySalnikov/enum_bitfield_cast
Fixed `VARIANT_ENUM/BITFIELD_CAST` to show the correct names
2023-01-30 12:07:15 +01:00
George Marques 1c625befa3
Support typed array default values in extension API
The API JSON has changed syntax for default values of typed arrays. This
detects the new format and use initializer lists (currently empty since
the TypedArray class does not support initializer list construction and
default values are always empty arrays).
2023-01-28 14:01:27 -03:00
Дмитрий Сальников 6528c7177f Fixed variant casting for enum and bitfield 2023-01-20 21:10:03 +03:00
Rémi Verschelde 2a9b21e46a
Merge pull request #1004 from asmaloney/remove-unused-ucaps
Remove unused ucaps header
2023-01-19 13:55:29 +01:00
Andy Maloney 67be0c95e1 Remove unused ucaps header
These static structs were being included in every file string.hpp was included in...

Part of #999
2023-01-19 07:15:40 -05:00
bruvzg abca497b72
Expose some low level functions and String operators. 2023-01-19 13:12:21 +02:00