5#ifndef QGUIAPPLICATION_PLATFORM_H
6#define QGUIAPPLICATION_PLATFORM_H
17#include <QtGui/qtguiglobal.h>
19#include <QtCore/qnativeinterface.h>
20#include <QtGui/qguiapplication.h>
23typedef struct _XDisplay Display;
24struct xcb_connection_t;
35#if QT_CONFIG(xkbcommon)
41#if defined(Q_OS_VISIONOS) || defined(Q_QDOC)
43Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer_capabilities);
44typedef CP_OBJECT_cp_layer_renderer_capabilities *cp_layer_renderer_capabilities_t;
45Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer_configuration);
46typedef CP_OBJECT_cp_layer_renderer_configuration *cp_layer_renderer_configuration_t;
47Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer);
48typedef CP_OBJECT_cp_layer_renderer *cp_layer_renderer_t;
50typedef struct cp_layer_renderer_capabilities_s *cp_layer_renderer_capabilities_t;
51typedef struct cp_layer_renderer_configuration_s *cp_layer_renderer_configuration_t;
52typedef struct cp_layer_renderer_s *cp_layer_renderer_t;
59namespace QNativeInterface
62#if QT_CONFIG(xcb) || defined(Q_QDOC)
63struct Q_GUI_EXPORT QX11Application
65 QT_DECLARE_NATIVE_INTERFACE(QX11Application, 1, QGuiApplication)
66 virtual Display *display()
const = 0;
67 virtual xcb_connection_t *connection()
const = 0;
71#if QT_CONFIG(wayland) || defined(Q_QDOC)
72struct Q_GUI_EXPORT QWaylandApplication
74 QT_DECLARE_NATIVE_INTERFACE(QWaylandApplication, 2, QGuiApplication)
75 virtual wl_display *display()
const = 0;
76 virtual wl_compositor *compositor()
const = 0;
77 virtual wl_seat *seat()
const = 0;
78 virtual wl_keyboard *keyboard()
const = 0;
79 virtual wl_pointer *pointer()
const = 0;
80 virtual wl_touch *touch()
const = 0;
81 virtual uint lastInputSerial()
const = 0;
82 virtual wl_seat *lastInputSeat()
const = 0;
83#if QT_CONFIG(xkbcommon)
84 virtual xkb_context *xkbContext()
const = 0;
89#if defined(Q_OS_VISIONOS) || defined(Q_QDOC)
90struct Q_GUI_EXPORT QVisionOSApplication
92 QT_DECLARE_NATIVE_INTERFACE(QVisionOSApplication, 1, QGuiApplication)
93 struct ImmersiveSpaceCompositorLayer {
94 virtual void configure(cp_layer_renderer_capabilities_t, cp_layer_renderer_configuration_t)
const {}
95 virtual void render(cp_layer_renderer_t) = 0;
96 virtual void handleSpatialEvents(
const QJsonObject &) {};
98 virtual void setImmersiveSpaceCompositorLayer(ImmersiveSpaceCompositorLayer *layer) = 0;
99 virtual void openImmersiveSpace() = 0;
100 virtual void dismissImmersiveSpace() = 0;