summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-07-08 15:48:46 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-07-13 22:07:46 +0200
commitee0198a0183ec2b0cd9ddc6663110cd8e40320aa (patch)
tree74cb7cc1bbd982200480f66dc1057f71f837675b /src/platformsupport/eglconvenience/qeglplatformcontext_p.h
parent70f7155fcc20e43f096a029889d8a8117e11f70d (diff)
Move eglconvenience to QtGui
Task-number: QTBUG-83255 Change-Id: I8a008d8906308dd73a0793db5b88d3a1b6fdaf5c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/platformsupport/eglconvenience/qeglplatformcontext_p.h')
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformcontext_p.h145
1 files changed, 0 insertions, 145 deletions
diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
deleted file mode 100644
index 4a0be36b61..0000000000
--- a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QEGLPLATFORMCONTEXT_H
-#define QEGLPLATFORMCONTEXT_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qtextstream.h>
-#include <qpa/qplatformwindow.h>
-#include <qpa/qplatformopenglcontext.h>
-#include <QtCore/QVariant>
-#include <QtEglSupport/private/qt_egl_p.h>
-#include <QtGui/private/qopenglcontext_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QEGLPlatformContext : public QPlatformOpenGLContext,
- public QPlatformInterface::QEGLContext
-{
-public:
- enum Flag {
- NoSurfaceless = 0x01
- };
- Q_DECLARE_FLAGS(Flags, Flag)
-
- QEGLPlatformContext(const QSurfaceFormat &format, QPlatformOpenGLContext *share, EGLDisplay display,
- EGLConfig *config = nullptr, Flags flags = { });
-
- template <typename T>
- static QOpenGLContext *createFrom(EGLContext context, EGLDisplay contextDisplay,
- EGLDisplay platformDisplay, QOpenGLContext *shareContext)
- {
- if (!context)
- return nullptr;
-
- // A context belonging to a given EGLDisplay cannot be used with another one
- if (contextDisplay != platformDisplay) {
- qWarning("QEGLPlatformContext: Cannot adopt context from different display");
- return nullptr;
- }
-
- QPlatformOpenGLContext *shareHandle = shareContext ? shareContext->handle() : nullptr;
-
- auto *resultingContext = new QOpenGLContext;
- auto *contextPrivate = QOpenGLContextPrivate::get(resultingContext);
- auto *platformContext = new T;
- platformContext->adopt(context, contextDisplay, shareHandle);
- contextPrivate->adopt(platformContext);
- return resultingContext;
- }
-
- ~QEGLPlatformContext();
-
- void initialize() override;
- bool makeCurrent(QPlatformSurface *surface) override;
- void doneCurrent() override;
- void swapBuffers(QPlatformSurface *surface) override;
- QFunctionPointer getProcAddress(const char *procName) override;
-
- QSurfaceFormat format() const override;
- bool isSharing() const override { return m_shareContext != EGL_NO_CONTEXT; }
- bool isValid() const override { return m_eglContext != EGL_NO_CONTEXT; }
-
- EGLContext nativeContext() const override { return eglContext(); }
-
- EGLContext eglContext() const;
- EGLDisplay eglDisplay() const;
- EGLConfig eglConfig() const;
-
-protected:
- QEGLPlatformContext() {} // For adoption
- virtual EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface) = 0;
- virtual EGLSurface createTemporaryOffscreenSurface();
- virtual void destroyTemporaryOffscreenSurface(EGLSurface surface);
- virtual void runGLChecks();
-
-private:
- void adopt(EGLContext context, EGLDisplay display, QPlatformOpenGLContext *shareContext);
- void updateFormatFromGL();
-
- EGLContext m_eglContext;
- EGLContext m_shareContext;
- EGLDisplay m_eglDisplay;
- EGLConfig m_eglConfig;
- QSurfaceFormat m_format;
- EGLenum m_api;
- int m_swapInterval = -1;
- bool m_swapIntervalEnvChecked = false;
- int m_swapIntervalFromEnv = -1;
- Flags m_flags;
- bool m_ownsContext = false;
- QList<EGLint> m_contextAttrs;
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QEGLPlatformContext::Flags)
-
-QT_END_NAMESPACE
-
-#endif //QEGLPLATFORMCONTEXT_H