Я видел пример кода (особенно в проектах iOS GL), где кешируется текущее имя текстуры GL, и сравнение выполняется до вызова glBindTexture.Цель состоит в том, чтобы избежать ненужных вызовов glBindTexture.
например,
if (textureName != cachedTextureName) {
glBindTexture(GL_TEXTURE_2D, textureName);
cachedTextureName = textureName;
}
Этот подход требует, чтобы ВСЕ вызовы glBindTexture обрабатывались аналогично, предпочтительно через оболочку.Но включение стороннего кода делает эту проблему проблематичной, а также еще одной вещью, которую нужно запомнить .
Q. Является ли это полезной оптимизацией?Или реализация OpenGL достаточно умна, чтобы игнорировать вызовы glBlindTexture, где имя текстуры не изменилось?
Спасибо.