David Snopek
acee69a3f6
Allow forwarding from `ClassDB` to `ClassDBSingleton` to support enumerations
...
(cherry picked from commit e1b3b32db5
)
2024-05-17 16:35:22 -05:00
David Snopek
8aef77a64d
Give compile-time error if registering a class without its own `_bind_methods()` function
...
(cherry picked from commit ca46ef4d25
)
2024-05-17 16:33:38 -05:00
pupil1337
897280444b
Add static_assert() for register_class
...
(cherry picked from commit 1fa7a9cb19
)
2024-05-17 16:32:54 -05:00
Thaddeus Crews
7473b984cb
Enforce template syntax `typename` over `class`
...
(cherry picked from commit 87f5fb0691
)
2024-04-08 11:49:37 -05:00
Marc Gilleron
3fe7c2e87b
Fix explicit namespaces in macros
...
(cherry picked from commit e607790647
)
2024-03-11 12:50:56 -05:00
Chris Cranford
dc76664cea
Rework GDCLASS macro to allow pure virtual functions
...
(cherry picked from commit 5f350e2572
)
2024-01-22 15:30:04 -06:00
David Snopek
a61cdc8860
Add protections against registering classes that didn't use GDCLASS()
2023-10-22 08:44:09 -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
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
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
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
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
Daylily-Zeleen
2d1f852baf
Implement register unexposed class.
2023-09-04 00:59:10 +08: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
6f913563d8
Add static methods to `ClassDB` for the methods bound to the `ClassDB` singleton
2023-07-31 16:04:27 -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
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
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
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
Rémi Verschelde
931f1a3f34
Sync license copyright with upstream GH-70885
2023-01-10 16:15:31 +01:00
Jan Haller
fce753c05d
Extension header: amend const correctness of `p_args` parameters
2022-12-14 15:47:42 +01:00
Rémi Verschelde
bab247dcb6
Rename godot-headers to gdextension, move header to top folder
...
Changes the `<godot/gdextension_interface.h>` include to simply
`<gdextension_interface.h>`.
Refactor and better document the SCons and CMake logic around setting
the paths to the header and API JSON file.
2022-12-14 12:36:59 +01:00
Gilles Roudière
c02e644679
Rename GDNative to GDExtension
...
Non-exhaustive list of case-sensitive renames:
GDExtension -> GDNative
GDNATIVE -> GDEXTENSION
gdextension -> gdnative
ExtensionExtension -> Extension (for where there was GDNativeExtension)
EXTENSION_EXTENSION -> EXTENSION (for where there was GDNATIVE_EXTENSION)
gdnlib -> gdextension
gdn_interface -> gde_interface
gdni -> gde_interface
2022-12-12 11:06:38 +01:00
Emmanuel Leblond
fe86a94dcf
Fix const qualifier for parameters in GDExtension api functions
2022-12-03 00:27:07 +01:00
Emmanuel Leblond
b6ba0dca13
StringName is working fine with demo \o/
2022-11-08 21:44:33 +01:00
Emmanuel Leblond
a706a9ceb9
Remove now useless `_alloc_and_copy_cstr`
2022-11-08 21:44:31 +01:00
Emmanuel Leblond
e24b6b0e51
Use StringName in the whole GDExtension API instead of const char *
2022-11-08 21:44:31 +01:00
Ricardo Buring
01960ffc9f
Add support for virtual and abstract classes
2022-10-15 13:15:05 +02:00
Aaron Franke
592bd15c7a
Run scripts to format and make headers consistent
2022-10-09 01:47:07 -05:00
Rémi Verschelde
0eba81ef79
Merge pull request #876 from Daylily-Zeleen/Daylily-Zeleen/master
...
Add detail infos for binding error message.
2022-10-07 22:25:49 +02:00
daylilyzeleen
3e91ec1729
Add detail infos for binding error message.
2022-09-30 15:16:43 +08:00
Marc Gilleron
5de2c059d1
Fix deriving a custom class with virtual methods
2022-09-21 19:31:30 +01:00
bruvzg
36273baa7e
Change PropertyInfo members to String.
2022-09-14 08:41:09 +03:00
bruvzg
270ad28931
Add support for `_notification`, `_set`, `_get`, `_get_property_list`, `_property_can_revert`, `_property_get_revert`, and `_to_string` methods.
2022-08-22 12:59:38 +03:00
Yuri Sizov
fa111d7078
Add support for `property_*_revert` methods
2022-08-18 16:43:01 +03:00
bruvzg
713b122b84
Add support for BitField hint, sync API files.
2022-07-11 15:00:17 +03:00
bruvzg
031a83b0ea
[Method Bind] Add support for default argument values and static method binding. Sync headers.
2022-05-06 10:17:51 +03:00
bruvzg
817efdd484
Fix build after "Discern between VIRTUAL and ABSTRACT class bindings".
2022-03-15 13:43:12 +02:00
Rémi Verschelde
1632322ce0
Update copyright year
2022-03-15 10:17:53 +01:00
bruvzg
e36180f377
Port a bunch of Godot container templates to GDExtension.
2022-02-18 21:07:53 +02:00
Bradley Clemetson
76c4adb7f8
Normalized additional macros to ensure that everything works without client code needing using
2021-12-18 15:16:14 -08:00
Gilles Roudière
3fcb8a4d1e
Make extension instances create the corresponding godot object in their constructor
2021-12-03 15:37:49 +01:00
Bastiaan Olij
ef528d3a86
Rename interface to gdn_interface because it's a defined keyword under windows
2021-10-28 19:44:20 +11:00
Bastiaan Olij
0e3bc393d5
Fully register class on register_class call
2021-09-27 23:08:12 +10:00