我看过一些示例代码(尤其是在iOS GL项目中),其中当前的GL纹理名称被缓存,并在调用glBindTexture之前进行比较。目的是避免不必要的glBindTexture调用。
例如:
例如:
if (textureName != cachedTextureName) {
glBindTexture(GL_TEXTURE_2D, textureName);
cachedTextureName = textureName;
}
这个方法要求所有调用glBindTexture的都需要类似处理,最好通过一个包装器处理。但第三方代码的加入使得这变得棘手,同时也是另一件需要记住的事情。
问:这是一个有用的优化吗?还是OpenGL实现已经足够聪明,可以忽略纹理名称未更改的glBlindTexture调用呢?
谢谢。