glBindTexture - зв'язує назву текстури з текстурною ціллю.
C специфікація
void glBindTexture (GLenum target, GLuint texture) ;
Параметри
target - вказує до яка текстура зв'язується. Повинно бути одне з наступних GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D або GL_TEXTURE_CUBE_MAP.
texture - вказує назву текстури.
Опис
glBindTexture дозволяє вам створювати або використовувати названі текстури. Викликаючи glBindTexture з параметром target встановленим у GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D або GL_TEXTYRE_CUBE_MAP i texture встановлену у назву нової текстури, з'єднює ім'я текстури з ціллю. Коли текстура зв'язана з ціллю, попереднє зв'язування для цієї цілі автоматично знищується.
Назва текстури являє собою беззнакове ціле. Нульове значення зарезервовано для представлення текстури за умовчанням для кожної текстурної цілі. Назви текстур і відповідний вміст текстур являються локальними до розподіленого списку відображення (перегляньте glXCreateContext) поточного контексту рендерингу OpenGL; два контексти рендерингу розділяють імена тільки, якщо вони також розділяють списки відображення.
Ви можете використовувати glGenTexture для генерації множини нових текстурних імен.
Коли текстура вперше зв'язується, припускається спеціальна ціль: Текстура з'єднана до GL_TEXTURE_1D стає одно вимірною текстурою, текстура вперше з'єднана до GL_TEXTURE_2D стає двовимірною текстурою, текстура вперше з'єднана до GL_TEXTYRE_3D стає тривимірною текстурою і текстура вперше з'єднана з GL_TEXTURE_CUBE_MAP стає кубічною текстурою. Стан одновимірних текстур одразу ж після першого асоціювання являється еквівалентною до стану GL_TEXTURE_1D під час ініціалізації OpenGL, і так само для дво- або трьох-вимірні текстури і кубічні текстури.
Поки текстура залишається зв'язаною, операції OpenGL на цілях до яких вони зв'язані, мають ефект над зв'язаною текстурою, і запити цілі до яких вона зв'язана повертають стан з з'язаної текстури. Якщо активне накладання текстур на цілях до яких зв'язані текстури, використовується зв'язана текстура. Як результат, текстурна ціль стає псевдонімом для текстур, які зв'язані до них, і ім'я 0 текстури відповідає до текстури за умовчанням, яка буде зв'язаною з ними під час ініціалізації.
Зв'язування текстур створених за допомогою glBindTexture остається активною поки не відбувається зв'язування з іншою текстурою до даної цілі, або поки зв'язана текстура не буде видаленою за допомогою glDeleteTextures.
Після створення, названа текстура може бути зв'язаною знову до того ж самої оригінальної цілі так часто, як потрібно. Зазвичай набагато швидше використовувати glBindTexture для зв'язування існуючої названої текстури до однієї з текстурних цілей, ніж перевантажувати зображення текстури використовуючи glTexImage1D, glTexImage2D або glTexImage3D. Для додаткового контролю над продуктивністю, використовуйте glPrioritizeTextures.
glBindTexture включається у список відображення.
Примітка
glBindTexture доступна тільки від OpenGL версії 1.1 або вище.
GL_TEXTURE_CUBE_MAP доступна тільки від OpenGL версії 1.3 або вище.
Помилки
GL_INVALID_ENUM генерується, якщо target не містить доступне значенням.
GL_INVALID_OPERATION генерується, якщо параметр texture був попередньо створений з ціллю, яка не співпадає з цією target.
GL_INVALID_OPERATION генерується якщо glBindTexture виконується між викликами glBegin i glEnd.
Пов'язані параметри
glGet з аргументом GL_TEXTURE_BINDING_1D
glGet з аргументом GL_TEXTURE_BINDING_2D
glGet з аргументом GL_TEXTURE_BINDING_3D
Перегляньте також
glAreTexturesResident, glDeleteTextures, glGenTextures, glGet, glGetTexParameter, glIsTexture, glPrioritizeTextures, glTexImage1D, glTexImage2D, glTexParameter, Вступ до OpenGL (Open Graphics Library) - відкрита графічна бібліотека
Оригінал: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glBindTexture.xml