單雙緩存
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);