glRasterPos4iv 函数

指定像素操作的光栅位置。

语法

void WINAPI glRasterPos4iv(
   const GLint *v
);

参数

V

指向四个元素数组的指针,指定当前光栅位置的 x、y、z 和 w 坐标。

返回值

此函数不返回值。

备注

OpenGL 在窗口坐标中维护三维位置。 此位置称为光栅位置,以子像素精度进行维护。 它用于定位像素和位图写入操作。 请参阅 glBitmapglDrawPixelsglCopyPixels

当前光栅位置由三个窗口坐标组成, (x、y、z) 、剪辑坐标 w 值、眼坐标距离、有效位以及关联的颜色数据和纹理坐标。 w 坐标是剪辑坐标,因为 w 不投影到窗口坐标。 glRasterPos4 函数指定对象坐标 x、y、zw 显式。 glRasterPos3 函数显式指定对象坐标 x、yz ,而 w 隐式设置为 1。 glRasterPos2 函数使用 xy 的参数值,同时隐式将 zw 设置为零和 1。

glRasterPos 呈现的对象坐标与 glVertex 命令的对象坐标相同。 它们由当前模型视图和投影矩阵转换,并传递到剪辑阶段。 如果未剔除顶点,则会投影并缩放到窗口坐标,这将成为新的当前光栅位置,并设置GL_CURRENT_RASTER_POSITION_VALID标志。 如果顶点被剔除,则清除有效位,并且当前光栅位置以及关联的颜色和纹理坐标未定义。

当前光栅位置还包括一些关联的颜色数据和纹理坐标。 如果已启用照明,则在 RGBA 模式下或颜色索引模式下的GL_CURRENT_RASTER_INDEX GL_CURRENT_RASTER_COLOR设置为照明计算产生的颜色, (查看 glLightglLightModel 和 glShadeModel) 。 如果已禁用照明,则 RGBA 模式下的当前颜色 (、状态变量GL_CURRENT_COLOR) 或颜色索引 (,则状态变量GL_CURRENT_INDEX) 用于更新当前光栅颜色。

同样,根据纹理矩阵和纹理生成函数 (glTexGen) ,GL_CURRENT_RASTER_TEXTURE_COORDS更新为GL_CURRENT_TEXTURE_COORDS函数。 最后,从眼睛坐标系的原点到顶点的距离(仅由 modelview 矩阵转换)替换GL_CURRENT_RASTER_DISTANCE。

最初,当前光栅位置 (0,0,0,1) ,当前光栅距离为 0,有效位设置,关联的 RGBA 颜色 (1,1,1,1) ,关联的颜色索引为 1,并且关联的纹理坐标 (0、0、0、1) 。 在 RGBA 模式下,GL_CURRENT_RASTER_INDEX始终为 1;在颜色索引模式下,当前光栅 RGBA 颜色始终保持其初始值。

注意

光栅位置通过 glRasterPosglBitmap 进行修改。

注意

当光栅位置坐标无效时,将忽略基于光栅位置的绘图命令, (也就是说,它们不会导致 OpenGL 状态) 更改。

以下函数检索与 glRasterPos 相关的信息:

带参数的 glGet GL_CURRENT_RASTER_POSITION
带参数GL_CURRENT_RASTER_POSITION_VALID的 glGet
带参数的 glGet GL_CURRENT_RASTER_DISTANCE
带参数的 glGet GL_CURRENT_RASTER_COLOR
带参数GL_CURRENT_RASTER_INDEX的 glGet
带参数的 glGet GL_CURRENT_RASTER_TEXTURE_COORDS

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glBitmap

glCopyPixels

glDrawPixels

glEnd

glLight

glLightModel

glShadeModel

glTexCoord

glTexGen

glVertex