首页 > 代码库 > OpenGL学习(六) 离散图元

OpenGL学习(六) 离散图元

位图

    位图的显示,下面这段代码将显示一个8*8的棋盘:

    	GLubyte wb[2]={0x00,0xff};
	GLubyte check[64*8];
	for(int i=0;i<64;i++)
		for(int j=0;j<8;j++)
			check[i*8+j]=wb[(i/8+j)%2];
	
	glBitmap(64,64,0,0,220.0,220.0,check);

wKioL1QFg__Bxp0fAACqcedUSYo765.jpg

    

    void glBitmap(GLsizei width,GLsizei height,GLfloat x0,GLfloat y0,GLfloat xi,

                   GLfloat yi,GLubyte* bits)

    //依据数组bits绘制一副宽为width,高位height的位图。位图的起始位置到当前光栅位置的偏移量为x0,y0,当位图显示完毕后,当前位置则以xi和yi作为坐标增量而增加

    void glRasterPos*() 设置光栅位置

    

    注:调用该函数后,光栅颜色就被锁定,后面再调用glColor对位图绘制颜色不起作用。


绘制模式

    在绘制像素时,如果想要绘制的像素位置已经有像素存在,则可令目标像素的新值为源颜色和目标颜色按照某种规则运算的结果。运算可借助一下函数设置:

    void glLogicOp(GLenum op)

    //如果逻辑运算(GL_COLOR_LOGIC_OP)被启用,该函数可用来整合到帧缓存中的源像素和目标像素之间采用16中逻辑运算中的哪一种。参数值可以使GL_COPY(默认)、GL_OR、或GL_XOR

    必须通过如下函数来启用逻辑运算

    glEnable(GL_COLOR_LOGIC_OP)

OpenGL学习(六) 离散图元