Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qwaylandbrcmeglintegration.h
Go to the documentation of this file.
1// Copyright (C) 2016 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// Qt-Security score:significant reason:default
4
5#ifndef QWAYLANDBRCMEGLINTEGRATION_H
6#define QWAYLANDBRCMEGLINTEGRATION_H
7
8#include <QtWaylandClient/private/qwaylandclientbufferintegration_p.h>
9#include <QtWaylandClient/private/wayland-wayland-client-protocol.h>
10#include <wayland-client-core.h>
11
12#include <EGL/egl.h>
13#include <EGL/eglext.h>
14
15#include <EGL/eglext_brcm.h>
16
17#include <QtCore/qglobal.h>
18
19struct qt_brcm;
20
21QT_BEGIN_NAMESPACE
22
23class QWindow;
24
25namespace QtWaylandClient {
26
27class QWaylandWindow;
28
30{
31public:
34
35 void initialize(QWaylandDisplay *waylandDisplay) override;
36
37 bool supportsThreadedOpenGL() const override { return true; }
38 bool supportsWindowDecoration() const override { return false; }
39
40 QWaylandWindow *createEglWindow(QWindow *window);
41 QPlatformOpenGLContext *createPlatformOpenGLContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share) const override;
42 QOpenGLContext *createOpenGLContext(EGLContext context, EGLDisplay contextDisplay, QOpenGLContext *shareContext) const override;
43
44 EGLDisplay eglDisplay() const;
45
46 struct qt_brcm *waylandBrcm() const;
47
51
52 void *nativeResource(NativeResource resource) override;
53 void *nativeResourceForContext(NativeResource resource, QPlatformOpenGLContext *context) override;
54
55private:
56 static void wlDisplayHandleGlobal(void *data, struct ::wl_registry *registry, uint32_t id, const QString &interface, uint32_t version);
57
58 struct wl_display *m_waylandDisplay = nullptr;
59 struct qt_brcm *m_waylandBrcm = nullptr;
60
61 EGLDisplay m_eglDisplay = EGL_NO_DISPLAY;
62
63 QWaylandDisplay *m_display = nullptr;
64};
65
66}
67
68QT_END_NAMESPACE
69
70#endif // QWAYLANDBRCMEGLINTEGRATION_H
PFNEGLCREATEGLOBALIMAGEBRCMPROC eglCreateGlobalImageBRCM
PFNEGLDESTROYGLOBALIMAGEBRCMPROC eglDestroyGlobalImageBRCM
void * nativeResourceForContext(NativeResource resource, QPlatformOpenGLContext *context) override
QOpenGLContext * createOpenGLContext(EGLContext context, EGLDisplay contextDisplay, QOpenGLContext *shareContext) const override
void * nativeResource(NativeResource resource) override
QPlatformOpenGLContext * createPlatformOpenGLContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share) const override
void initialize(QWaylandDisplay *waylandDisplay) override
Combined button and popup list for selecting options.