Skip to content

Conversation

@dsnopek
Copy link
Collaborator

@dsnopek dsnopek commented Jun 18, 2025

This started because I wanted to do something from an EditorPlugin that wasn't specific to a single vendor, and realized that we don't have a common EditorPlugin, we've got one for each vendor.

It makes sense that we have an EditorExportPlugin for each vendor (to keep the logic for each self-contained), but they don't each need an EditorPlugin. I think this is just left over from when we did separate C++ builds for each vendor.

Then things snowballed into a number of clean-ups associated with the editor plugins and class registration :-)

Here's all the changes in this PR:

  • Consolidate on a single OpenXRVendorsEditorPlugin that registers all the EditorExportPlugins
  • Rename the OpenXREditorExportPlugin base class to OpenXRVendorsEditorExportPlugin to match
  • Register all of our editor-only classes as "internal classes" using GDREGISTER_INTERNAL_CLASS()
  • Update all other class registrations to use the GDREGISTER_CLASS() macro, since the macros are the recommended API, over calling ClassDB::register_class()
  • Remove the docs XML for all the classes that are now internal - they are hidden from users and so docs aren't needed

@dsnopek dsnopek added this to the 4.x milestone Jun 18, 2025
@dsnopek dsnopek requested review from devloglogan and m4gr3d June 18, 2025 19:24
@dsnopek dsnopek added the enhancement New feature or request label Jun 18, 2025
@dsnopek dsnopek force-pushed the cleanup-editor-plugins branch 4 times, most recently from c002d47 to 55038ca Compare June 18, 2025 19:51
@dsnopek dsnopek force-pushed the cleanup-editor-plugins branch 4 times, most recently from cdca1da to 2885605 Compare June 18, 2025 20:03
@dsnopek dsnopek force-pushed the cleanup-editor-plugins branch 4 times, most recently from 2cd1f82 to c9a8287 Compare June 19, 2025 16:34
@BastiaanOlij
Copy link
Member

Not sure if I'm misreading things, generally agree with the improvement but it seems the lynx export setup has gone missing.

Or is this because there is nothing to override in the lynx version of the export settings (seeing we currently don't have settings?). In that case I would still suggest we have a class but without any further methods in it just to keep the structure in tact. It's likely that in the future we will need to add settings here as Lynx usage increases, it will be more clear for people who wish to contribute those changes to submit PRs if they can see where the changes are expected.

@BastiaanOlij
Copy link
Member

Also, and I may be getting ahead of myself, seeing what we're planning with godotengine/godot#106891, should we rename the Khronos export to HTC export as it really only implements the HTC bits? Or just split that off into a separate HTC class (something I had a PR up for at some point in time I think), and then mark the Khronos export as deprecated.

Might be too early to consider that though but throwing it out there :)

@dsnopek
Copy link
Collaborator Author

dsnopek commented Jun 24, 2025

Not sure if I'm misreading things, generally agree with the improvement but it seems the lynx export setup has gone missing.

Yeah, it never had its own EditorExportPlugin. I can add an empty one that just descends from the parent class and sets the name though!

Also, and I may be getting ahead of myself, seeing what we're planning with godotengine/godot#106891, should we rename the Khronos export to HTC export as it really only implements the HTC bits?

We could! But that's not really related to the rest of the clean up I'm doing here.

@dsnopek dsnopek force-pushed the cleanup-editor-plugins branch 2 times, most recently from 0a13de4 to c043ce7 Compare June 24, 2025 00:52
@dsnopek
Copy link
Collaborator Author

dsnopek commented Jun 24, 2025

My latest push adds a new EditorExportPlugin for Lynx

Renaming the Khronos plugin to HTC does make sense. Especially now that lots of the vendors here actually use the Khronos loader, we should probably be thinking in terms of vendors, and not loaders. But I guess that'll need some more discussion

@dsnopek dsnopek force-pushed the cleanup-editor-plugins branch from c043ce7 to 9efa4b2 Compare June 24, 2025 00:59
Copy link
Member

@BastiaanOlij BastiaanOlij left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, definitely makes things more manageable!

Agree that we should talk some more about splitting HTC into its own option and do that in a separate PR.

@dsnopek dsnopek merged commit 20d2b15 into GodotVR:master Jun 24, 2025
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants