1/****************************************************************************
2**
3** Copyright (C) 2017 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt WebGL module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 or (at your option) any later version
20** approved by the KDE Free Qt Foundation. The licenses are as published by
21** the Free Software Foundation and appearing in the file LICENSE.GPL3
22** included in the packaging of this file. Please review the following
23** information to ensure the GNU General Public License requirements will
24** be met: https://www.gnu.org/licenses/gpl-3.0.html.
25**
26** $QT_END_LICENSE$
27**
28****************************************************************************/
29
30#ifndef QWEBGLINTEGRATION_H
31#define QWEBGLINTEGRATION_H
32
33#include <QtCore/qloggingcategory.h>
34#include <QtCore/qscopedpointer.h>
35#include <QtGui/qpa/qplatformintegration.h>
36#include <QtGui/qpa/qplatformnativeinterface.h>
37
38QT_BEGIN_NAMESPACE
39
40class QPlatformSurface;
41class QWebGLIntegrationPrivate;
42
43Q_DECLARE_LOGGING_CATEGORY(lcWebGL)
44
45class QWebGLIntegration : public QPlatformIntegration, public QPlatformNativeInterface
46{
47public:
48 QWebGLIntegration(quint16 port, quint16 wssport);
49 ~QWebGLIntegration();
50
51 static QWebGLIntegration *instance();
52
53 void initialize() override;
54 void destroy() override;
55
56 QAbstractEventDispatcher *createEventDispatcher() const override;
57 QPlatformFontDatabase *fontDatabase() const override;
58 QPlatformServices *services() const override;
59 QPlatformInputContext *inputContext() const override;
60 QPlatformTheme *createPlatformTheme(const QString &name) const override;
61 QPlatformWindow *createPlatformWindow(QWindow *window) const override;
62 QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const override;
63 QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const override;
64 QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const override;
65
66 bool hasCapability(QPlatformIntegration::Capability cap) const override;
67
68 QPlatformNativeInterface *nativeInterface() const override;
69
70 void openUrl(const QUrl &url);
71
72private:
73 Q_DISABLE_COPY(QWebGLIntegration)
74 Q_DECLARE_PRIVATE(QWebGLIntegration)
75 QScopedPointer<QWebGLIntegrationPrivate> d_ptr;
76};
77
78QT_END_NAMESPACE
79
80#endif // QWEBGLINTEGRATION_H
81

source code of qtwebglplugin/src/plugins/platforms/webgl/qwebglintegration.h