Remove last remaining bits of QtPlatformHeaders

Task-number: QTBUG-84220
Change-Id: I951e04bfe9358a99951d1d61ff47b675584b7f81
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
Tor Arne Vestbø 2020-07-29 15:41:52 +02:00
parent 4595fb2c1e
commit a00ad95137
49 changed files with 46 additions and 705 deletions

View File

@ -57,7 +57,6 @@ if(QT_FEATURE_gui)
endif()
endif()
add_subdirectory(platformsupport)
add_subdirectory(platformheaders)
endif()
if (QT_FEATURE_testlib)
add_subdirectory(testlib)

View File

@ -34,7 +34,6 @@ depends += \
qtmultimedia \
qtnetwork \
qtopengl \
qtplatformheaders \
qtsvg \
qtqml \
qtquick \

View File

@ -60,10 +60,6 @@ QT_BEGIN_NAMESPACE
There is no public constructor nor any public factory function.
QPlatformGraphicsBuffer is intended to be created by using platform specific
APIs available from QtPlatformHeaders, or there might be accessor functions
similar to the accessor function that QPlatformBackingstore has.
\internal
*/

View File

@ -77,6 +77,19 @@ struct Q_GUI_EXPORT QXcbScreen
};
#endif
#if QT_CONFIG(vsp2)
struct Q_GUI_EXPORT QVsp2Screen
{
QT_DECLARE_PLATFORM_INTERFACE(QVsp2Screen)
virtual int addLayer(int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine) = 0;
virtual void setLayerBuffer(int id, int dmabufFd) = 0;
virtual void setLayerPosition(int id, const QPoint &position) = 0;
virtual void setLayerAlpha(int id, qreal alpha) = 0;
virtual bool removeLayer(int id) = 0;
virtual void addBlendListener(void (*callback)()) = 0;
};
#endif
} // QPlatformInterface::Private
QT_END_NAMESPACE

View File

@ -88,6 +88,10 @@ QT_DEFINE_PRIVATE_PLATFORM_INTERFACE(QXcbScreen);
QT_DEFINE_PRIVATE_PLATFORM_INTERFACE(QXcbWindow);
#endif
#if QT_CONFIG(vsp2)
QT_DEFINE_PRIVATE_PLATFORM_INTERFACE(QVsp2Screen);
#endif
#if QT_CONFIG(evdev)
QT_DEFINE_PRIVATE_PLATFORM_INTERFACE(QEvdevKeyMapper);

View File

@ -1,20 +0,0 @@
# Generated from platformheaders.pro.
#####################################################################
## PlatformHeaders Module:
#####################################################################
qt_add_module(PlatformHeaders
HEADER_MODULE
SOURCES
eglfsfunctions/qeglfsfunctions_p.h
helper/qplatformheaderhelper_p.h
waylandfunctions/qwaylandwindowfunctions_p.h
PUBLIC_LIBRARIES
Qt::Core
Qt::Gui
)
qt_add_docs(PlatformHeaders
doc/qtplatformheaders.qdocconf
)

View File

@ -1,22 +0,0 @@
# Generated from platformheaders.pro.
#####################################################################
## PlatformHeaders Module:
#####################################################################
qt_add_module(PlatformHeaders
HEADER_MODULE
# special case begin
# SOURCES
# eglfsfunctions/qeglfsfunctions_p.h
# helper/qplatformheaderhelper_p.h
# waylandfunctions/qwaylandwindowfunctions_p.h
# special case end
PUBLIC_LIBRARIES
Qt::Core
Qt::Gui
)
qt_add_docs(PlatformHeaders
doc/qtplatformheaders.qdocconf
)

View File

@ -1,41 +0,0 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtPlatformHeaders
description = Qt Platform Headers Reference Documentation
version = $QT_VERSION
examplesinstallpath = qtplatformheaders
qhp.projects = QtPlatformHeaders
qhp.QtPlatformHeaders.file = qtplatformheaders.qhp
qhp.QtPlatformHeaders.namespace = org.qt-project.qtplatformheaders.$QT_VERSION_TAG
qhp.QtPlatformHeaders.virtualFolder = qtplatformheaders
qhp.QtPlatformHeaders.indexTitle = Qt Platform Headers
qhp.QtPlatformHeaders.indexRoot =
qhp.QtPlatformHeaders.filterAttributes = qtplatformheaders $QT_VERSION qtrefdoc
qhp.QtPlatformHeaders.customFilters.Qt.name = QtPlatformHeaders $QT_VERSION
qhp.QtPlatformHeaders.customFilters.Qt.filterAttributes = qtplatformheaders $QT_VERSION
qhp.QtPlatformHeaders.subprojects = classes
qhp.QtPlatformHeaders.subprojects.classes.title = C++ Classes
qhp.QtPlatformHeaders.subprojects.classes.indexTitle = Qt Platform Headers C++ Classes
qhp.QtPlatformHeaders.subprojects.classes.selectors = class fake:headerfile
qhp.QtPlatformHeaders.subprojects.classes.sortPages = true
depends += \
qtcore \
qtgui \
qtwidgets \
qtdoc
headerdirs += ..
sourcedirs += ..
imagedirs += images
tagfile = qtplatformheaders.tags
navigation.landingpage = "Qt Platform Headers"
navigation.cppclassespage = "Qt Platform Headers C++ Classes"

View File

@ -1,30 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2019 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$
**
****************************************************************************/
/*!
\dontdocument (QMetaTypeId)
*/

View File

@ -1,96 +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$
**
****************************************************************************/
/*!
\module QtPlatformHeaders
\title Qt Platform Headers C++ Classes
\ingroup modules
\brief The Qt Platform Headers module offers header-only inline classes that
encapsulate platform-specific information that is tied to a given runtime
configuration of a platform plugin.
*/
/*!
\page qtplatformheaders-index.html
\title Qt Platform Headers
\brief The Qt Platform Headers module offers header-only inline classes that
encapsulate platform-specific information that is tied to a given runtime
configuration of a platform plugin.
Some applications may need to interface Qt with other frameworks. This often
means using graphics contexts or other types of native handles created by
one framework with another. For example, on some platforms, QOpenGLContext
offers the ability to wrap an existing native OpenGL context, instead of
creating a new one. This existing native context can be created by some
other third-party code.
The type of such native handles is highly platform specific and in some
cases the platform plugin will need more information to adopt a handle, just
the handle in itself will not be sufficient. Therefore the public API
consists of functions taking or returning a QVariant that contains a
platform-specific value type. See for example
QOpenGLContext::setNativeHandle() and QOpenGLContext::nativeHandle(). When
running on Linux/X11, using the xcb platform plugin and the GLX windowing
system interface, the variant contains a QGLXNativeContext. On other
platforms a different class will be used. These classes are all placed in
the Qt Platform Headers module.
Platform headers can be used in conjunction with
QGuiApplication::platformFunction() to give a type safe interface to
platform specific functionality. It is possible for headers defined in
QtPlatformHeaders to define typedefs for functions that can be returned by
a platform plugin from QGuiApplication::platformFunction(). Headers in
QtPlatformHeaders can also implement wrapper functions for the function
pointer, giving a static function that can be called from any context after
the platform integration has been created.
\note Similar to the other QPA APIs, there are no binary compatibility
guarantees for these classes, meaning that an application using these
classes is only guaranteed to work with the Qt version it was developed
against. Unlike QPA however, source compatibility is guaranteed.
\sa QWindowsWindowFunctions
\section1 Getting Started
To include the definitions of the module's functions and classes, use the following directives:
\code
#include <QtPlatformHeaders/QWindowsWindowFunctions>
\endcode
As the module is header-only, no modifications to your build system are required.
\note The module name (\c QtPlatformHeaders) must appear in the \c #include directive.
\note It is not necessary to enclose the code in \c #ifdef directives depending on platform.
\section1 API Reference
\list
\li \l{Qt Platform Headers C++ Classes}{C++ Classes}
\endlist
*/

View File

@ -1 +0,0 @@
HEADERS += $$PWD/qeglfsfunctions_p.h

View File

@ -1,129 +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 QEglFSFunctions
\inmodule QtPlatformHeaders
\brief The QEglFSFunctions class is an inline class containing
platform-specific functionality for the eglfs platform plugin that is
typically used on systems running Embedded Linux or Android.
\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.
*/
/*!
\fn int QEglFSFunctions::vsp2AddLayer(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine)
\internal
\preliminary
*/
/*!
\fn bool QEglFSFunctions::vsp2RemoveLayer(const QScreen *screen, int id)
\internal
\preliminary
*/
/*!
\fn void QEglFSFunctions::vsp2SetLayerBuffer(const QScreen *screen, int id, int dmabufFd)
\internal
\preliminary
*/
/*!
\fn bool QEglFSFunctions::vsp2SetLayerPosition(const QScreen *screen, int id, const QPoint &position)
\internal
\preliminary
*/
/*!
\fn bool QEglFSFunctions::vsp2SetLayerAlpha(const QScreen *screen, int id, qreal alpha)
\internal
\preliminary
*/
/*!
\fn void QEglFSFunctions::vsp2AddBlendListener(const QScreen *screen, void(*callback)())
\internal
\preliminary
*/
/*!
\typedef QEglFSFunctions::Vsp2AddBlendListenerType
\internal
*/
/*!
\typedef QEglFSFunctions::Vsp2AddLayerType
\internal
*/
/*!
\typedef QEglFSFunctions::Vsp2RemoveLayerType
\internal
*/
/*!
\typedef QEglFSFunctions::Vsp2SetLayerBufferType
\internal
*/
/*!
\typedef QEglFSFunctions::Vsp2SetLayerPositionType
\internal
*/
/*!
\typedef QEglFSFunctions::Vsp2SetLayerAlphaType
\internal
*/
/*! \fn QByteArray QEglFSFunctions::vsp2AddBlendListenerTypeIdentifier()
\internal
*/
/*! \fn QByteArray QEglFSFunctions::vsp2AddLayerTypeIdentifier()
\internal
*/
/*! \fn QByteArray QEglFSFunctions::vsp2RemoveLayerTypeIdentifier()
\internal
*/
/*! \fn QByteArray QEglFSFunctions::vsp2SetLayerBufferTypeIdentifier()
\internal
*/
/*! \fn QByteArray QEglFSFunctions::vsp2SetLayerPositionTypeIdentifier()
\internal
*/
/*! \fn QByteArray QEglFSFunctions::vsp2SetLayerAlphaTypeIdentifier()
\internal
*/

View File

@ -1,125 +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 QEGLFSFUNCTIONS_H
#define QEGLFSFUNCTIONS_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/QByteArray>
#include <QtGui/QGuiApplication>
QT_BEGIN_NAMESPACE
class QEglFSFunctions
{
public:
typedef int (*Vsp2AddLayerType)(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine);
static QByteArray vsp2AddLayerTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2AddLayer"); }
//vsp2 functions are currently internal and preliminary (see qdoc file)
static int vsp2AddLayer(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine)
{
auto func = reinterpret_cast<Vsp2AddLayerType>(QGuiApplication::platformFunction(vsp2AddLayerTypeIdentifier()));
if (func)
return func(screen, dmabufFd, size, position, drmPixelFormat, bytesPerLine);
return 0;
}
typedef bool (*Vsp2RemoveLayerType)(const QScreen *screen, int id);
static QByteArray vsp2RemoveLayerTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2RemoveLayer"); }
static bool vsp2RemoveLayer(const QScreen *screen, int id)
{
auto func = reinterpret_cast<Vsp2RemoveLayerType>(QGuiApplication::platformFunction(vsp2RemoveLayerTypeIdentifier()));
return func && func(screen, id);
}
typedef void (*Vsp2SetLayerBufferType)(const QScreen *screen, int id, int dmabufFd);
static QByteArray vsp2SetLayerBufferTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2SetLayerBuffer"); }
static void vsp2SetLayerBuffer(const QScreen *screen, int id, int dmabufFd)
{
auto func = reinterpret_cast<Vsp2SetLayerBufferType>(QGuiApplication::platformFunction(vsp2SetLayerBufferTypeIdentifier()));
if (func)
func(screen, id, dmabufFd);
}
typedef bool (*Vsp2SetLayerPositionType)(const QScreen *screen, int id, const QPoint &position);
static QByteArray vsp2SetLayerPositionTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2SetLayerPosition"); }
static bool vsp2SetLayerPosition(const QScreen *screen, int id, const QPoint &position)
{
auto func = reinterpret_cast<Vsp2SetLayerPositionType>(QGuiApplication::platformFunction(vsp2SetLayerPositionTypeIdentifier()));
return func && func(screen, id, position);
}
typedef bool (*Vsp2SetLayerAlphaType)(const QScreen *screen, int id, qreal alpha);
static QByteArray vsp2SetLayerAlphaTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2SetLayerAlpha"); }
static bool vsp2SetLayerAlpha(const QScreen *screen, int id, qreal alpha)
{
auto func = reinterpret_cast<Vsp2SetLayerAlphaType>(QGuiApplication::platformFunction(vsp2SetLayerAlphaTypeIdentifier()));
return func && func(screen, id, alpha);
}
typedef void (*Vsp2AddBlendListenerType)(const QScreen *screen, void(*callback)());
static QByteArray vsp2AddBlendListenerTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2AddBlendListener"); }
static void vsp2AddBlendListener(const QScreen *screen, void(*callback)())
{
auto func = reinterpret_cast<Vsp2AddBlendListenerType>(QGuiApplication::platformFunction(vsp2AddBlendListenerTypeIdentifier()));
if (func)
func(screen, callback);
}
};
QT_END_NAMESPACE
#endif // QEGLFSFUNCTIONS_H

View File

@ -1,2 +0,0 @@
HEADERS += \
$$PWD/qplatformheaderhelper_p.h

View File

@ -1,104 +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 QPLATFORMHEADERHELPER_H
#define QPLATFORMHEADERHELPER_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/QByteArray>
#include <QtGui/QGuiApplication>
#if 0
#pragma qt_class(QPlatformHeaderHelper)
#endif
QT_BEGIN_NAMESPACE
namespace QPlatformHeaderHelper {
template<typename ReturnT, typename FunctionT>
ReturnT callPlatformFunction(const QByteArray &functionName)
{
FunctionT func = reinterpret_cast<FunctionT>(QGuiApplication::platformFunction(functionName));
return func ? func() : ReturnT();
}
template<typename ReturnT, typename FunctionT, typename Arg1>
ReturnT callPlatformFunction(const QByteArray &functionName, Arg1 a1)
{
FunctionT func = reinterpret_cast<FunctionT>(QGuiApplication::platformFunction(functionName));
return func ? func(a1) : ReturnT();
}
template<typename ReturnT, typename FunctionT, typename Arg1, typename Arg2>
ReturnT callPlatformFunction(const QByteArray &functionName, Arg1 a1, Arg2 a2)
{
FunctionT func = reinterpret_cast<FunctionT>(QGuiApplication::platformFunction(functionName));
return func ? func(a1, a2) : ReturnT();
}
template<typename ReturnT, typename FunctionT, typename Arg1, typename Arg2, typename Arg3>
ReturnT callPlatformFunction(const QByteArray &functionName, Arg1 a1, Arg2 a2, Arg3 a3)
{
FunctionT func = reinterpret_cast<FunctionT>(QGuiApplication::platformFunction(functionName));
return func ? func(a1, a2, a3) : ReturnT();
}
template<typename ReturnT, typename FunctionT, typename Arg1, typename Arg2, typename Arg3, typename Arg4>
ReturnT callPlatformFunction(const QByteArray &functionName, Arg1 a1, Arg2 a2, Arg3 a3, Arg4 a4)
{
FunctionT func = reinterpret_cast<FunctionT>(QGuiApplication::platformFunction(functionName));
return func ? func(a1, a2, a3, a4) : ReturnT();
}
}
QT_END_NAMESPACE
#endif /*QPLATFORMHEADERHELPER_H*/

View File

@ -1,9 +0,0 @@
TARGET = QtPlatformHeaders
CONFIG += header_module
include(eglfsfunctions/eglfsfunctions.pri)
include(helper/helper.pri)
QMAKE_DOCS = $$PWD/doc/qtplatformheaders.qdocconf
load(qt_module)

View File

@ -58,7 +58,6 @@ qt_internal_add_plugin(QCocoaIntegrationPlugin
Qt::CorePrivate
Qt::Gui
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
)
# Resources:

View File

@ -64,7 +64,6 @@ qt_internal_add_plugin(QCocoaIntegrationPlugin
Qt::CorePrivate
Qt::Gui
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
)
# special case begin

View File

@ -99,7 +99,7 @@ LIBS += -framework AppKit -framework CoreServices -framework Carbon -framework I
DEFINES += QT_NO_FOREACH
QT += core-private gui-private platformheaders-private
QT += core-private gui-private
CONFIG += no_app_extension_api_only

View File

@ -1,7 +1,7 @@
TARGET = qdirect2d
QT += \
core-private gui-private platformheaders-private
core-private gui-private
LIBS += -ldwmapi -lversion -ld3d11 -ldxgi -ldxguid
QMAKE_USE_PRIVATE += gdi32 dwrite_2 d2d1_1

View File

@ -24,7 +24,6 @@ qt_add_module(EglFSDeviceIntegration
Qt::DeviceDiscoverySupportPrivate
Qt::FbSupportPrivate
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
)
#### Keys ignored in scope 2:.:.:eglfsdeviceintegration.pro:<TRUE>:
@ -91,7 +90,6 @@ qt_internal_add_plugin(QEglFSIntegrationPlugin
api
PUBLIC_LIBRARIES
Qt::EglFSDeviceIntegrationPrivate
Qt::PlatformHeadersPrivate
)
#### Keys ignored in scope 12:.:.:eglfs-plugin.pro:<TRUE>:

View File

@ -25,7 +25,6 @@ qt_add_module(EglFSDeviceIntegration
Qt::DeviceDiscoverySupportPrivate
Qt::FbSupportPrivate
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
EGL::EGL # special case
)
@ -98,7 +97,6 @@ qt_internal_add_plugin(QEglFSIntegrationPlugin
PUBLIC_LIBRARIES
Qt::CorePrivate # special case
Qt::EglFSDeviceIntegrationPrivate
Qt::PlatformHeadersPrivate
EGL::EGL # special case
)

View File

@ -94,8 +94,6 @@
#include <QtInputSupport/qintegrityhidmanager.h>
#endif
#include <QtPlatformHeaders/private/qeglfsfunctions_p.h>
static void initResources()
{
#ifndef QT_NO_CURSOR

View File

@ -52,7 +52,6 @@
#include <QtCore/QJsonArray>
#include <QtGui/qpa/qplatformwindow.h>
#include <QtGui/QScreen>
#include <QtPlatformHeaders/private/qeglfsfunctions_p.h>
#include <xf86drm.h>
#include <xf86drmMode.h>
@ -123,24 +122,6 @@ void QEglFSKmsVsp2Integration::presentBuffer(QPlatformSurface *surface)
screen->flip();
}
QFunctionPointer QEglFSKmsVsp2Integration::platformFunction(const QByteArray &function) const
{
if (function == QEglFSFunctions::vsp2AddLayerTypeIdentifier())
return QFunctionPointer(addLayerStatic);
if (function == QEglFSFunctions::vsp2RemoveLayerTypeIdentifier())
return QFunctionPointer(removeLayerStatic);
if (function == QEglFSFunctions::vsp2SetLayerBufferTypeIdentifier())
return QFunctionPointer(setLayerBufferStatic);
if (function == QEglFSFunctions::vsp2SetLayerPositionTypeIdentifier())
return QFunctionPointer(setLayerPositionStatic);
if (function == QEglFSFunctions::vsp2SetLayerAlphaTypeIdentifier())
return QFunctionPointer(setLayerAlphaStatic);
if (function == QEglFSFunctions::vsp2AddBlendListenerTypeIdentifier())
return QFunctionPointer(addBlendListenerStatic);
return nullptr;
}
QKmsDevice *QEglFSKmsVsp2Integration::createDevice()
{
QString path = screenConfig()->devicePath();
@ -162,42 +143,6 @@ QKmsDevice *QEglFSKmsVsp2Integration::createDevice()
return new QEglFSKmsVsp2Device(screenConfig(), path);
}
int QEglFSKmsVsp2Integration::addLayerStatic(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint pixelFormat, uint bytesPerLine)
{
auto vsp2Screen = static_cast<QEglFSKmsVsp2Screen *>(screen->handle());
return vsp2Screen->addLayer(dmabufFd, size, position, pixelFormat, bytesPerLine);
}
bool QEglFSKmsVsp2Integration::removeLayerStatic(const QScreen *screen, int id)
{
auto vsp2Screen = static_cast<QEglFSKmsVsp2Screen *>(screen->handle());
return vsp2Screen->removeLayer(id);
}
void QEglFSKmsVsp2Integration::setLayerBufferStatic(const QScreen *screen, int id, int dmabufFd)
{
auto vsp2Screen = static_cast<QEglFSKmsVsp2Screen *>(screen->handle());
vsp2Screen->setLayerBuffer(id, dmabufFd);
}
void QEglFSKmsVsp2Integration::setLayerPositionStatic(const QScreen *screen, int id, const QPoint &position)
{
auto vsp2Screen = static_cast<QEglFSKmsVsp2Screen *>(screen->handle());
vsp2Screen->setLayerPosition(id, position);
}
void QEglFSKmsVsp2Integration::setLayerAlphaStatic(const QScreen *screen, int id, qreal alpha)
{
auto vsp2Screen = static_cast<QEglFSKmsVsp2Screen *>(screen->handle());
vsp2Screen->setLayerAlpha(id, alpha);
}
void QEglFSKmsVsp2Integration::addBlendListenerStatic(const QScreen *screen, void(*callback)())
{
auto vsp2Screen = static_cast<QEglFSKmsVsp2Screen *>(screen->handle());
vsp2Screen->addBlendListener(callback);
}
class QEglFSKmsVsp2Window : public QEglFSWindow
{
public:

View File

@ -62,18 +62,8 @@ public:
void presentBuffer(QPlatformSurface *surface) override;
QEglFSWindow *createWindow(QWindow *window) const override;
QFunctionPointer platformFunction(const QByteArray &function) const override;
protected:
QKmsDevice *createDevice() override;
private:
static int addLayerStatic(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint pixelFormat, uint bytesPerLine);
static bool removeLayerStatic(const QScreen *screen, int id);
static void setLayerBufferStatic(const QScreen *screen, int id, int dmabufFd);
static void setLayerPositionStatic(const QScreen *screen, int id, const QPoint &position);
static void setLayerAlphaStatic(const QScreen *screen, int id, qreal alpha);
static void addBlendListenerStatic(const QScreen *screen, void(*callback)());
};
QT_END_NAMESPACE

View File

@ -46,11 +46,14 @@
#include "qvsp2blendingdevice.h"
#include <QtCore/QMutex>
#include <qpa/qplatformscreen_p.h>
#include <gbm.h>
QT_BEGIN_NAMESPACE
class QEglFSKmsVsp2Screen : public QEglFSKmsScreen
, public QPlatformInterface::Private::QVsp2Screen
{
public:
QEglFSKmsVsp2Screen(QEglFSKmsDevice *device, const QKmsOutput &output);
@ -63,12 +66,12 @@ public:
void initQtLayer();
//TODO: use a fixed index API instead of auto increment?
int addLayer(int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine);
void setLayerBuffer(int id, int dmabufFd);
void setLayerPosition(int id, const QPoint &position);
void setLayerAlpha(int id, qreal alpha);
bool removeLayer(int id);
void addBlendListener(void (*callback)());
int addLayer(int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine) override;
void setLayerBuffer(int id, int dmabufFd) override;
void setLayerPosition(int id, const QPoint &position) override;
void setLayerAlpha(int id, qreal alpha) override;
bool removeLayer(int id) override;
void addBlendListener(void (*callback)()) override;
void flip();
void blendAndFlipDrm();

View File

@ -1,6 +1,6 @@
TARGET = qeglfs
QT += eglfsdeviceintegration-private platformheaders-private
QT += eglfsdeviceintegration-private
CONFIG += egl

View File

@ -10,7 +10,6 @@ MODULE = eglfsdeviceintegration
QT += \
core-private gui-private \
platformheaders-private \
devicediscovery_support-private \
fb_support-private

View File

@ -19,7 +19,6 @@ qt_internal_add_plugin(QLinuxFbIntegrationPlugin
Qt::FbSupportPrivate
Qt::Gui
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
)
#### Keys ignored in scope 1:.:.:linuxfb.pro:<TRUE>:

View File

@ -20,7 +20,6 @@ qt_internal_add_plugin(QLinuxFbIntegrationPlugin
Qt::FbSupportPrivate
Qt::Gui
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
)
#### Keys ignored in scope 1:.:.:linuxfb.pro:<TRUE>:

View File

@ -4,7 +4,6 @@ DEFINES += QT_NO_FOREACH
QT += \
core-private gui-private \
platformheaders-private \
fb_support-private
qtHaveModule(input_support-private): \

View File

@ -53,7 +53,6 @@ qt_internal_add_plugin(QWindowsIntegrationPlugin
Qt::CorePrivate
Qt::Gui
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
dwmapi
imm32
oleaut32

View File

@ -54,7 +54,6 @@ qt_internal_add_plugin(QWindowsIntegrationPlugin
Qt::CorePrivate
Qt::Gui
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
dwmapi
imm32
oleaut32

View File

@ -1,7 +1,6 @@
TARGET = qwindows
QT += \
core-private gui-private platformheaders-private
QT += core-private gui-private
qtConfig(opengl): QT += opengl-private

View File

@ -42,7 +42,6 @@ qt_add_module(XcbQpa
PkgConfig::XKB_COMMON_X11
Qt::CorePrivate
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
XCB::ICCCM
XCB::IMAGE
XCB::KEYSYMS
@ -142,7 +141,6 @@ qt_internal_add_plugin(QXcbIntegrationPlugin
PUBLIC_LIBRARIES
Qt::CorePrivate
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
Qt::XcbQpaPrivate
)

View File

@ -42,7 +42,6 @@ qt_add_module(XcbQpa
PkgConfig::XKB_COMMON_X11
Qt::CorePrivate
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
XCB::ICCCM
XCB::IMAGE
XCB::KEYSYMS
@ -169,7 +168,6 @@ qt_internal_add_plugin(QXcbIntegrationPlugin
PUBLIC_LIBRARIES
Qt::CorePrivate
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
Qt::XcbQpaPrivate
)

View File

@ -1,6 +1,6 @@
TARGET = qxcb
QT += core-private gui-private xcb_qpa_lib-private platformheaders-private
QT += core-private gui-private xcb_qpa_lib-private
DEFINES += QT_NO_FOREACH

View File

@ -2,9 +2,7 @@ TARGET = QtXcbQpa
CONFIG += no_module_headers internal_module
DEFINES += QT_NO_FOREACH
QT += \
core-private gui-private \
platformheaders-private
QT += core-private gui-private
qtConfig(opengl): QT += opengl-private

View File

@ -117,17 +117,13 @@ src_gui.subdir = $$PWD/gui
src_gui.target = sub-gui
src_gui.depends = src_corelib src_tools_rcc
src_platformheaders.subdir = $$PWD/platformheaders
src_platformheaders.target = sub-platformheaders
src_platformheaders.depends = src_corelib src_gui
src_platformsupport.subdir = $$PWD/platformsupport
src_platformsupport.target = sub-platformsupport
src_platformsupport.depends = src_corelib src_gui src_platformheaders
src_platformsupport.depends = src_corelib src_gui
src_widgets.subdir = $$PWD/widgets
src_widgets.target = sub-widgets
src_widgets.depends = src_corelib src_gui src_tools_uic src_platformheaders
src_widgets.depends = src_corelib src_gui src_tools_uic
src_opengl.subdir = $$PWD/opengl
src_opengl.target = sub-opengl
@ -212,13 +208,13 @@ qtConfig(gui) {
src_gui.depends += src_tools_qvkgen
TOOLS += src_tools_qvkgen
}
SUBDIRS += src_gui src_platformsupport src_platformheaders
SUBDIRS += src_gui src_platformsupport
qtConfig(opengl) {
SUBDIRS += src_opengl
src_plugins.depends += src_opengl
src_platformsupport.depends += src_opengl
}
src_plugins.depends += src_gui src_platformsupport src_platformheaders
src_plugins.depends += src_gui src_platformsupport
src_testlib.depends += src_gui # if QtGui is enabled, QtTest requires QtGui's headers
qtConfig(widgets) {
SUBDIRS += src_tools_uic src_widgets

View File

@ -57,7 +57,6 @@ qt_add_module(Widgets
LIBRARIES
Qt::CorePrivate
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
PUBLIC_LIBRARIES
Qt::Core
Qt::Gui

View File

@ -57,7 +57,6 @@ qt_add_module(Widgets
LIBRARIES
Qt::CorePrivate
Qt::GuiPrivate
Qt::PlatformHeadersPrivate
PUBLIC_LIBRARIES
Qt::Core
Qt::Gui

View File

@ -30,7 +30,7 @@ qhp.QtWidgets.subprojects.classes.sortPages = true
tagfile = ../../../doc/qtwidgets/qtwidgets.tags
depends += qtcore qtgui qtdoc qtsql qtdesigner qtquick qmake qtcmake qtplatformheaders qtsvg qtlinguist
depends += qtcore qtgui qtdoc qtsql qtdesigner qtquick qmake qtcmake qtsvg qtlinguist
headerdirs += ..

View File

@ -3,8 +3,6 @@
# Only used on platforms with CONFIG += precompile_header
PRECOMPILED_HEADER = kernel/qt_widgets_pch.h
QT_PRIVATE += platformheaders-private
KERNEL_P= kernel
HEADERS += \
kernel/qtwidgetsglobal.h \

View File

@ -15,7 +15,6 @@
"QtInputSupport" => "$basedir/src/platformsupport/input",
"QtFbSupport" => "$basedir/src/platformsupport/fbconvenience",
"QtKmsSupport" => "$basedir/src/platformsupport/kmsconvenience",
"QtPlatformHeaders" => "$basedir/src/platformheaders",
"QtZlib" => "!>$basedir/src/corelib;$basedir/src/3rdparty/zlib",
"QtEglFSDeviceIntegration" => "$basedir/src/plugins/platforms/eglfs",
"QtMockPlugins1" => "$basedir/tests/auto/cmake/mockplugins/mockplugins1",
@ -66,7 +65,7 @@
}
);
@qpa_headers = ( qr/^(?!qplatformheaderhelper)qplatform/, qr/^qwindowsystem/ );
@qpa_headers = ( qr/^qplatform/, qr/^qwindowsystem/ );
my @internal_zlib_headers = ( "crc32.h", "deflate.h", "gzguts.h", "inffast.h", "inffixed.h", "inflate.h", "inftrees.h", "trees.h", "zutil.h" );
my @zlib_headers = ( "zconf.h", "zlib.h" );
@ignore_headers = ( @internal_zlib_headers );

View File

@ -9,7 +9,7 @@ qt_add_manual_test(defaultUpMenuBar
SOURCES
main.cpp
PUBLIC_LIBRARIES
Qt::Gui
Qt::GuiPrivate
Qt::Widgets
)

View File

@ -1,4 +1,4 @@
QT += widgets
QT += widgets gui-private
TEMPLATE = app
TARGET = defaultUpMenuBar
SOURCES += main.cpp

View File

@ -54,7 +54,8 @@
// secondary is above it).
#include <QtWidgets>
#include <QtPlatformHeaders/QWindowsWindowFunctions>
#include <QtGui/qpa/qplatformwindow.h>
#include <QtGui/qpa/qplatformwindow_p.h>
class MainWindow : public QMainWindow
{
@ -116,7 +117,10 @@ int main(int argc, char **argv)
for (QScreen *screen : QApplication::screens()) {
MainWindow *mainWindow = new MainWindow;
mainWindow->setGeometry(screen->geometry());
QWindowsWindowFunctions::setHasBorderInFullScreen(mainWindow->windowHandle(), true);
mainWindow->winId();
using namespace QPlatformInterface::Private;
if (auto *windowsWindow = dynamic_cast<QWindowsWindow *>(mainWindow->windowHandle()->handle()))
windowsWindow->setHasBorderInFullScreen(true);
mainWindow->showMaximized();
}
int ret = a.exec();

View File

@ -168,9 +168,6 @@ _qt_library_map = [
"gsttools", "Qt6", "Qt::MultimediaGstTools", extra=["COMPONENTS", "MultimediaGstTools"]
),
LibraryMapping("gui", "Qt6", "Qt::Gui", extra=["COMPONENTS", "Gui"]),
LibraryMapping(
"platformheaders", "Qt6", "Qt::PlatformHeaders", extra=["COMPONENTS", "PlatformHeaders"]
),
LibraryMapping("help", "Qt6", "Qt::Help", extra=["COMPONENTS", "Help"]),
LibraryMapping(
"hunspellinputmethod",