summaryrefslogtreecommitdiffstats
path: root/src/platformheaders
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-06-08 20:00:36 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-07-02 10:27:50 +0200
commit6ff79478a44fce12ca18832a56db4a370a9ff417 (patch)
tree2bcd7ab7bac46fe28e0828e0a704649bbc025e8f /src/platformheaders
parent037dce81fc27ec241edb6829f6df41927b80666e (diff)
Introduce platform API abstraction for QOpenGLContext
The API is available by including qopenglcontext.h as usual, but scoped in the QPlatformInterface namespace. The namespace exposes platform specific type-safe interfaces that provide: a) Factory functions for adopting native contexts, e.g. QCocoaGLContext::fromNative(nsContext, shareContext); b) Access to underlying native handles, e.g. openGLContext->platformInterface<QCocoaGLContext>->nativeContext() c) Platform specific functionality, e.g. static QWGLContext::openGLModuleHandle() openGLContext->platformInterface<QEGLContext>->doSomething(); The platform interfaces live close to the classes they extend, removing the need for complex indirection and plumbing, and avoids kitchen-sink modules and APIs such as the extras modules, QPlatformFunctions, or QPlatformNativeInterface. In the case of QOpenGLContext these platform APIs are backed by the platform plugin, so dynamic_cast is used to ensure the platform plugin supports the requested interface, but this is and implementation detail. The interface APIs are agnostic to where the implementation lives, while still being available to the user as part of the APIs they extend/augment. The documentation will be restored when the dust settles. Task-number: QTBUG-80233 Change-Id: Iac612403383991c4b24064332542a6e4bcbb3293 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/platformheaders')
-rw-r--r--src/platformheaders/nativecontexts/nativecontexts.pri4
-rw-r--r--src/platformheaders/nativecontexts/qcocoanativecontext.h72
-rw-r--r--src/platformheaders/nativecontexts/qcocoanativecontext.qdoc58
-rw-r--r--src/platformheaders/nativecontexts/qeglnativecontext.h78
-rw-r--r--src/platformheaders/nativecontexts/qeglnativecontext.qdoc70
-rw-r--r--src/platformheaders/nativecontexts/qglxnativecontext.h88
-rw-r--r--src/platformheaders/nativecontexts/qglxnativecontext.qdoc83
-rw-r--r--src/platformheaders/nativecontexts/qwglnativecontext.h79
-rw-r--r--src/platformheaders/nativecontexts/qwglnativecontext.qdoc131
-rw-r--r--src/platformheaders/platformheaders.pro1
10 files changed, 0 insertions, 664 deletions
diff --git a/src/platformheaders/nativecontexts/nativecontexts.pri b/src/platformheaders/nativecontexts/nativecontexts.pri
deleted file mode 100644
index cfb190e4fa..0000000000
--- a/src/platformheaders/nativecontexts/nativecontexts.pri
+++ /dev/null
@@ -1,4 +0,0 @@
-HEADERS += $$PWD/qglxnativecontext.h \
- $$PWD/qeglnativecontext.h \
- $$PWD/qcocoanativecontext.h \
- $$PWD/qwglnativecontext.h
diff --git a/src/platformheaders/nativecontexts/qcocoanativecontext.h b/src/platformheaders/nativecontexts/qcocoanativecontext.h
deleted file mode 100644
index 8227485b15..0000000000
--- a/src/platformheaders/nativecontexts/qcocoanativecontext.h
+++ /dev/null
@@ -1,72 +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 QCOCOANATIVECONTEXT_H
-#define QCOCOANATIVECONTEXT_H
-
-#include <QtCore/QMetaType>
-#include <AppKit/NSOpenGL.h>
-
-QT_BEGIN_NAMESPACE
-
-#if defined(Q_CLANG_QDOC)
-typedef void NSOpenGLContext;
-#endif
-
-struct QCocoaNativeContext
-{
- QCocoaNativeContext()
- : m_context(0)
- { }
-
- QCocoaNativeContext(NSOpenGLContext *ctx)
- : m_context(ctx)
- { }
-
- NSOpenGLContext *context() const { return m_context; }
-
-private:
- NSOpenGLContext *m_context;
-};
-
-QT_END_NAMESPACE
-
-Q_DECLARE_METATYPE(QCocoaNativeContext)
-
-#endif // QCOCOANATIVECONTEXT_H
diff --git a/src/platformheaders/nativecontexts/qcocoanativecontext.qdoc b/src/platformheaders/nativecontexts/qcocoanativecontext.qdoc
deleted file mode 100644
index 7cb4138207..0000000000
--- a/src/platformheaders/nativecontexts/qcocoanativecontext.qdoc
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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 Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \class QCocoaNativeContext
- \inmodule QtPlatformHeaders
- \since 5.4
-
- \brief A class encapsulating a Cocoa NSOpenGLContext.
-
- \note There is no binary compatibility guarantee for this class, meaning
- that an application using it is only guaranteed to work with the Qt version it was
- developed against.
-
- \sa QOpenGLContext::setNativeHandle(), QOpenGLContext::nativeHandle()
- */
-
-/*!
- \fn NSOpenGLContext *QCocoaNativeContext::context() const
-
- \return the context.
- */
-
-/*!
- \fn QCocoaNativeContext::QCocoaNativeContext()
-
- Construct a new instance with no handles.
- */
-
-/*!
- \fn QCocoaNativeContext::QCocoaNativeContext(NSOpenGLContext *ctx)
-
- Constructs a new instance with the provided \a ctx handle.
- */
diff --git a/src/platformheaders/nativecontexts/qeglnativecontext.h b/src/platformheaders/nativecontexts/qeglnativecontext.h
deleted file mode 100644
index 5af2b304fe..0000000000
--- a/src/platformheaders/nativecontexts/qeglnativecontext.h
+++ /dev/null
@@ -1,78 +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 QEGLNATIVECONTEXT_H
-#define QEGLNATIVECONTEXT_H
-
-#include <QtCore/QMetaType>
-
-// Leave including egl.h with the appropriate defines to the client.
-
-QT_BEGIN_NAMESPACE
-
-#if defined(Q_CLANG_QDOC)
-typedef int EGLContext;
-typedef int EGLDisplay;
-#endif
-
-struct QEGLNativeContext
-{
- QEGLNativeContext()
- : m_context(nullptr),
- m_display(nullptr)
- { }
-
- QEGLNativeContext(EGLContext ctx, EGLDisplay dpy)
- : m_context(ctx),
- m_display(dpy)
- { }
-
- EGLContext context() const { return m_context; }
- EGLDisplay display() const { return m_display; }
-
-private:
- EGLContext m_context;
- EGLDisplay m_display;
-};
-
-QT_END_NAMESPACE
-
-Q_DECLARE_METATYPE(QEGLNativeContext)
-
-#endif // QEGLNATIVECONTEXT_H
diff --git a/src/platformheaders/nativecontexts/qeglnativecontext.qdoc b/src/platformheaders/nativecontexts/qeglnativecontext.qdoc
deleted file mode 100644
index 3779ea10c8..0000000000
--- a/src/platformheaders/nativecontexts/qeglnativecontext.qdoc
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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 Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \class QEGLNativeContext
- \inmodule QtPlatformHeaders
- \since 5.4
-
- \brief A class encapsulating an EGL context and display handle.
-
- \note There is no binary compatibility guarantee for this class, meaning
- that an application using it is only guaranteed to work with the Qt version it was
- developed against.
-
- \note Due to being public while relying on otherwise hidden EGL types, this header
- itself does not include \c{EGL/egl.h}. It is the application's responsibility to
- include egl.h with any appropriate defines (for example, \c{MESA_EGL_NO_X11_HEADERS}
- or other vendor-specific defines controlling the typedefs for EGL's native resources)
- before this header.
-
- \sa QOpenGLContext::setNativeHandle(), QOpenGLContext::nativeHandle()
- */
-
-/*!
- \fn EGLContext QEGLNativeContext::context() const
-
- \return the EGL context.
- */
-
-/*!
- \fn EGLDisplay QEGLNativeContext::display() const
-
- \return the EGL display.
- */
-
-/*!
- \fn QEGLNativeContext::QEGLNativeContext()
-
- Construct a new instance with no handles.
- */
-
-/*!
- \fn QEGLNativeContext::QEGLNativeContext(EGLContext ctx, EGLDisplay dpy)
-
- Constructs a new instance with the provided \a ctx and \a dpy handles.
- */
diff --git a/src/platformheaders/nativecontexts/qglxnativecontext.h b/src/platformheaders/nativecontexts/qglxnativecontext.h
deleted file mode 100644
index 989d68eb9e..0000000000
--- a/src/platformheaders/nativecontexts/qglxnativecontext.h
+++ /dev/null
@@ -1,88 +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 QGLXNATIVECONTEXT_H
-#define QGLXNATIVECONTEXT_H
-
-#include <QtCore/QMetaType>
-#include <X11/Xlib.h>
-#include <GL/glx.h>
-
-QT_BEGIN_NAMESPACE
-
-#if defined(Q_CLANG_QDOC)
-typedef int GLXContext;
-typedef void Display;
-typedef int Window;
-typedef int VisualID;
-#endif
-
-struct QGLXNativeContext
-{
- QGLXNativeContext()
- : m_context(nullptr),
- m_display(nullptr),
- m_window(0),
- m_visualId(0)
- { }
-
- QGLXNativeContext(GLXContext ctx, Display *dpy = nullptr, Window wnd = 0, VisualID vid = 0)
- : m_context(ctx),
- m_display(dpy),
- m_window(wnd),
- m_visualId(vid)
- { }
-
- GLXContext context() const { return m_context; }
- Display *display() const { return m_display; }
- Window window() const { return m_window; }
- VisualID visualId() const { return m_visualId; }
-
-private:
- GLXContext m_context;
- Display *m_display;
- Window m_window;
- VisualID m_visualId;
-};
-
-QT_END_NAMESPACE
-
-Q_DECLARE_METATYPE(QGLXNativeContext)
-
-#endif // QGLXNATIVECONTEXT_H
diff --git a/src/platformheaders/nativecontexts/qglxnativecontext.qdoc b/src/platformheaders/nativecontexts/qglxnativecontext.qdoc
deleted file mode 100644
index 56182534a5..0000000000
--- a/src/platformheaders/nativecontexts/qglxnativecontext.qdoc
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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 Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \class QGLXNativeContext
- \inmodule QtPlatformHeaders
- \since 5.4
-
- \brief A class encapsulating a GLXContext and related native handles.
-
- \note Only context() is guaranteed to be valid. The other handles may be all \c 0. They are
- useful however when QOpenGLContext::setNativeHandle() is used to adopt a legacy context
- created by glXCreateContext. To adopt such a context, either the Window or VisualID
- that had been used to create the context needs to be known, otherwise the adoption will
- fail. For modern contexts created with an FBConfig, these are not necessary, the
- GLXContext itself is sufficient. The Display is optional.
-
- \note There is no binary compatibility guarantee for this class, meaning
- that an application using it is only guaranteed to work with the Qt version it was
- developed against.
-
- \sa QOpenGLContext::setNativeHandle(), QOpenGLContext::nativeHandle()
- */
-
-/*!
- \fn GLXContext QGLXNativeContext::context() const
-
- \return the GLXContext.
- */
-
-/*!
- \fn Display *QGLXNativeContext::display() const
-
- \return a pointer to the X11 display or \c NULL if not available.
- */
-
-/*!
- \fn Window QGLXNativeContext::window() const
-
- \return the X11 Window or \c 0 if not available.
- */
-
-/*!
- \fn VisualID QGLXNativeContext::visualId() const
-
- \return the X11 visual ID or \c 0 if not available.
- */
-
-/*!
- \fn QGLXNativeContext::QGLXNativeContext()
-
- Construct a new instance with no handles.
- */
-
-/*!
- \fn QGLXNativeContext::QGLXNativeContext(GLXContext ctx, Display *dpy, Window wnd, VisualID vid)
-
- Constructs a new instance with the provided \a ctx, \a dpy, \a wnd, \a vid handles.
- */
diff --git a/src/platformheaders/nativecontexts/qwglnativecontext.h b/src/platformheaders/nativecontexts/qwglnativecontext.h
deleted file mode 100644
index 24244b285f..0000000000
--- a/src/platformheaders/nativecontexts/qwglnativecontext.h
+++ /dev/null
@@ -1,79 +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 QWGLNATIVECONTEXT_H
-#define QWGLNATIVECONTEXT_H
-
-#include <QtCore/QMetaType>
-#include <wingdi.h>
-#include <GL/gl.h>
-
-QT_BEGIN_NAMESPACE
-
-#if defined(Q_CLANG_QDOC)
-typedef int HGLRC;
-typedef int HWND;
-#endif
-
-class QWGLNativeContext
-{
-public:
- QWGLNativeContext()
- : m_context(0),
- m_window(0)
- { }
-
- QWGLNativeContext(HGLRC ctx, HWND wnd)
- : m_context(ctx),
- m_window(wnd)
- { }
-
- HGLRC context() const { return m_context; }
- HWND window() const { return m_window; }
-
-private:
- HGLRC m_context;
- HWND m_window;
-};
-
-QT_END_NAMESPACE
-
-Q_DECLARE_METATYPE(QWGLNativeContext)
-
-#endif // QWGLNATIVECONTEXT_H
diff --git a/src/platformheaders/nativecontexts/qwglnativecontext.qdoc b/src/platformheaders/nativecontexts/qwglnativecontext.qdoc
deleted file mode 100644
index 20563c3906..0000000000
--- a/src/platformheaders/nativecontexts/qwglnativecontext.qdoc
+++ /dev/null
@@ -1,131 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** 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 Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \class QWGLNativeContext
- \inmodule QtPlatformHeaders
- \since 5.4
-
- \brief A class encapsulating a WGL context on Windows with desktop OpenGL (opengl32.dll).
-
- \note There is no binary compatibility guarantee for this class,
- meaning that an application using it is only guaranteed to work with the Qt
- version it was developed against.
-
- QWGLNativeContext is a value class that can be passed to
- QOpenGLContext::setNativeHandle(). When creating a QOpenGLContext with the
- native handle set, no new context will get created. Instead, the provided
- handles are used, without taking ownership. This allows wrapping a context
- created by an external framework or rendering engine. The typical usage will
- be similar to the following snippet:
-
- \code
- #include <QtPlatformSupport/QWGLNativeContext>
- ...create and retrieve the WGL context and the corresponding window...
- QOpenGLContext *context = new QOpenGLContext;
- QWGLNativeContext nativeContext(hglrc, hwnd);
- context->setNativeHandle(QVariant::fromValue(nativeContext));
- context->create();
- ...
- \endcode
-
- The window is needed because the its pixel format will be queried. When the
- adoption is successful, QOpenGLContext::format() will return a QSurfaceFormat
- describing this pixel format.
-
- It is recommended to restrict the usage of QOpenGLContexts created this way.
- Various platform-specific behavior and issues may prevent such contexts to be
- made current with windows (surfaces) created by Qt due to non-matching pixel
- formats for example. A potentially safer solution is to use the wrapped
- context only to set up sharing and perform Qt-based rendering offscreen,
- using a separate, dedicated QOpenGLContext. The resulting textures are then
- accessible in the foreign context too.
-
- \code
- ...like above...
- QOpenGLContext *qtcontext = new QOpenGLContext;
- qtcontext->setShareContext(context);
- qtcontext->setFormat(context->format());
- qtcontext->create();
- ...use qtcontext for rendering with Qt...
- \endcode
-
- In addition to being used with QOpenGLContext::setNativeHandle(), this class
- is used also to retrieve the native context handle, that is, a HGLRC value,
- from a QOpenGLContext. Calling QOpenGLContext::nativeHandle() returns a
- QVariant which, on Windows with opengl32.dll at least, will contain a
- QWGLNativeContext:
-
- \code
- QVariant nativeHandle = context->nativeHandle();
- if (!nativeHandle.isNull() && nativeHandle.canConvert<QWGLNativeContext>()) {
- QWGLNativeContext nativeContext = nativeHandle.value<QWGLNativeContext>();
- HGLRC hglrc = nativeContext.context();
- ...
- }
- \endcode
-
- \sa QOpenGLContext::setNativeHandle(), QOpenGLContext::nativeHandle()
- */
-
-/*!
- \fn HGLRC QWGLNativeContext::context() const
-
- \return the WGL context.
- */
-
-/*!
- \fn HWND QWGLNativeContext::window() const
-
- \note The window handle is not available when the QWGLNativeContext is
- queried from a regular, non-adopted QOpenGLContext using
- QOpenGLContext::nativeHandle(). This is because the \e windows platform
- plugin creates WGL contexts using a dummy window that is not available
- afterwards. Instead, the native window handle (HWND) is queriable from a
- QWindow via QPlatformNativeInterface::nativeResourceForWindow() using the \e
- "handle" resource key. Note however that the window will not have its pixel
- format set until it is first associated with a context via
- QOpenGLContext::makeCurrent().
-
- \return handle for the window for which the context was created.
- */
-
-/*!
- \fn QWGLNativeContext::QWGLNativeContext()
-
- Construct a new instance with no handles.
- */
-
-/*!
- \fn QWGLNativeContext::QWGLNativeContext(HGLRC ctx, HWND wnd)
-
- Constructs a new instance with the provided \a ctx context handle and \a wnd window handle.
-
- \note The window specified by \a wnd must have its pixel format set to a
- format compatible with the context's. If no SetPixelFormat() call was made on
- any device context belonging to the window, adopting the context will fail.
- */
diff --git a/src/platformheaders/platformheaders.pro b/src/platformheaders/platformheaders.pro
index 392acc54f0..22d1655c77 100644
--- a/src/platformheaders/platformheaders.pro
+++ b/src/platformheaders/platformheaders.pro
@@ -3,7 +3,6 @@ TEMPLATE = subdirs
VERSION = $$MODULE_VERSION
MODULE_INCNAME = QtPlatformHeaders
-include(nativecontexts/nativecontexts.pri)
include(xcbfunctions/xcbfunctions.pri)
include(eglfsfunctions/eglfsfunctions.pri)
include(windowsfunctions/windowsfunctions.pri)