glBegin, glEnd

Прототип:

void glBegin(GLenum mode);

Параметры:

mode : режим вывода примитива, либо примитивов, представленных вершинами, находящимися между glBegin/glEnd. Константы поддерживаются следующие: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON.

Прототип:

void glEnd(void);

Описание:

glBegin и glEnd ограничивает группу вершин и представляет их в виде определенного примитива, либо множества примитивов. Возмем две переменные: n - номер вершины, и N общее количество вершин. GL_POINTS представляет каждую вершину n в одну точку. N примитивов отрисуется. GL_LINES представляет пару вершин 2n-1 и 2n как одну линию. N/2 примитивов отрисуется. GL_LINE_STRIP представляет пару вершин n и n+1 как одну линию. N-1 примитивов отрисуется. GL_LINE_LOOP представляет пару вершин n и n+1 как одну линию. Но в этом случае рисуется еще одна линия, соединяющая первую вершину с последней, таким образом общее количество примитивов, выведенных на экран будет N. GL_TRIANGLES представляет тройку вершин 3n-2, 3n-1 и 3n как одиночный треугольник. N/3 примитивов отрисуется. GL_TRIANGLE_STRIP представляет тройку вершин n, n+1 и n+2 как одиночный треугольник. N-2 примитивов отрисуется. GL_TRIANGLE_FAN представляет тройку вершин 1, n+1 и n+2 как одиночный треугольник. N-2 примитивов отрисуется. GL_QUADS каждая четверка вершин 4n-3, 4n-2, 4n-1 и 4n образует четырехугольник. N/4 примитивов отрисуется. GL_QUAD_STRIP каждая четверка вершин 2n-1, 2n, 2n+2 и 2n+1 образует четырехугольник. N/2-1 примитивов отрисуется. GL_POLYGON все вершины от 1 до N образуют выпуклый многоугольник. Между glBegin/glEnd могут быть вызваны следующие функции: glVertex, glColor, glIndex, glNormal, glTexCoord, glEvalCoord, glEvalPoint, glMaterial, glEdgeFlag, также допустимы вызовы glCallList, glCallLists, но только содержащие одну или несколько из вышеперечисленных команд. Любая другая функция OGL, вызванная между glBegin/glEnd будет проигнорированна и флаг ошибки установлен. Независимо, от значения mode ограничения на количество вершин, находящихся между glBegin/glEnd нет. Незавершенные линии, треугольники, четырехугольники и многоугольники не отрисовываются. Минимальное количество вершин необходимых для отрисовки линий 2, треугольников 3, четырехугольнков 4, многоугольников 3.

Ошибки:

GL_INVALID_ENUM возникает когда mode имеет недопустимое значение. GL_INVALID_OPERATION возникает при вызове glBegin между парой glBegin/glEnd, либо вызове glEnd до вызова glBegin. GL_INVALID_OPERATION возникает при вызове отличной от вышеперечисленных функции между glBegin/glEnd.
Перевод выполнил faceH0r 8.07.2005
Используются технологии uCoz