00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #pragma once
00025 #include <QMessageBox>
00026 class checkGLError
00027 {
00028 public:
00029 static QString makeString(const char* m)
00030 {
00031 QString message(m);
00032
00033 switch(glGetError()) {
00034 case GL_NO_ERROR: return QString();
00035
00036 case GL_INVALID_ENUM: message+=(": invalid enum"); break;
00037 case GL_INVALID_VALUE: message+=(": invalid value"); break;
00038 case GL_INVALID_OPERATION: message+=(": invalid operation"); break;
00039 case GL_STACK_OVERFLOW: message+=(": stack overflow"); break;
00040 case GL_STACK_UNDERFLOW: message+=(": stack underflow"); break;
00041 case GL_OUT_OF_MEMORY: message+=(": out of memory"); break;
00042 }
00043 return message;
00044 }
00045
00046 static void qDebug(const char* m) {
00047 QString message=makeString(m);
00048 if(message.isEmpty()) return;
00049 ::qDebug("%s",qPrintable(message));
00050 }
00051
00052 static void QMessageBox(const char* m, const char* title) {
00053 QString message=makeString(m);
00054 QMessageBox::warning(0, title,message);
00055 }
00056 static void QMessageBox(const char* m) {QMessageBox(m,"GL error");};
00057 };