Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qguiapplication_platform.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QGUIAPPLICATION_PLATFORM_H
5#define QGUIAPPLICATION_PLATFORM_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is part of the native interface APIs. Usage of
12// this API may make your code source and binary incompatible
13// with future versions of Qt.
14//
15
16#include <QtGui/qtguiglobal.h>
17
18#include <QtCore/qnativeinterface.h>
19#include <QtGui/qguiapplication.h>
20
21#if QT_CONFIG(xcb)
22typedef struct _XDisplay Display;
23struct xcb_connection_t;
24#endif
25
26#if QT_CONFIG(wayland)
27struct wl_display;
28struct wl_compositor;
29struct wl_seat;
30struct wl_keyboard;
31struct wl_pointer;
32struct wl_touch;
33#endif
34
35#if defined(Q_OS_VISIONOS) || defined(Q_QDOC)
36# ifdef __OBJC__
37Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer_capabilities);
38typedef CP_OBJECT_cp_layer_renderer_capabilities *cp_layer_renderer_capabilities_t;
39Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer_configuration);
40typedef CP_OBJECT_cp_layer_renderer_configuration *cp_layer_renderer_configuration_t;
41Q_FORWARD_DECLARE_OBJC_CLASS(CP_OBJECT_cp_layer_renderer);
42typedef CP_OBJECT_cp_layer_renderer *cp_layer_renderer_t;
43# else
44typedef struct cp_layer_renderer_capabilities_s *cp_layer_renderer_capabilities_t;
45typedef struct cp_layer_renderer_configuration_s *cp_layer_renderer_configuration_t;
46typedef struct cp_layer_renderer_s *cp_layer_renderer_t;
47# endif
48#endif
49
50
52
53namespace QNativeInterface
54{
55
56#if QT_CONFIG(xcb) || defined(Q_QDOC)
57struct Q_GUI_EXPORT QX11Application
58{
60 virtual Display *display() const = 0;
61 virtual xcb_connection_t *connection() const = 0;
62};
63#endif
64
65#if QT_CONFIG(wayland) || defined(Q_QDOC)
66struct Q_GUI_EXPORT QWaylandApplication
67{
68 QT_DECLARE_NATIVE_INTERFACE(QWaylandApplication, 1, QGuiApplication)
69 virtual wl_display *display() const = 0;
70 virtual wl_compositor *compositor() const = 0;
71 virtual wl_seat *seat() const = 0;
72 virtual wl_keyboard *keyboard() const = 0;
73 virtual wl_pointer *pointer() const = 0;
74 virtual wl_touch *touch() const = 0;
75 virtual uint lastInputSerial() const = 0;
76 virtual wl_seat *lastInputSeat() const = 0;
77};
78#endif
79
80#if defined(Q_OS_VISIONOS) || defined(Q_QDOC)
81struct Q_GUI_EXPORT QVisionOSApplication
82{
83 QT_DECLARE_NATIVE_INTERFACE(QVisionOSApplication, 1, QGuiApplication)
84 struct ImmersiveSpaceCompositorLayer {
85 virtual void configure(cp_layer_renderer_capabilities_t, cp_layer_renderer_configuration_t) const {}
86 virtual void render(cp_layer_renderer_t) = 0;
87 };
88 virtual void setImmersiveSpaceCompositorLayer(ImmersiveSpaceCompositorLayer *layer) = 0;
89 virtual void openImmersiveSpace() = 0;
90 virtual void dismissImmersiveSpace() = 0;
91};
92#endif
93
94} // QNativeInterface
95
97
98#endif // QGUIAPPLICATION_PLATFORM_H
\macro qGuiApp
struct wl_display * display
Definition linuxdmabuf.h:41
Combined button and popup list for selecting options.
#define Q_FORWARD_DECLARE_OBJC_CLASS(classname)
DBusConnection * connection
EGLOutputLayerEXT layer
#define QT_DECLARE_NATIVE_INTERFACE(...)
static QOpenGLCompositor * compositor
GLsizei const void * pointer
Definition qopenglext.h:384
struct _XDisplay Display
unsigned int uint
Definition qtypes.h:34
myWidget render(this)