-
-
Notifications
You must be signed in to change notification settings - Fork 21k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Export plugin not working with GdExtensions #80593
Labels
Milestone
Comments
alessandrofama
added a commit
to alessandrofama/wwise-godot-integration
that referenced
this issue
Aug 16, 2023
This commit updates the wwise.gd addon script, wrapping up the integration of recent codebase changes by removing the ported plugins from GDScript. Currently, the only editor plugin still added to the Editor via GDScript is the EditorExportPlugin. This will resolved as soon as a related bug (godotengine/godot#80593) is fixed.
alessandrofama
added a commit
to alessandrofama/wwise-godot-integration
that referenced
this issue
Aug 16, 2023
This commit updates the wwise.gd addon script, wrapping up the integration of recent codebase changes by removing the ported plugins from GDScript. Currently, the only editor plugin still added to the Editor via GDScript is the EditorExportPlugin. This will resolved as soon as a related bug (godotengine/godot#80593) is fixed.
@alessandrofama Thanks for reporting the bug and all your investigation! If you have time to test if PR #80999 fixes the issue for you, that would be much appreciated :-) |
Here's an MRP that I made to test the linked PR: gdext-editor-plugin-test.zip |
alessandrofama
added a commit
to alessandrofama/wwise-godot-integration
that referenced
this issue
Aug 30, 2023
This commit updates the wwise.gd addon script, wrapping up the integration of recent codebase changes by removing the ported plugins from GDScript. Currently, the only editor plugin still added to the Editor via GDScript is the EditorExportPlugin. This will resolved as soon as a related bug (godotengine/godot#80593) is fixed.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Godot version
4.1.1-stable
System information
macOS 13.4.1 arm64
Issue description
Implementing
_export_file
,_export_begin
and_export_end
in a gdextension export plugin does nothing.In engine we have this code:
We can see it will call
_export_begin_script
if a script instance is attached to the export plugin, otherwise it calls_export_begin
._export_begin_script
does aGDVIRTUAL_CALL
call, so it works within a script language. On another side_export_begin
rely on classic cpp virtual call.In the GdExtension case, we have no script instance attached, so we end up in classic cpp vtable case, but gdextensions does not use cpp vtable for inheritance. This ends up with no call to gdextension implementation.
Currently, the only work around to make a gdextension export plugin work is to create a script proxy for it, here is my example.
gdextension:
Proxy script:
I think we should always rely on
GDVIRTUAL_CALL
and avoid check on script instance, so that both script and gdextensions are handled.Steps to reproduce
Create a gdextension export plugin and add it using editor plugin.
Minimal reproduction project
N/A
The text was updated successfully, but these errors were encountered: