diff options
Diffstat (limited to 'src/gui/kernel/qguiapplication_platform.h')
-rw-r--r-- | src/gui/kernel/qguiapplication_platform.h | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/gui/kernel/qguiapplication_platform.h b/src/gui/kernel/qguiapplication_platform.h index b6182e42a3..98e19427ae 100644 --- a/src/gui/kernel/qguiapplication_platform.h +++ b/src/gui/kernel/qguiapplication_platform.h @@ -23,7 +23,7 @@ typedef struct _XDisplay Display; struct xcb_connection_t; #endif -#if defined(Q_OS_UNIX) +#if QT_CONFIG(wayland) struct wl_display; struct wl_compositor; struct wl_seat; @@ -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 @@ -46,7 +62,7 @@ struct Q_GUI_EXPORT QX11Application }; #endif -#if defined(Q_OS_UNIX) || defined(Q_CLANG_QDOC) +#if QT_CONFIG(wayland) || defined(Q_QDOC) struct Q_GUI_EXPORT QWaylandApplication { QT_DECLARE_NATIVE_INTERFACE(QWaylandApplication, 1, QGuiApplication) @@ -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 |