GLES2 glTexStorage不适用于Nexus 7 2013?

时间:2014-05-18 06:08:56

标签: android opengl-es textures opengl-es-2.0 opengl-es-3.0

我如何使用glTexStorage

#define GL_GLEXT_PROTOTYPES
#include <gl2ext.h>

所以glTexStorage2DEXT是直接符号。 但是我还检查了eglGetProcAddress(),它们是相同的地址。

代码段:

glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);

然后这会在GL_INVALID_OPERATION上提供glTexSubImage2D

glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_RGBA8_OES, w, h);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, data);

但这不会给出错误:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, data);

我使用glTexStorage2DEXT时出了什么问题?

1 个答案:

答案 0 :(得分:0)

停止使用扩展程序。它是GL ES 3的标准部分(nexus 7支持),所以只需使用:

glTexStorage2D

(即没有EXT!)