位图和图像

来源:互联网 发布:变年轻的软件 编辑:程序博客网 时间:2024/05/16 14:43
位图是由0和1组成的矩形数据,位图最常用的是绘制字符。
通过显示列表可以实现字体定义。
1. 当前光栅位置
glRasterPos{234}{sifd}(TYPE x, TYPE y, TYPE w);
glRasterPos{234}{sifd}v(TYPE* coords);
设置当前光栅位置,标志了位图绘制的起点(位图从下往上绘制,该点为左下点),该点经过模型视点矩阵变换后如果被裁剪,则位图不可见。
glWindowPos*();
直接用窗口坐标制定光栅位置,不需要进行模型视点矩阵变化。
glGetFloatV(GL_CURRENT_RASTER_POSITION)查询当前光栅位置。
2. 绘制位图
glBitmap(GLsizei width, GLsizei height, GLfloat xbo, GLfloat ybo, GLfloat xbi, GLfloat ybi, const GLubyte* bitmap);
绘制位图。xbo, ybo定义了位图的原点,以光栅位置为参考。
xbi, ybi指定了位图被光栅化之后光栅位置的x和y的增加值。
3. 选择位图颜色
glColor*();glIndex*();同时设置了GL_CURRENT_RASTER_COLOR、 GL_CURRENT_RASTER_INDEX
光栅颜色状态变量是根据glRasterPos*()时的颜色确定的
颜色可以用GL_CURRENT_RASTER_COLOR和GL_CURRENT_RASTER_INDEX查询glGetFloatv()和glGetIntegerv()
4. 用显示列表实现字体
glCallLists(GLsizei n, GLenum type, const GLvoid* lists);//绘制一系列显示列表
glListBase();设置显示列表起点
glGenLists(GLsizei range);生成显示列表
type可以是:
GL_BYTE  GL_UNSIGNED_BYTE
GL_SHORT  GL_UNSIGNED_SHORT
GL_INT   GL_UNSIGNED_INT
GL_FLOAT  GL_2_BYTES
GL_3_BYTES  GL_4_BYTES
可以通过设置字符大小,显示不同的字符集。
 
glReadPixels();冲缓冲区读取一个矩形像素数据,并保存在处理器内存中
glDrawPixels();把处理器内存中的一个矩形像素数据写入到帧缓冲区中由glRasterPos*()制定的位置。
glCopyPixels();把一个矩形像素数据从帧缓冲区的一个部分复制到另一个部分。
原创粉丝点击