单双缓存
GLUT_SINGLE 0x0000 指定单缓存窗口
GLUT_DOUBLE 0x0002 指定双缓存窗口
原理
GLUT_SINGLE单缓冲,屏幕显示调用glFlush(),将图像在当前显示缓存中直接渲染,会有图形跳动(闪烁)问题
GLUT_DOUBLE双缓冲,屏幕显示调用glutSwapBuffers(),将图像先绘制在另外的缓存中,渲染完毕之后,将其整个缓存贴到当前的窗口,能消除闪烁,一般动画要用双缓冲.
状态控制
glEnable(GLenum pname) 如GL_FOG
glDisable()
glIsEnabled()
glGetBooleanv(GLenum pname, GLboolean *params)
glGetFloatv()
glGetDoublev()
glGetIntegerv()
点线的宽度
glPointSize(GLfloat size) 设置被渲染点的宽度 以像素为单位
glLineWidth(GLfloat size) 设置被渲染线的宽度 以像素为单位
点画线
glLineStipple(1, 0x3050);
glEnable(GL_LINE_STIPPLE);
多边形细节操作
glFrontFace(GL_CCW); //默认 CCW
glPolygonMode(GL_FRONT, GL_FILL);
glPolygonMode(GL_BACK, GL_LINE);
glCullFace(GL_FRONT_AND_BACK);
glEnable(GL_CULL_FACE);
点画多边形
const GLubyte mask[] = { 0, 0, 0, 1 };
glPolygonStipple(mask);
glEnable(GL_POLYGON_STIPPLE);