glBegin 函数

glBeginglend 函数分隔基元或一组类似基元的顶点。

语法

void WINAPI glBegin(
   GLenum mode
);

参数

mode

将从 glBegin 和后续 格伦之间呈现的顶点创建的基元或基元。 以下是接受的符号常量及其含义:

含义
GL_POINTS
将每个顶点视为单个点。 顶点 n 定义点 n绘制 N 个点。
GL_LINES
将每对顶点视为独立的线段。 顶点 2n - 12n 定义第 n 行。 绘制 N/2 条线。
GL_LINE_STRIP
绘制从第一个顶点到最后一个顶点的连接线段组。 顶点 nn+1 定义第 n 行。 N - 绘制 1 条线。
GL_LINE_LOOP
绘制一组连接的线段,从第一个顶点到最后一个顶点,然后回到第一个顶点。 顶点 nn + 1 定义第 n 行。 但是,最后一行由顶点 N1 定义。 绘制 N 条线。
GL_TRIANGLES
将顶点的每个三元组视为一个独立的三角形。 顶点 3n - 23n - 13n 定义三角形 n绘制 N/3 个三角形。
GL_TRIANGLE_STRIP
绘制一组连接的三角形。 为前两个顶点之后显示的每个顶点定义一个三角形。 对于奇数 n,顶点 nn + 1n + 2 定义三角形 n。 对于偶数 n,顶点 n + 1nn + 2 定义三角形 nN - 绘制 2 个三角形。
GL_TRIANGLE_FAN
绘制一组连接的三角形。 为前两个顶点之后显示的每个顶点定义一个三角形。 顶点 1n + 1n + 2 定义三角形 nN - 绘制 2 个三角形。
GL_QUADS
将四个顶点的每个组视为独立的四边形。 顶点 4n - 34n - 24n - 14n 定义四边形 n绘制 N/4 个四边形。
GL_QUAD_STRIP
绘制一组连接的四边形。 为第一对之后呈现的每一对顶点定义一个四边形。 顶点 2n - 12n2n + 22n + 1 定义四边形 nN/2 - 绘制 1 个四边形。 请注意,使用顶点根据条带数据构造四边形的顺序不同于用于独立数据的顺序。
GL_POLYGON
绘制单个凸多边形。 顶点 1N 定义此多边形。

返回值

此函数不返回值。

错误代码

glGetError 函数可以检索以下错误代码。

名称 含义
GL_INVALID_ENUM
mode 设置为未接受的值。
GL_INVALID_OPERATION
glBegin 和相应的 glend 之间调用了 glVertex、glColorglIndexglNormalglTexCoordglEvalCoordglEvalPointglMaterialglEdgeFlagglCallListglCallLists 以外的函数。 函数 glend 是在调用相应的 glBegin 之前调用的,或者在 glBeginglend 序列中调用 glBegin/。

备注

glBeginglend 函数分隔定义基元或类似基元组的顶点。 glBegin 函数接受一个参数,该参数指定顶点构成的十个基元中的哪一个。 将 n 作为从 1 开始的整数计数,将 N 作为指定的顶点总数,解释如下:

  • glBeginglend 之间只能使用一部分 OpenGL 函数。 可以使用的函数包括:

    glVertex

    glColor

    glIndex

    glNormal

    glTexCoord

    glEvalCoord

    glEvalPoint

    glMaterial

    glEdgeFlag

    还可以使用 glCallListglCallLists 执行仅包含上述函数的显示列表。 如果在 glBeginglend 之间调用了任何其他 OpenGL 函数,则会设置错误标志并忽略该函数。

  • 无论在 glBegin 中为 mode 选择的值是什么,都可以在 glBeginglend 之间定义顶点数没有限制。 不绘制未完全指定的线条、三角形、四边形和多边形。 如果提供的顶点太少而无法指定单个基元,或者指定了错误的顶点倍数,则会导致不完整的规范。 忽略不完整的基元;绘制完整的基元。

  • 每个基元的顶点的最小规范为:

    顶点的最小数目 基元的类型
    1 point
    2 line
    3 三角形
    4 四边形
    3 polygon
  • 需要特定顶点倍数的模式GL_LINES (2) 、GL_TRIANGLES (3) 、GL_QUADS (4) 和GL_QUAD_STRIP (2) 。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Gl.h

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glCallList

glCallLists

glColor

glEdgeFlag

glEnd

glEvalCoord

glEvalPoint

glIndex

glMaterial

glNormal

glTexCoord

glVertex