glNormalPointer 函数
glNormalPointer 函数定义法线数组。
语法
void WINAPI glNormalPointer(
GLenum type,
GLsizei stride,
const GLvoid *pointer
);
参数
-
type
-
使用以下符号常量数组中每个坐标的数据类型:GL_BYTE、GL_SHORT、GL_INT、GL_FLOAT和GL_DOUBLE。
-
大步
-
连续法线之间的字节偏移量。 当 步幅 为零时,法线将紧密地打包在数组中。
-
pointer
-
指向数组中第一个法线的指针。
返回值
此函数不返回值。
错误代码
glGetError 函数可以检索以下错误代码。
名称 | 含义 |
---|---|
|
type 不是接受的值。 |
|
步幅 或 计数 为负数。 |
备注
glNormalPointer 函数指定呈现时要使用的法线数组的位置和数据。 type 参数指定每个法线坐标的数据类型。 步幅参数确定从一个法线到下一个法线的字节偏移量,从而允许将顶点和属性打包到单个数组中,或将顶点和属性打包到单独的数组中。 在某些实现中,将顶点和属性存储在单个数组中比使用单独的数组更高效;有关详细信息 ,请参阅 glInterleavedArrays 。
使用 glEnableClientState 指定GL_NORMAL_ARRAY常量时,将启用普通数组。 启用后, glDrawArrays、 glDrawElements 和 glArrayElement 使用普通数组。 默认情况下,普通数组处于禁用状态。
不能在显示列表中包括 glNormalPointer 。
使用 glNormalPointer 指定法线数组时,该函数的所有法线数组参数的值都保存在客户端状态中。 由于常规数组参数以客户端状态保存,因此 glPushAttrib 和 glPopAttrib 不会保存或还原其值。
虽然在 glBegin 和 glEnd 对中调用 glNormalPointer 时不会生成错误,但结果未定义。
以下函数与 glNormalPointer 相关联:
带参数GL_NORMAL_ARRAY_STRIDE的 glGet
带参数GL_NORMAL_ARRAY_COUNT的 glGet
带参数GL_NORMAL_ARRAY_TYPE的 glGet
带参数GL_NORMAL_ARRAY_POINTER的 glGetPointerv
带参数GL_NORMAL_ARRAY的 glIsEnabled
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|