glBitmap函数声明为void WINAPI glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)。该定义包含7个参数,其中前两个参数分别表示位图像素宽度和高度,xorig与yorig定义位图原点相对于左下角的偏移量[2] 。
宽度和高度参数必须为非负值,否则会产生GL_INVALID_VALUE错误。xmove和ymove参数控制绘制后光栅位置的偏移量,该偏移量会累积到后续绘制操作中。bitmap参数指向二进制图像数据,每个位对应一个像素点的激活状态[2] 。
位图绘制时采用颜色索引模式,以当前光栅颜色为绘制基准。该操作不修改深度缓冲区和纹理坐标,生成的片段将经过完整的图形管线处理,包括雾效和纹理映射等后期效果。绘制过程中若当前光栅位置无效,系统将自动忽略本次函数调用[2] 。
调用glGetError函数可捕获两类错误:当width或height参数为负值时返回GL_INVALID_VALUE;在glBegin/glEnd代码块内调用时返回GL_INVALID_OPERATION[2] 。有效光栅位置需通过glRasterPos系列函数预先设定。
函数在Windows平台的最低支持版本为Windows 2000 Professional,动态链接库为Opengl32.dll。相关状态信息可通过glGet函数查询,包括当前光栅位置、颜色索引及纹理坐标等参数。该函数与glPixelStore设定的像素存储模式兼容,但不响应glPixelTransfer的像素传输设置[2] 。