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;
} 展开
运行程序显示的结果,
窗口最大化以后,,
拉窗口左上角,显示如下
以下是代码,在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;
} 展开
2个回答
展开全部
glflush后面少了一句glutSwapBuffers,否则缓存中的图像画不到窗口上。
此外,按道理上,你少注册了一个窗口OnSize事件,你仿照下面这个网址里的问题的回答,把glutReshapeFunc弄一下,否则窗口大小发生变化时,也会出问题:
http://zhidao.baidu.com/question/1382135500701951620.html?oldq=1
此外,按道理上,你少注册了一个窗口OnSize事件,你仿照下面这个网址里的问题的回答,把glutReshapeFunc弄一下,否则窗口大小发生变化时,也会出问题:
http://zhidao.baidu.com/question/1382135500701951620.html?oldq=1
展开全部
显卡问题,单缓冲出不来,我也是。你google搜glutsinglebuffer都有目前没办法只能用双缓冲
除此之外,你解决了告诉我。
除此之外,你解决了告诉我。
追问
谢谢啊,不过我现在也没办法了,问了好多人,包括老师都不知道怎么办,不过终于知道问题出在哪了,谢谢
追答
hi,我最近解决了这个问题。关掉集成显卡(使用独立显卡自带manager选择任何情况都使用高性能处理而不是交给程序自动抉择)可以正常使用glFlush,但是可能导致其他图形程序运行不畅并且使笔记本电脑更费电。使用linux操作系统也可以变成正常,因为linux操作系统默认不支持双显卡。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询