David Snopek
23178e81ff
Add support for `PackedVector4Array`
2024-05-06 14:30:04 -05:00
A Thousand Ships
505076c9a9
[Core] Add `LocalVector::has` for convenience
2024-05-06 17:47:21 +02:00
David Snopek
54fe2f9891
Merge pull request #1445 from dsnopek/classdb-enum-issue
...
Allow forwarding from `ClassDB` to `ClassDBSingleton` to support enumerations
2024-04-30 09:30:01 -05:00
David Snopek
8cc78cfea9
Update `free_property_list` callback to take count
2024-04-30 08:48:53 -05:00
David Snopek
2cd3d39108
Merge pull request #1405 from dsnopek/fix-null-object-arguments
...
Correctly handle `Object *` arguments that were encoded as `nullptr`
2024-04-29 16:46:46 -05:00
David Snopek
ca46ef4d25
Give compile-time error if registering a class without its own `_bind_methods()` function
2024-04-24 14:49:26 -05:00
David Snopek
e23b117ac3
Merge pull request #1431 from pupil1337/fix-create-instance-func
...
Fix create instance func
2024-04-24 14:44:29 -05:00
David Snopek
d304f12dcd
Merge pull request #1443 from Naros/property-method-dict-helpers
...
Implement to/from dict helpers for PropertyInfo/MethodInfo
2024-04-24 14:43:53 -05:00
David Snopek
61450b3e1b
Merge pull request #1436 from AThousandShips/math_update
...
[Math] Add `is_finite` methods
2024-04-24 14:43:36 -05:00
David Snopek
06373ce1cf
Fix NOTIFICATION_POSTINITIALIZE sent twice to native parent class
2024-04-24 13:22:19 -05:00
David Snopek
e1b3b32db5
Allow forwarding from `ClassDB` to `ClassDBSingleton` to support enumerations
2024-04-23 13:47:36 -05:00
Chris Cranford
2a041b5240
Implement to/from dict helpers for PropertyInfo/MethodInfo
2024-04-20 18:50:34 -04:00
Chris Cranford
e160966163
Fix PropertyInfo to use hint/usage default constants
2024-04-16 07:24:48 -04:00
A Thousand Ships
d389171905
[Math] Add `is_finite` methods
2024-04-11 13:30:28 +02:00
A Thousand Ships
b65970860e
Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
...
Also added `snapped` to the integer vectors for completeness
2024-04-11 10:42:29 +02:00
pupil1337
1fa7a9cb19
Add static_assert() for register_class
2024-04-11 10:48:13 +08:00
David Snopek
37542dc2ec
Correctly handle `Object *` arguments that were encoded as `nullptr`
2024-04-08 11:12:40 -05:00
A Thousand Ships
d055b575fb
Fix incorrect utility call signature
2024-04-02 21:44:40 +02: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
ec166295ba
Merge pull request #1397 from dsnopek/script-free-lists
...
Load new `script_instance_create3` GDExtension interface function
2024-03-14 10:02:21 -05:00
A Thousand Ships
fb79d5ff98
Add support for getting argument count from `Callable`s
2024-03-14 10:27:39 +01:00
David Snopek
efb46f7f82
Merge pull request #1407 from AThousandShips/flag_fix
...
Fix invalid `void` return in `BitField`
2024-03-11 12:43:12 -05:00
Thaddeus Crews
87f5fb0691
Enforce template syntax `typename` over `class`
2024-03-10 16:02:43 -05:00
Marc Gilleron
e607790647
Fix explicit namespaces in macros
2024-03-08 19:42:07 +00:00
A Thousand Ships
7ed8ef7221
Fix invalid `void` return in `BitField`
2024-03-08 13:32:28 +01:00
David Snopek
cc1217a43c
Merge pull request #1381 from dsnopek/notification-hierarchy
...
Fix `_notification()` with parent and child classes
2024-03-05 11:50:13 -06:00
David Snopek
8b92368165
Load new `script_instance_create3` GDExtension interface function
2024-03-01 10:50:02 -06:00
David Snopek
e55b792fea
Merge pull request #1383 from bruvzg/memalign
...
[Core] Improve `CowData` and `Memory` metadata alignment.
2024-02-26 12:54:17 -06: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
23c010900c
Fix _notification with parent and child classes
2024-02-22 14:39:50 -06:00
David Snopek
fb884573ea
Allow registering "runtime classes"
2024-02-13 08:55:25 -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
Allen Pestaluky
349b5a3146
Added newer Variant types to `typed_array.hpp`
...
This is a companion commit to the godot PR https://github.com/godotengine/godot/pull/87992 which fixes https://github.com/godotengine/godot/issues/87991
Also undefines typed array templates after use to match Godot's typed_array.h
2024-02-06 13:53:38 -05:00
bruvzg
b173a4d935
[Core] Improve `CowData` and `Memory` metadata alignment.
2024-02-05 19:26:45 +02: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
David Snopek
6c04514039
Merge pull request #1359 from Naros/GH-1287
...
Rework GDCLASS macro to allow abstract classes
2024-01-19 07:27:06 -06:00
Chris Cranford
5f350e2572
Rework GDCLASS macro to allow pure virtual functions
2024-01-18 20:14:13 -05:00
A Thousand Ships
3943e41d2f
Fix `AABB.encloses` failing on shared upper bound
2024-01-12 18:08:40 +01:00
bruvzg
59a5a8b104
Switch to 64-bit ints.
2024-01-10 15:36:36 +02:00
A Thousand Ships
f037a697eb
Add missing `OP_POWER` operator to `Variant`
2024-01-06 21:12:52 +01:00
David Snopek
dd62b9685f
Merge pull request #1347 from Chubercik/vector_method_parity
...
Add `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to`
2024-01-04 08:36:30 -06:00
Jakub Mateusz Marcowski
b733102f4a
Add `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to`
2024-01-03 11:45:05 +01:00
A Thousand Ships
b77cb648c3
Fix expected argument count for call errors
2023-12-30 13:23:36 +01:00
Aaron Franke
646c71c277
Add PackedRealArray as an alias for PackedFloat(32/64)Array
2023-12-19 04:44:05 -06:00
bruvzg
adc9def046
[iOS] Fix initialisation/termination of multiple statically linked extensions.
2023-11-23 13:38:20 +02:00
David Snopek
f426b12b5b
Fix comparison of `Callable`s from callable_mp() of the same method
2023-11-17 12:49:53 -06:00
David Snopek
4439a4a569
Merge pull request #1280 from dsnopek/callable-custom
...
Add `CallableCustom` that devs can use in their GDExtensions
2023-11-17 12:48:39 -06:00
David Snopek
c4b7b08c91
Merge pull request #1298 from Repiteo/int-to-variant-fix
...
Add missing int→Variant conversions
2023-11-15 09:07:48 -06:00
bruvzg
29b34d92bb
[iOS] Fix building as static library or xcframework, add iOS config and xcframework build script to the test project.
2023-11-09 20:01:59 +02:00
Thaddeus Crews
bcac96c8c2
Add missing int→Variant conversions
2023-11-08 09:45:53 -06:00
David Snopek
d33bd47219
Add `CallableCustom` that devs can use in their GDExtensions
2023-11-06 00:09:06 -06:00
Thaddeus Crews
6eb5d450bd
GDCLASS synced by ending with "private:"
...
• Matches implementation used by modules and godot itself
• Apply same to GDEXTENSION_CLASS, setup with same diff-friendly spacers as GDCLASS
2023-11-01 12:44:14 -05:00
David Snopek
a61cdc8860
Add protections against registering classes that didn't use GDCLASS()
2023-10-22 08:44:09 -05:00
Martin Capitanio
a926b96103
clang: Add CallableCustomMethodPointerBase virtual destructor
...
Fixes #1272
+ clang++ (debian v16/v17) warning:
destructor called on
'godot::CallableCustomMethodPointerBase' that is abstract but has non-virtual destructor
[-Wdelete-abstract-non-virtual-dtor]
2023-10-19 09:37:11 +02: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
Rémi Verschelde
4f0eb2f520
Merge pull request #1263 from dsnopek/string-name-new
...
Use the new `string_name_new_with_latin1_chars` function to improve StringName construction performance
2023-10-12 18:08:09 +02:00
Mikael Hermansson
6e05b978b8
Declare explicit specializations for `CharStringT`
2023-10-12 16:00:48 +02: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
df849651d9
Changes necessary for hot reload to work
2023-09-25 22:13:33 -05:00
David Snopek
c18c1916c3
Implement `callable_mp()` and `callable_mp_static()`
2023-09-21 15:17:50 -05:00
David Snopek
4314f91b7d
Merge pull request #1238 from dsnopek/variant-call-callp
...
Fix variant call compiler error (alternate)
2023-09-21 15:07:05 -05:00
David Snopek
3a02feddc3
Update for addition of `get_virtual_call_data_func` and `call_virtual_func` to `GDExtensionClassCreationInfo2`
2023-09-20 12:15:31 -05:00
David Snopek
a3dfbbde85
Merge pull request #1245 from AThousandShips/alloc_fix
...
Fix allocation size overflow check in `CowData`
2023-09-20 07:39:27 -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
A Thousand Ships
06ffc7e952
Fix allocation size overflow check in `CowData`
2023-09-19 16:14:00 +02:00
A Thousand Ships
1e5767693e
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-13 14:34:04 +02:00
David Snopek
aa6867e6c9
Support `_validate_property()`
2023-09-12 13:21:16 -05:00
David Snopek
16ffb2795a
Merge pull request #970 from Daylily-Zeleen/daylily-zeleen/register_unexposed_class
...
Implement register unexposed classes
2023-09-11 09:35:32 -05:00
Matthew Murphy
ca3e25de04
Fix variant call compiler error
...
Co-authored-by: David Snopek <dsnopek@gmail.com>
2023-09-09 11:30:29 -05:00
David Snopek
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
A Thousand Ships
f651df5e7a
Ensure `const` correctness for wrappers
2023-09-06 19:33:03 +02:00
Daylily-Zeleen
2d1f852baf
Implement register unexposed class.
2023-09-04 00:59:10 +08:00
David Snopek
0db95a92a6
Merge pull request #1228 from Bromeon/bugfix/yet-another-bool
...
GDExtension: fix `bool` unknown in C
2023-09-02 16:13:51 -05:00
David Snopek
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
Jan Haller
54092861f1
GDExtension: fix `bool` unknown in C
2023-09-02 13:19:14 +02:00
Markus Sauermann
c2d99fd519
Fix `Object::notification` order
...
For the notification-order to work correctly, it is necessary to
allow the `p_reversed` argument to be used within cpp.
This PR changes the necessary bindings.
2023-08-30 00:07:28 +02:00
David Snopek
f0405f18a3
Add support for placeholder_script_instance_create/update
2023-08-28 17:02:13 -05:00
A Thousand Ships
52eb77efd4
Add remaining component-wise `min/max` functions to `Vector*`
2023-08-16 13:52:51 +02:00
Adam Scott
f5c8e5190f
Fix forgotten not operator
2023-08-16 05:30:40 -04:00
David Snopek
3cd3f24150
Ensure that PtrToArg specializations for native structs are used
2023-08-15 17:54:11 -05:00
Adam Scott
5c262844ad
Fix Clang deprecated builtins
...
It seems that Clang and GCC have different interpretations of certain
builtins. So this PR uses std <type_traits> functions just as cowdata.h
does in the godot project.
2023-08-15 18:50:47 -04:00
David Snopek
6f913563d8
Add static methods to `ClassDB` for the methods bound to the `ClassDB` singleton
2023-07-31 16:04:27 -05:00
David Snopek
8bc1c1dbeb
Implement `String::resize()`
2023-07-31 15:14:10 -05:00
David Snopek
1d49bef096
Merge pull request #1184 from Zylann/fix_get_property_list_calling_parent
...
Don't call parent _get_property_list when a class doesn't define it (for internal binding).
2023-07-26 15:31:15 -05:00
David Snopek
d15550fdee
Merge pull request #1186 from mihe/indexed-properties
...
Add support for indexed properties
2023-07-26 14:22:34 -05:00
Marc Gilleron
baf0b9e0f7
Don't call parent _get_property_list when a class doesn't define it.
...
Godot is already supposed to call _get_property_list of parent classes,
so this binding function must really only return procedural properties of
the class it belongs to, and not parent or child classes.
2023-07-26 20:12:25 +01:00
Mikael Hermansson
7d8cb7c155
Add support for indexed properties
2023-07-26 00:31:53 +02:00
Daylily-Zeleen
3536803e9e
Implement vararg methods of builtin classes.
2023-07-03 17:30:42 +08:00
David Snopek
4df112cd95
Attempt to fully implement CharString
2023-06-22 21:03:30 -05:00
Kehom
20be441026
Unregister custom classes in reverse registration order
2023-06-19 11:04:11 -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
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
0d0d5a670b
Merge pull request #1116 from saki7/Ref-allow-non-const-access
...
Change Ref<T> to allow non const access to ptr
2023-05-24 21:17:25 -05:00