opengl 画矩形,窗口不显示内容

我是照书上打的代码,检查了几遍了,书上的输出结果是黑色背景中有个白色矩形,但我的程序显示只有白色矩形,当我放大窗口或拉伸窗口边框时又发现其他的问题,具体如图,运行程序显示... 我是照书上打的代码,检查了几遍了,书上的输出结果是黑色背景中有个白色矩形,但我的程序显示只有白色矩形,当我放大窗口或拉伸窗口边框时又发现其他的问题,具体如图,
运行程序显示的结果,

窗口最大化以后,,

拉窗口左上角,显示如下

以下是代码,在VS2010和VC++都运行过,都是一样的结果。glut.h,glut32.dll,glut32.lib都放好了,不知道怎么解决啊。另外,还有一点,不只是这个程序,我在书上又抄了其他的代码,在网上也下载过别人的代码,显示的结果竟然是一样的,求解决,谢谢!!
#include <gl/glut.h>

void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_POLYGON);
glVertex2f(-0.5,-0.5);
glVertex2f(-0.5,0.5);
glVertex2f(0.5,0.5);
glVertex2f(0.5,-0.5);
glEnd();

glFlush();
}

int main(int argc,char**argv){
glutInit(& argc,argv);
glutCreateWindow("simple");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
展开
 我来答
百度网友1c6e06f
2014-03-18 · TA获得超过2894个赞
知道小有建树答主
回答量:695
采纳率:66%
帮助的人:655万
展开全部
glflush后面少了一句glutSwapBuffers,否则缓存中的图像画不到窗口上。

此外,按道理上,你少注册了一个窗口OnSize事件,你仿照下面这个网址里的问题的回答,把glutReshapeFunc弄一下,否则窗口大小发生变化时,也会出问题:

http://zhidao.baidu.com/question/1382135500701951620.html?oldq=1
传说中的KuiKui
2014-03-30
知道答主
回答量:40
采纳率:0%
帮助的人:33.9万
展开全部
显卡问题,单缓冲出不来,我也是。你google搜glutsinglebuffer都有目前没办法只能用双缓冲
除此之外,你解决了告诉我。
追问
谢谢啊,不过我现在也没办法了,问了好多人,包括老师都不知道怎么办,不过终于知道问题出在哪了,谢谢
追答
hi,我最近解决了这个问题。关掉集成显卡(使用独立显卡自带manager选择任何情况都使用高性能处理而不是交给程序自动抉择)可以正常使用glFlush,但是可能导致其他图形程序运行不畅并且使笔记本电脑更费电。使用linux操作系统也可以变成正常,因为linux操作系统默认不支持双显卡。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式