1

我是如何使用的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_OPERATIONglTexSubImage2D

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

4

1 回答 1

0

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

glTexStorage2D

(即没有EXT!)

于 2014-05-18T06:18:19.473 回答