glTexCoordPointer - вказує масив координат текстури.

C специфікація

void glTexCoordPointer (GLint size,
                        GLenum type,
                        GLsizei stride,
                        const GLvoid * pointer) ;

Параметри

size - вказує кількість координат на елемент масиву. Повинен містити значення 1, 2, 3, або 4. type - вказує тип даних на кожну текстурну координату. Приймаються наступні символічні константи GL_SHORT, GL_INT, GL_FLOAT або GL_DOUBLE. Значення за умовчанням GL_FLOAT. stride - вказує зміщення даних між сусідніми наборами текстурних координат. Якщо параметр stride містить значення 0, масив елементів вважається компактно упакованим (один за одним). Значення за умовчанням 0. pointer - передає вказівник на першу координату першого набору текстурної координати у масиві. Значення за умовчанням 0.

Опис

Функція glTexCoordPointer вказує розміщення і формат даних масиву текстурних координат для використання під час рендерингу. Параметр size вказує кількість координат на набір текстурної координати, і повинен містити значення 1, 2, 3 або 4. Параметр type вказує тип даних кожної текстурної координати, і параметр stride визначає байтове зміщення від одного набору текстурної координати до наступного, дозволяючи упаковування вертексів і атрибутів у один або декілька масивів. (Одно-масивне зберігання даних може бути більш ефективним у деяких реалізаціях; перегляньте glInterleavedArrays).

Якщо не нульовий іменований об'єктний буфер прив'язується до цілі GL_ARRAY_BUFFER (перегляньте glBindBuffer), поки вказуються текстурні координати, параметр pointer трактується у якості зміщення байтів у пам'яті об'єктного буфера. Також, прив'язка об'єктного буфера (GL_ARRAY_BUFFER_BINDING) зберігається у якості вертексного масиву текстурних координат стану клієнтської сторони (GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING). Коли вказаний масив текстурних координат, параметр size, type, stride i pointer зберігаються у якості стану клієнтської сторони, у добавок до поточної прив'язки вертексного масиву об'єктного буфера. Для увімкнення або вимкнення масиву текстурної координати, викликайте glEnableClientState i glDisableClientState з аргументами GL_TEXTURE_COORD_ARRAY. Якщо увімкнені, текстурні координати можуть бути використаними під час виклику функцій glArrayElement, glDrawArrays, glMultiDrawArrays, glDrawElements, glMultiDrawElements або glDrawRangeElements.

Нотатки

Функція glTexCoordPointer доступна тільки у версіях OpenGL 1.1 або вище. Для версій OpenGL 1.3 або вище, або коли підтримується розширення ARB_multitexture, glTexCoordPointer оновляє стан масиву текстурних координат активної текстурної одиниці, вказаної за допомогою glClientActiveTexture. Кожен масив текстурих координат за умовчанням являється вимкненим і не використовується під час виклику функцій glArrayElement, glDrawElements, glDrawRangeElements, glDrawArrays, glMultiDrawArrays або glMultiDrawElements. Виконання функції glTexCoordPointer не дозволяється між викликами glBegin і відповідної glEnd, але помилка може не генеруватися. Якщо помилка не генерується, операція не визначена. glTexCoordPointer зазвичай реалізовується на клієнтській стороні. Масив текстурних координат являється станом клієнтської сторони і отже не зберігається і не відновлюється командами glPushAttrib і glPopAttrib. Використовуйте glPushClientAttrib i glPopClientAttrib.

Помилки

GL_INVALID_VALUE генерується якщо параметр size не містить значення 1, 2, 3 або 4. GL_INVALID_ENUM генерується якщо параметр type не являється припустимим значенням. GL_INVALID_VALUE генерується якщо stride являється від'ємним числом.

Пов'язані параметри

glIsEnabled з параметром GL_TEXTURE_COORD_ARRAY glGet з параметром GL_TEXTURE_COORD_ARRAY_SIZE glGet з параметром GL_TEXTURE_COORD_ARRAY_TYPE glGet з параметром GL_TEXTURE_COORD_ARRAY_STRIDE glGet з параметром GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING glGet з параметром GL_ARRAY_BUFFER_BINDING glGetPointerv з параметром GL_TEXTURE_COORD_ARRAY_POINTER

Перегляньте також

glArrayElement, glBindBuffer, glClientActiveTexture, glColorPointer, glDisableClientState, glDrawArrays, glDrawElements, glDrawRangeElements, glEdgeFlagPointer, glEnableClientState, glFogCoordPointer, glIndexPointer, glInterleavedArrays, glMultiDrawArrays, glMultiDrawElements, glMultiTexCoord, glNormalPointer, glPopClientAttrib, glPushClientAttrib, glSecondaryColorPointer, glTexCoord, glVertexAttribPointer, glVertexPointer Оригінал: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glTexCoordPointer.xml