Поделиться через


Функция glDrawElements

Функция glDrawElements отрисовывает примитивы из данных массива.

Синтаксис

void WINAPI glDrawElements(
         GLenum  mode,
         GLsizei count,
         GLenum  type,
   const GLvoid  *indices
);

Параметры

mode

Тип примитивов для отрисовки. Он может принимать одно из следующих символьных значений: GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS и GL_POLYGON.

count

Количество элементов для отрисовки.

type

Тип значений в индексах. Должен быть одним из GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT или GL_UNSIGNED_INT.

indices

Указатель на расположение, в котором хранятся индексы.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_INVALID_ENUM
Mode не является допустимым значением.
GL_INVALID_VALUE
count было отрицательным значением.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Функция glDrawElements позволяет указать несколько геометрических примитивов с очень небольшим количеством вызовов функций. Вместо вызова функции OpenGL для передачи каждой отдельной вершины, нормы или цвета можно заранее указать отдельные массивы вершин, норм и цветов и использовать их для определения последовательности примитивов (все одного типа) с одним вызовом glDrawElements.

При вызове функции glDrawElementsона использует количество последовательных элементов из индексов для создания последовательности геометрических примитивов. Параметр mode указывает, какой тип примитивов создается и как элементы массива используются для создания этих примитивов. Если GL_VERTEX_ARRAY не включен, геометрические примитивы не создаются.

Атрибуты вершин, измененные glDrawElements , имеют неопределенное значение после возврата glDrawElements . Например, если включена GL_COLOR_ARRAY, значение текущего цвета не определено после выполнения glDrawElements . Атрибуты, которые не изменяются, остаются неизменными.

Функцию glDrawElements можно включить в отображаемые списки. При включении glDrawElements в отображаемый список также вводятся необходимые данные массива (определяемые указателями массива и включенными элементами). Так как указатели и включения массива являются переменными состояния на стороне клиента, их значения влияют на отображение списков при создании списков, а не на их выполнение.

Примечание

Функция glDrawElements доступна только в OpenGL версии 1.1 или более поздней.

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glArrayElement

glBegin

glColorPointer

glDrawArrays

glEdgeFlagPointer

glEnd

glGetPointerv

glIndexPointer

glNormalPointer

glTexCoordPointer

glVertexPointer