-
-
Notifications
You must be signed in to change notification settings - Fork 23.7k
GDExtension: Mark virtual function as is_required in extension_api.json
#93311
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
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 <[email protected]>
3be645e to
c2af6bc
Compare
is_required in extension_api.jsonis_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?
| 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()