This commit is contained in:
Felix Kauselmann
2015-05-08 21:06:03 +02:00
parent c02cbc8992
commit 81ed438239
6 changed files with 86 additions and 10 deletions

44
common/opengl_checker.cpp Normal file
View File

@ -0,0 +1,44 @@
#include "opengl_checker.h"
#include "QsLog.h"
OpenGLChecker::OpenGLChecker()
{
}
bool OpenGLChecker::hasCompatibleOpenGLVersion()
{
QOpenGLContext * openGLContext = new QOpenGLContext();
openGLContext->create();
if(!openGLContext->isValid())
return false;
QSurfaceFormat format = openGLContext->format();
int majorVersion = format.majorVersion();
int minorVersion = format.minorVersion();
delete openGLContext;
QLOG_INFO() << QString("OpenGL version %1.%2").arg(majorVersion).arg(minorVersion);
if(format.renderableType() != QSurfaceFormat::OpenGL) //Desktop OpenGL
return false;
#ifdef Q_OS_WIN //TODO check Qt version, and set this values depending on the use of QOpenGLWidget or QGLWidget
int majorTargetVersion = 1;
int minorTargetVersion = 5;
#else
int majorTargetVersion = 2;
int minorTargetVersion = 1;
#endif
if(majorVersion < majorTargetVersion)
return false;
if(majorVersion == majorTargetVersion && minorVersion < minorTargetVersion)
return false;
return true;
}

15
common/opengl_checker.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef OPENGL_CHECKER_H
#define OPENGL_CHECKER_H
#include <QOpenGLContext>
class OpenGLChecker
{
public:
OpenGLChecker();
bool hasCompatibleOpenGLVersion();
private:
//??
};
#endif // OPENGL_CHECKER_H