零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 转场
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 函数
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES GPUImage 使用
零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES GLSL 编程
一.glGetError 函数简介
glGetError 是 OpenGL ES 中一个非常重要的函数,用于获取当前 OpenGL ES 状态机中最近发生错误代码。它没有任何参数,只需调用即可。 其声明如下:
/*******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:OpenGL ES glGetError 函数
//@Time:2023/03/11 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/*******************************************************************************************/
/*
*描述:用于获取当前 OpenGL ES 状态机中最近发生错误代码
*
*返回值: OpenGL ES 上下文中最近一次错误的错误代码。如果没有错误,则返回 GL_NO_ERROR。
*/
GLenum glGetError(void);
该函数返回一个 GLenum
类型值,表示最近一次错误代码。如果在上一次调用 glGetError 后未发生任何错误,则该函数将返回 GL_NO_ERROR。
OpenGL ES 定义了多个可能出现的错误类型,每种类型都有对应的枚举值。例如:
- 1.
GL_INVALID_ENUM
:传入无效枚举参数 - 2.
GL_INVALID_VALUE
:传入无效数值参数 - 3.
GL_INVALID_OPERATION
:操作不合法 - 4.
GL_OUT_OF_MEMORY
:内存不足
二.glGetError 函数代码演示
/*******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:OpenGL ES glGetError 函数
//@Time:2023/03/11 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/*******************************************************************************************/
GLenum errorCode = glGetError();
if (errorCode != GL_NO_ERROR) {
printf("OpenGL ES error: %d\n", errorCode);
}
使用 glGetError 函数获取错误代码并打印出来。
三.glGetError 函数注意事项
- 1.glGetError 应该在每一次 OpenGL ES 调用之后检查,以便及时发现并处理错误。
- 2.glGetError 会清除当前的错误状态,因此在调用 glGetError 之后,如果又发生了错误,需要再次调用 glGetError 才能获取到新的错误代码。
- 3.在开发过程中建议频繁地检查 glGetError 的返回值,并尽早处理出错情况。
四.glGetError 函数完整案例代码
/*******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:OpenGL ES glGetError 函数
//@Time:2023/03/11 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/*******************************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <GLES3/gl3.h>
int main() {
// 创建 OpenGL ES 上下文
// 开启深度测试,并设置深度比较函数为 GL_LEQUAL
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
// 检查是否有错误发生
GLenum errorCode = glGetError();
if (errorCode != GL_NO_ERROR) {
printf("OpenGL ES error: %d\n", errorCode);
}
// 使用 OpenGL ES 绘制图形
// 检查是否有错误发生
errorCode = glGetError();
if (errorCode != GL_NO_ERROR) {
printf("OpenGL ES error: %d\n", errorCode);
}
// 销毁 OpenGL ES 上下文
return 0;
}
五.glGetError 函数使用案例
1.IOS Object-C 版本
IOS Object-C 灰度图调节:源码下载
2.Windows OpenGL ES 版本
Windows OpenGL ES 灰度图调节:源码下载
3.Windows OpenGL 版本
Windows OpenGL 灰度图调节:源码下载
4.QT MAC OpenGL 版本
QT MAC OpenGL 灰度图调节:源码下载
暂无评论内容