52 Commits

Author SHA1 Message Date
David Snopek
fe68c22c3e Generate GDExtension interface header and loader from JSON 2025-12-18 12:09:41 -06:00
David Snopek
48d02db27c Update to use mem_alloc2, mem_realloc2 and mem_free2 2025-10-01 08:12:27 -05:00
David Snopek
309b17b6eb Test that internal classes work as expected 2025-07-23 13:53:52 -05:00
David Snopek
7f5f02940d Update for GDExtension interface changes in Godot 4.5 2025-06-23 16:40:43 -05:00
Pierre-Thomas Meisels
0871c7a93a Expose gdextension_object_get_script_instance and gdextension_object_set_script_instance methods from engine 2025-05-05 18:55:59 +02:00
David Snopek
08fd033a9e Merge pull request #1743 from dsnopek/get-used-classes
Register the classes used with the Godot editor
2025-04-18 06:56:23 -05:00
David Snopek
aed195f6dc Register the classes used with the Godot editor 2025-03-17 13:23:32 -05:00
Thaddeus Crews
7056c996dd Style: Replace header guards with #pragma once 2025-03-07 17:58:10 -06:00
Lukas Tenbrink
daef7d48ea Add variant_internal.hpp.
This module contains VariantInternalType, VariantInternal, VariantGetInternalPtr, VariantInternalAccessor and VariantDefaultInitializer, allowing to access and manipulate Variant's internal values.
2024-11-28 15:15:03 +01:00
David Snopek
42e398e4e2 Update for new NOTIFICATION_POSTINITIALIZE handling 2024-10-29 16:29:24 -05:00
David Snopek
fa3dfa0e3c Merge pull request #1591 from dsnopek/variant-object-instance-id
Directly get object instance ID from `Variant` and implement `Variant::get_validated_object()`
2024-10-29 13:10:12 -05:00
David Snopek
0602c32986 Directly get object instance ID from Variant and implement Variant::get_validated_object() 2024-10-17 09:58:52 -05:00
Thaddeus Crews
2ffff669f5 Implement typed dictionaries 2024-09-17 15:05:16 -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
David Snopek
88df025aa0 Clean up instance bindings for engine singletons to prevent crash 2024-05-10 19:51:31 -05:00
Rémi Verschelde
17a82e7f94 Merge pull request #1374 from dsnopek/gdext-docs
Allow submitting documentation to the Godot editor
2024-05-08 00:48:02 +02:00
David Snopek
a434850069 Allow submitting documentation to the Godot editor 2024-05-07 11:08:18 -05:00
David Snopek
23178e81ff Add support for PackedVector4Array 2024-05-06 14:30:04 -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 Callables 2024-03-14 10:27:39 +01:00
David Snopek
8b92368165 Load new script_instance_create3 GDExtension interface function 2024-03-01 10:50:02 -06:00
David Snopek
fb884573ea Allow registering "runtime classes" 2024-02-13 08:55:25 -06:00
David Snopek
8fbb7cf795 Allow GDExtensions to register virtual methods and call them on scripts 2024-02-12 13:30:07 -06:00
bruvzg
adc9def046 [iOS] Fix initialisation/termination of multiple statically linked extensions. 2023-11-23 13:38:20 +02:00
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
c18c1916c3 Implement callable_mp() and callable_mp_static() 2023-09-21 15:17:50 -05: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
David Snopek
8bc1c1dbeb Implement String::resize() 2023-07-31 15:14:10 -05:00
Mikael Hermansson
7d8cb7c155 Add support for indexed properties 2023-07-26 00:31:53 +02: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
Rémi Verschelde
931f1a3f34 Sync license copyright with upstream GH-70885 2023-01-10 16:15:31 +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
Andy Maloney
c7e34c2f9d Basic static analysis fixes
- remove extraneous semicolons
- use "nullptr" instead of "0"
- remove "break" after "return"
- use <cstdio> instead of <stdio.h>
2022-11-18 17:46:13 -05:00
Aaron Franke
592bd15c7a Run scripts to format and make headers consistent 2022-10-09 01:47:07 -05:00
bruvzg
8bf5a532de Change registered initializers / terminators to the single function with level argument. 2022-05-04 11:14:51 +03:00
Rémi Verschelde
1632322ce0 Update copyright year 2022-03-15 10:17:53 +01:00
Gilles Roudière
a94148ca4c Reorder native extension initialization steps 2022-02-28 15:44:54 +01: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
fab017c91a Fix some clang format things 2021-09-27 23:08:11 +10:00
Bastiaan Olij
02802b1d0e Add in driver types and rejig code to make it easier to extend 2021-09-27 23:08:11 +10:00