18#include <QtGui/private/qtguiglobal_p.h>
20#include <private/qopenglcontext_p.h>
21#include <QtCore/qset.h>
22#include <QtCore/qstring.h>
23#include <QtCore/qversionnumber.h>
32 QOpenGLExtensionMatcher();
34 bool match(
const QByteArray &extension)
const
36 return m_extensions.contains(extension);
39 QSet<QByteArray> extensions()
const {
return m_extensions; }
42 QSet<QByteArray> m_extensions;
48 struct Q_GUI_EXPORT Gpu {
49 Gpu() : vendorId(0), deviceId(0) {}
50 bool isValid()
const {
return deviceId || !glVendor.isEmpty(); }
51 bool equals(
const Gpu &other)
const {
52 return vendorId == other.vendorId && deviceId == other.deviceId && driverVersion == other.driverVersion
53 && driverDescription == other.driverDescription && glVendor == other.glVendor;
58 QVersionNumber driverVersion;
59 QByteArray driverDescription;
62 static Gpu fromDevice(uint vendorId, uint deviceId, QVersionNumber driverVersion,
const QByteArray &driverDescription) {
64 gpu.vendorId = vendorId;
65 gpu.deviceId = deviceId;
66 gpu.driverVersion = driverVersion;
67 gpu.driverDescription = driverDescription;
71 static Gpu fromGLVendor(
const QByteArray &glVendor) {
73 gpu.glVendor = glVendor;
77 static Gpu fromContext();
80 static QSet<QString> gpuFeatures(
const Gpu &gpu,
81 const QString &osName,
const QVersionNumber &kernelVersion,
const QString &osVersion,
82 const QJsonDocument &doc);
83 static QSet<QString> gpuFeatures(
const Gpu &gpu,
84 const QString &osName,
const QVersionNumber &kernelVersion,
const QString &osVersion,
85 const QString &fileName);
86 static QSet<QString> gpuFeatures(
const Gpu &gpu,
const QJsonDocument &doc);
87 static QSet<QString> gpuFeatures(
const Gpu &gpu,
const QString &fileName);
90inline bool operator==(
const QOpenGLConfig::Gpu &a,
const QOpenGLConfig::Gpu &b)
95inline bool operator!=(
const QOpenGLConfig::Gpu &a,
const QOpenGLConfig::Gpu &b)
100inline size_t qHash(
const QOpenGLConfig::Gpu &gpu, size_t seed = 0)
102 return (qHash(gpu.vendorId) + qHash(gpu.deviceId) + qHash(gpu.driverVersion)) ^ seed;
friend bool operator==(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are equal, otherwise returns false.
friend bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are different, otherwise returns false.
Combined button and popup list for selecting options.
static bool contains(const QJsonArray &haystack, const QString &needle)
static bool readGpuFeatures(const QOpenGLConfig::Gpu &gpu, const QString &osName, const QVersionNumber &kernelVersion, const QString &osRelease, const QJsonDocument &doc, QSet< QString > *result, QString *errorMessage)
static QString msgSyntaxWarning(const QJsonObject &object, const QString &what)
static bool readGpuFeatures(const QOpenGLConfig::Gpu &gpu, const QString &osName, const QVersionNumber &kernelVersion, const QString &osRelease, const QByteArray &jsonAsciiData, QSet< QString > *result, QString *errorMessage)
static bool contains(const QJsonArray &haystack, unsigned needle)
static bool readGpuFeatures(const QOpenGLConfig::Gpu &gpu, const QString &osName, const QVersionNumber &kernelVersion, const QString &osRelease, const QString &fileName, QSet< QString > *result, QString *errorMessage)
static bool matches(const QJsonObject &object, const QString &osName, const QVersionNumber &kernelVersion, const QString &osRelease, const QOpenGLConfig::Gpu &gpu)
QJsonArray::ConstIterator JsonArrayConstIt
constexpr size_t qHash(const QSize &s, size_t seed=0) noexcept