QtでOpenGL:バージョンの確認
QGLForamtを使う
#include <QtGui/QApplication>
#include <QtGui/QMessageBox>
#include <QtOpenGL/QGLFormat>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
if ((QGLFormat::openGLVersionFlags() & QGLFormat::OpenGL_Version_1_5) == 0) {
QMessageBox::critical(0, "OpenGL features missing",
"OpenGL version 1.5 or higher is required.\n"
"The program will now exit.");
return -1;
}
// nothing.
return a.exec();
}
glGetStringで確認
OpenGLの機能であるglGetStringを使います。
#include <QDebug>
void GLWidget::initializeGL()
{
qDebug() << "OpenGL Ver. : " << (const char*)(glGetString(GL_VERSION));
qDebug() << "Shader Ver. : " << (const char*)(glGetString(GL_SHADING_LANGUAGE_VERSION));
qDebug() << "Vendor : " << (const char*)(glGetString(GL_VENDOR));
qDebug() << "GPU : " << (const char*)(glGetString(GL_RENDERER));
}
例)
OpenGL Ver. : 3.3.0
Shader Ver. : 3.30 NVIDIA via Cg compiler
Vendor : NVIDIA Corporation
GPU : GeForce GTX 260/PCI/SSE2
OpenGL Ver. : 3.3.0
Shader Ver. : 3.30 NVIDIA via Cg compiler
Vendor : NVIDIA Corporation
GPU : GeForce GTX 260/PCI/SSE2
initializeGLで記述しているのは、コンストラクタで使おうとすると何も返ってこないからです。