GLUT_DOUBLE和GLUT_SINGLE用例-创新互联

说明

创新互联建站服务项目包括治多网站建设、治多网站制作、治多网页制作以及治多网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,治多网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到治多省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

GLUT_SINGLE 0x0000 指定单缓存窗口

GLUT_DOUBLE 0x0002 指定双缓存窗口

原理

GLUT_SINGLE单缓冲,屏幕显示调用glFlush(),将图像在当前显示缓存中直接渲染,会有图形跳动(闪烁)问题

GLUT_DOUBLE双缓冲,屏幕显示调用glutSwapBuffers(),将图像先绘制在另外的缓存中,渲染完毕之后,将其整个缓存贴到当前的窗口,能消除闪烁,一般动画要用双缓冲.

GLUT_SINGLE例子

#include

#include

void myDisplay(void)

{

 glClearColor(1.0f, 1.0f, 1.0f, 0.0f);

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 glPointSize(20);

   glBegin(GL_POINTS);

   glColor3f(0.0, 1.0, 0.0);

   glVertex2f(0.0, 0.0);

   glEnd();

 glFlush();

}

int main(int argc, char* argv[])

{

 glutInit(&argc, argv);

 glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);

 glutInitWindowPosition(200, 200);

 glutInitWindowSize(400, 400);

 glutCreateWindow("OpenGL 窗口1");

 glutDisplayFunc(&myDisplay);

 glutMainLoop();

 return 0;

}

GLUT_DOUBLE例子

#include

#include

void myDisplay(void)

{

 glClearColor(1.0f, 1.0f, 1.0f, 0.0f);

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 glPointSize(20);

   glBegin(GL_POINTS);

   glColor3f(0.0, 1.0, 0.0);

   glVertex2f(0.0, 0.0);

   glEnd();

 glutSwapBuffers();

}

int main(int argc, char* argv[])

{

 glutInit(&argc, argv);

 glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);

 glutInitWindowPosition(200, 200);

 glutInitWindowSize(400, 400);

 glutCreateWindow("OpenGL 窗口1");

 glutDisplayFunc(&myDisplay);

 glutMainLoop();

 return 0;

}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:GLUT_DOUBLE和GLUT_SINGLE用例-创新互联
文章网址:http://hbruida.cn/article/cescci.html