OpenGL ES glGetIntegerv 函数

OpenGL ES glGetIntegerv 函数

零基础 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 编程


一.glGetIntegerv 函数简介


/*
*描述:返回所选参数的值,注意:调用该函数之前必须设置当前上下文
*参数:
*    [in] pname:指定要返回的参数值
*    [out] data: 返回所选参数的值
*
*返回值:返回所选参数的值,注意:调用该函数之前必须设置当前上下文
*/

void glGetIntegerv( GLenum pname, GLint * data);

其中,glGetIntegerv 函数中支持的枚举类型支持参数请参考文章: 《OpenGL ES glGetIntegerv 枚举》

二.glGetIntegerv 函数使用

OpenGL ES 可以用过 API glGetIntegerv 函数设置 GL_MAX_TEXTURE_SIZE 获取,示例代码如下:

/*******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:OpenGL ES glGetIntegerv 函数
//@Time:2021/08/22 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/*******************************************************************************************/

// 超过此大小则必须先压缩再传给opengl es,否则opengl es无法渲染

glGetIntegerv(GL_MAX_TEXTURE_SIZE, &textureSize);
printf("该设备支持的纹理最大的长或宽 %d",textureSize);

经测试:在 IOS 设备一般支持的最大尺寸为 4096, 而 PC 端一般为 13684,不同设备表现不同,可通过上面代码测试获取;注意:在 OpenGL ES 获取最大纹理尺寸之前必须设置 OpenGL 上下文


三.猜你喜欢


推荐文章

发表评论