使用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);
我个人的印象是,这是不可能的,但我希望听到是否有人有不同的想法。