diff options
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index d7a6f071c6..6a56a5dc82 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -65,6 +65,7 @@ #include <QtGui/qstylehints.h> #include <QtCore/qvarlengtharray.h> #include <QtCore/qabstractanimation.h> +#include <QtCore/QLibraryInfo> #include <QtQml/qqmlincubator.h> #include <QtQuick/private/qquickpixmapcache_p.h> @@ -2303,6 +2304,36 @@ bool QQuickWindowPrivate::isRenderable() const return ((q->isExposed() && q->isVisible())) && q->geometry().isValid(); } +void QQuickWindowPrivate::contextCreationFailureMessage(const QSurfaceFormat &format, + QString *translatedMessage, + QString *untranslatedMessage, + bool isEs) +{ + const QString contextType = QLatin1String(isEs ? "EGL" : "OpenGL"); + QString formatStr; + QDebug(&formatStr) << format; +#if defined(Q_OS_WIN32) + const bool isDebug = QLibraryInfo::isDebugBuild(); + const QString eglLibName = QLatin1String(isDebug ? "libEGLd.dll" : "libEGL.dll"); + const QString glesLibName = QLatin1String(isDebug ? "libGLESv2d.dll" : "libGLESv2.dll"); + //: %1 Context type (Open GL, EGL), ANGLE %2, %3 library names + const char msg[] = QT_TRANSLATE_NOOP("QQuickWindow", + "Failed to create %1 context for format %2." + "This is most likely caused by not having the necessary graphics drivers installed.\n\n" + "Install a driver providing OpenGL 2.0 or higher, or, if this is not possible, " + "make sure the ANGLE Open GL ES 2.0 emulation libraries (%3, %4 and d3dcompiler_*.dll) " + "are available in the application executable's directory or in a location listed in PATH."); + *translatedMessage = QQuickWindow::tr(msg).arg(contextType, formatStr, eglLibName, glesLibName); + *untranslatedMessage = QString::fromLatin1(msg).arg(contextType, formatStr, eglLibName, glesLibName); +#else // Q_OS_WIN32 + //: %1 Context type (Open GL, EGL), %2 format specification + const char msg[] = QT_TRANSLATE_NOOP("QQuickWindow", + "Failed to create %1 context for format %2"); + *translatedMessage = QQuickWindow::tr(msg).arg(contextType, formatStr); + *untranslatedMessage = QString::fromLatin1(msg).arg(contextType, formatStr); +#endif // !Q_OS_WIN32 +} + /*! Propagates an event \a e to a QQuickItem \a item on the window. |