Move gl info queries to GLHelpers

This commit is contained in:
Zach Pomerantz 2016-04-11 13:28:18 -07:00
parent d719b3692e
commit 52958ffc70
3 changed files with 28 additions and 10 deletions

View file

@ -4,6 +4,7 @@
#include <QtGui/QSurfaceFormat>
#include <QtOpenGL/QGL>
#include <QOpenGLContext>
const QSurfaceFormat& getDefaultOpenGLSurfaceFormat() {
static QSurfaceFormat format;
@ -35,3 +36,21 @@ const QGLFormat& getDefaultGLFormat() {
});
return glFormat;
}
QJsonObject getGLContextData() {
if (!QOpenGLContext::currentContext()) {
return QJsonObject();
}
QString glVersion = QString((const char*)glGetString(GL_VERSION));
QString glslVersion = QString((const char*) glGetString(GL_SHADING_LANGUAGE_VERSION));
QString glVendor = QString((const char*) glGetString(GL_VENDOR));
QString glRenderer = QString((const char*)glGetString(GL_RENDERER));
return QJsonObject {
{ "version", glVersion },
{ "slVersion", glslVersion },
{ "vendor", glVendor },
{ "renderer", glRenderer },
};
}

View file

@ -10,6 +10,8 @@
#ifndef hifi_GLHelpers_h
#define hifi_GLHelpers_h
#include <QJsonObject>
// 16 bits of depth precision
#define DEFAULT_GL_DEPTH_BUFFER_BITS 16
// 8 bits of stencil buffer (typically you really only need 1 bit for functionality
@ -21,4 +23,6 @@ class QGLFormat;
const QSurfaceFormat& getDefaultOpenGLSurfaceFormat();
const QGLFormat& getDefaultGLFormat();
QJsonObject getGLContextData();
#endif

View file

@ -17,6 +17,7 @@
#include "Config.h"
#include "GLWidget.h"
#include "GLHelpers.h"
OpenGLVersionChecker::OpenGLVersionChecker(int& argc, char** argv) :
QApplication(argc, argv)
@ -44,10 +45,7 @@ QJsonObject OpenGLVersionChecker::checkVersion(bool& valid, bool& override) {
// Retrieve OpenGL version
glWidget->initializeGL();
QString glVersion = QString((const char*)glGetString(GL_VERSION));
QString glslVersion = QString((const char*) glGetString(GL_SHADING_LANGUAGE_VERSION));
QString glVendor = QString((const char*) glGetString(GL_VENDOR));
QString glRenderer = QString((const char*)glGetString(GL_RENDERER));
QJsonObject glData = getGLContextData();
delete glWidget;
// Compare against minimum
@ -55,6 +53,8 @@ QJsonObject OpenGLVersionChecker::checkVersion(bool& valid, bool& override) {
// - major_number.minor_number
// - major_number.minor_number.release_number
// Reference: https://www.opengl.org/sdk/docs/man/docbook4/xhtml/glGetString.xml
const QString version { "version" };
QString glVersion = glData[version].toString();
QStringList versionParts = glVersion.split(QRegularExpression("[\\.\\s]"));
int majorNumber = versionParts[0].toInt();
int minorNumber = versionParts[1].toInt();
@ -76,10 +76,5 @@ QJsonObject OpenGLVersionChecker::checkVersion(bool& valid, bool& override) {
override = messageBox.exec() == QMessageBox::Ignore;
}
return QJsonObject{
{ "version", glVersion },
{ "slVersion", glslVersion },
{ "vendor", glVendor },
{ "renderer", glRenderer },
};
return glData;
}