3、网课系列 | OpenGL检查错误信息并输出

有两种方法,本次直接用最常用的一种
1、GL get error

思路:
先检查并处理别的错误,实际上并没有做错误处理,只是把错误卡到一个while(1)中,以此来说明还没运行某测试代码时,前面的代码已经出错。
如果没有错误,则跳出,执行测试代码,执行玩后,会去用assert捕捉错误,并打印,然后break程序。

所有的这些宏讲解都会放在C++ Mooc系列。

#define ASSERT(x) if(!(x)) __debugbreak();
#define GLCall(x) GLClearError();\
	x;\
	ASSERT(GLLogCall(#x,__FILE__,__LINE__))

static void GLClearError()
{
    
    
	while (glGetError() != GL_NO_ERROR);
}

static bool GLLogCall(const char *function,const char *file,int line)
{
    
    
	while (GLenum error = glGetError())
	{
    
    
		std::cout << "[opengl error](" << error << ")" << function<<
			" " << file << ";"<< line << std::endl;

		return false;
	}
	return true;
}

猜你喜欢

转载自blog.csdn.net/weixin_42557786/article/details/107612944