Change gdnative interface so that Godot object initialization is done from the extension side. #55470
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The previous approach was to make the Godot object initialize the extension object by calling an extension instance constructor. This used to create some issues, with recursive object creation for example (objects constructed into the extension object constructor nowt working).
This solves the issue by reversing the processus, making extension object requesting the corresponding Godot object creation using
gdnative_classdb_construct_object, and then registering itself as an instance of this object usinggdnative_object_set_instance.This still need some work, as i am not sure that
gdnative_object_set_instance_bindingandgdnative_object_get_instance_bindingwould still be useful.