13#include <QtGui/private/qeglconvenience_p.h>
14#include <QGuiApplication>
15#include <private/qguiapplication_p.h>
18#if QT_CONFIG(regularexpression)
20# include <QRegularExpression>
22#include <QLoggingCategory>
24#if defined(Q_OS_LINUX)
31#include <private/qfactoryloader_p.h>
32#include <private/qcore_unix_p.h>
47 qCDebug(qLcEglDevDebug) <<
"EGL device integration plugin keys:" <<
list;
55 integration = qLoadPlugin<QEglFSDeviceIntegration, QEglFSDeviceIntegrationPlugin>(loader(),
key);
57 qCDebug(qLcEglDevDebug) <<
"Using EGL device integration" <<
key;
59 qCWarning(qLcEglDevDebug) <<
"Failed to load EGL device integration" <<
key;
68#if defined(Q_OS_LINUX) || defined(Q_OS_VXWORKS)
82#if QT_CONFIG(regularexpression)
86 if (fbinfo.isSymLink())
87 match = fbIndexRx.match(fbinfo.symLinkTarget());
89 match = fbIndexRx.match(fbinfo.fileName());
91 fbIndex =
match.captured(1).toInt();
98#if defined(Q_OS_LINUX) || defined(Q_OS_VXWORKS)
104 qWarning(
"EGLFS: Failed to open %s", fbDev.constData());
105 qFatal(
"EGLFS: Can't continue without a display");
116#if defined(Q_OS_LINUX) || defined(Q_OS_VXWORKS)
126 return displayOk ? EGLNativeDisplayType(
quintptr(defaultDisplay)) : EGL_DEFAULT_DISPLAY;
131 return eglGetDisplay(nativeDisplay);
163 return QDpi(100, 100);
168 return QDpi(100, 100);
198 return EGL_WINDOW_BIT;
207 format.setRedBufferSize(8);
208 format.setGreenBufferSize(8);
209 format.setBlueBufferSize(8);
266#if defined(Q_OS_LINUX) && defined(FBIO_WAITFORVSYNC)
271 qWarning(
"Could not wait for vsync.");
321 bool filterConfig(EGLConfig
config)
const override {
329 chooser.setSurfaceFormat(
format);
330 return chooser.chooseConfig();
335#include "moc_qeglfsdeviceintegration_p.cpp"
virtual bool filterConfig(EGLConfig config) const
static QEglFSDeviceIntegration * create(const QString &name)
virtual void presentBuffer(QPlatformSurface *surface)
virtual void platformInit()
virtual void platformDestroy()
virtual QSizeF physicalScreenSize() const
virtual bool filterConfig(EGLDisplay display, EGLConfig config) const
virtual QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &inputFormat) const
virtual Qt::ScreenOrientation nativeOrientation() const
virtual QImage::Format screenFormat() const
virtual void screenInit()
virtual bool usesDefaultScreen()
virtual EGLNativeWindowType createNativeWindow(QPlatformWindow *platformWindow, const QSize &size, const QSurfaceFormat &format)
virtual void waitForVSync(QPlatformSurface *surface) const
virtual bool supportsPBuffers() const
virtual void * nativeResourceForIntegration(const QByteArray &name)
static EGLConfig chooseConfig(EGLDisplay display, const QSurfaceFormat &format)
virtual EGLNativeWindowType createNativeOffscreenWindow(const QSurfaceFormat &format)
virtual QDpi logicalDpi() const
virtual qreal refreshRate() const
virtual QFunctionPointer platformFunction(const QByteArray &function) const
virtual QEglFSWindow * createWindow(QWindow *window) const
virtual QByteArray fbDeviceName() const
virtual int framebufferIndex() const
virtual void * wlDisplay() const
virtual EGLint surfaceType() const
virtual EGLDisplay createDisplay(EGLNativeDisplayType nativeDisplay)
virtual bool supportsSurfacelessContexts() const
virtual EGLNativeDisplayType platformDisplay() const
virtual QDpi logicalBaseDpi() const
virtual QSize screenSize() const
virtual QPlatformCursor * createCursor(QPlatformScreen *screen) const
virtual void destroyNativeWindow(EGLNativeWindowType window)
virtual void screenDestroy()
virtual void * nativeResourceForScreen(const QByteArray &resource, QScreen *screen)
virtual int screenDepth() const
virtual Qt::ScreenOrientation orientation() const
virtual bool hasCapability(QPlatformIntegration::Capability cap) const
static QList< QScreen * > screens()
Returns a list of all the screens associated with the windowing system the application is connected t...
Format
The following image formats are available in Qt.
void append(parameter_type t)
\inmodule QtCore \reentrant
\inmodule QtCore \reentrant
The QScreen class is used to query screen properties. \inmodule QtGui.
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString fromLocal8Bit(QByteArrayView ba)
This is an overloaded member function, provided for convenience. It differs from the above function o...
static void handleScreenRemoved(QPlatformScreen *screen)
Should be called by the implementation whenever a screen is removed.
struct wl_display * display
Combined button and popup list for selecting options.
#define QByteArrayLiteral(str)
static int qt_safe_open(const char *pathname, int flags, mode_t mode=0777)
#define QEglFSDeviceIntegrationFactoryInterface_iid
typedef QByteArray(EGLAPIENTRYP PFNQGSGETDISPLAYSPROC)()
QEglFSDeviceIntegration * qt_egl_device_integration()
typedef EGLDisplay(EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum platform
QPair< qreal, qreal > QDpi
#define Q_LOGGING_CATEGORY(name,...)
#define qCWarning(category,...)
#define qCDebug(category,...)
GLenum GLsizei GLsizei GLint * values
[15]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLint GLsizei GLsizei GLenum format
Q_CORE_EXPORT QByteArray qgetenv(const char *varName)
Q_CORE_EXPORT int qEnvironmentVariableIntValue(const char *varName, bool *ok=nullptr) noexcept
static bool match(const uchar *found, uint foundLen, const char *target, uint targetLen)
static const struct @450 keyMap[]
QApplication app(argc, argv)
[0]