使用DSA完全替换glBindTexture

时间:2015-03-12 12:19:33

标签: c++ opengl

使用Direct Access Extension我可以用无绑定对应的example替换许多需要glBindTexture的调用:

//Without DSA:
glGenTextures(1, &tid);
glBindTexture(GL_TEXTURE_2D, tid);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixmap);

//With DSA:
glGenTextures(1, &tid);
glTextureImage2DEXT(tid, GL_TEXTURE_2D, 0, GL_RGBA8, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixmap);

我想知道 - 是否可以完全摆脱glBindTexture调用?有没有办法替换这个代码,例如,我们将活动纹理连接到统一采样器:

glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture);
glUniform1i(texture, 0);

我个人的印象是,这是不可能的,但我希望听到是否有人有不同的想法。

0 个答案:

没有答案