使用的函数
GLenum glGetError() 此函数可以在其他函数调用之后使用,用于检查之前的调用是否发生了问题,如果有问题则返回最近一次执行的OpenGL函数问题错误码
代码
我们将错误检测定义成了一个库
头文件
#pragma once
#ifdef DEBUG
#define GL_CALL(func) func;checkError();
#else
#define GL_CALL(func) func;
#endif
void checkError();
cpp代码
#include <string>
#include <iostream>
#include <assert.h>
#include <glad/glad.h>
#include "checkError.h"
void checkError()
{
GLenum errorCode = glGetError();
std::string error = "";
if (errorCode != GL_NO_ERROR)
{
switch (errorCode)
{
case GL_INVALID_ENUM:
error = "GL_INVALID_ENUM";
break;
case GL_INVALID_VALUE:
error = "GL_INVALID_VALUE";
break;
case GL_INVALID_OPERATION:
error = "GL_INVALID_OPERATION";
break;
case GL_OUT_OF_MEMORY:
error = "GL_OUT_OF_MEMORY";
break;
default:
error = "UNKNOWN";
break;
}
std::cout << error << std::endl;
// 如果错误,程序停止
assert(false);
}
}