diff options
Diffstat (limited to 'src/gui/kernel/qguiapplication_platform.h')
-rw-r--r-- | src/gui/kernel/qguiapplication_platform.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/gui/kernel/qguiapplication_platform.h b/src/gui/kernel/qguiapplication_platform.h index 545bf75c84..98e19427ae 100644 --- a/src/gui/kernel/qguiapplication_platform.h +++ b/src/gui/kernel/qguiapplication_platform.h @@ -32,6 +32,22 @@ struct wl_pointer; struct wl_touch; #endif +#if defined(Q_OS_VISIONOS) || defined(Q_QDOC) +# ifdef __OBJC__ +Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer_capabilities); +typedef CP_OBJECT_cp_layer_renderer_capabilities *cp_layer_renderer_capabilities_t; +Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer_configuration); +typedef CP_OBJECT_cp_layer_renderer_configuration *cp_layer_renderer_configuration_t; +Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer); +typedef CP_OBJECT_cp_layer_renderer *cp_layer_renderer_t; +# else +typedef struct cp_layer_renderer_capabilities_s *cp_layer_renderer_capabilities_t; +typedef struct cp_layer_renderer_configuration_s *cp_layer_renderer_configuration_t; +typedef struct cp_layer_renderer_s *cp_layer_renderer_t; +# endif +#endif + + QT_BEGIN_NAMESPACE namespace QNativeInterface @@ -61,6 +77,21 @@ struct Q_GUI_EXPORT QWaylandApplication }; #endif +#if defined(Q_OS_VISIONOS) || defined(Q_QDOC) +struct Q_GUI_EXPORT QVisionOSApplication +{ + QT_DECLARE_NATIVE_INTERFACE(QVisionOSApplication, 1, QGuiApplication) + struct ImmersiveSpaceCompositorLayer { + virtual void configure(cp_layer_renderer_capabilities_t, cp_layer_renderer_configuration_t) const {} + virtual void render(cp_layer_renderer_t) = 0; + virtual void handleSpatialEvents(const QJsonObject &) {}; + }; + virtual void setImmersiveSpaceCompositorLayer(ImmersiveSpaceCompositorLayer *layer) = 0; + virtual void openImmersiveSpace() = 0; + virtual void dismissImmersiveSpace() = 0; +}; +#endif + } // QNativeInterface QT_END_NAMESPACE |