-
-
Notifications
You must be signed in to change notification settings - Fork 21.6k
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
GDExtension: Mark virtual function as is_required
in extension_api.json
#93311
GDExtension: Mark virtual function as is_required
in extension_api.json
#93311
Conversation
ca09f96
to
591f8fe
Compare
@dsnopek I migrated all the remaining instances of EDIT: they are on this branch: https://github.com/TitanNano/godot/commits/gdextension-required-virtuals/ |
591f8fe
to
3be645e
Compare
@TitanNano Thanks! I added your changes. After I've gone through and double-checked all the changes I'll take this out of draft. |
@dsnopek do you think this can make it into 4.4? |
This would be great to get into 4.4, especially if we can get PR #86079 too. I'll try to find some time soon to dig back into both PRs. |
….json` Co-authored-by: Jovan Gerodetti <jovan.gerodetti@titannano.de>
3be645e
to
c2af6bc
Compare
is_required
in extension_api.json
is_required
in extension_api.json
I just rebased, updated for new required virtual methods that have been added, and finally went back through everything and double-checked that everything that should be required is marked as required. So, I'm taking this one of draft status now! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great, thanks so much! I implemented the Rust part and while I haven't had the chance to test individual APIs yet, the is_required
field is consistently present for all virtual methods 🙂
Maybe @TitanNano could also have another look?
One question, do you think is_override_required
would be clearer than just is_required
? Or clear enough from the context?
@@ -215,6 +215,7 @@ enum MethodFlags { | |||
METHOD_FLAG_VARARG = 16, | |||
METHOD_FLAG_STATIC = 32, | |||
METHOD_FLAG_OBJECT_CORE = 64, | |||
METHOD_FLAG_VIRTUAL_REQUIRED = 128, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@reduz Can you confirm whether it's fine to add a new method flag?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tried to ask three times but no luck, so let's merge and reduz will tell us if this was incorrect :)
Thanks! |
This is a draft exploring how to implement godotengine/godot-proposals#9982
TODO to finish:
Find all the required virtual methods and swap in theGDVIRTUAL*_REQUIRED()
macroReplace allGDVIRTUAL_REQUIRED_CALL()
withGDVIRTUAL_CALL()