2016-08-02 91 views
-2

我一直在从头开发游戏引擎,使用C++,openGL和GLUT一段时间。我使用我的电脑和引擎是好的,但最近我买了一台笔记本电脑,所以我决定尝试我的引擎。当我启动引擎时,它的帧速率为0.3 fps,但在为GPU安装新驱动程序后,一切正常。不幸的是,出现了一个新问题,在我看来,无处不在。当我启动应用程序时,只有当我连续点击任何鼠标按钮时,屏幕刷新,即使我没有glutMouseFunc(),或者如果我alt +选项卡窗口。我不知道可能是什么原因,如果你有任何想法,我向他们开放。GLUT窗口不刷新

+0

我没有使用GLUT一段时间,但从描述看来,您的应用程序看起来像刷新屏幕不是在每一帧,但只有在鼠标移动和窗口被重绘等事件的情况下。你能发布显示函数,还是包含'glClear(); ... glutSwapBuffers();'? – Artalus

+0

我真的不认为问题出在代码中,因为完全相同的代码在我的电脑上完美工作。但是,这里是我的显示函数: 'void displayGL() { \t glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); \t ... \t glutSwapBuffers(); }' 我在空闲和被动运动函数中也有'glutPostRedisplay()',所以这也不是问题。 – pandicacao

回答

0

你可以尝试把:

glutPostRedisplay(); 
后您的键和鼠标功能

。例如,

static void key(unsigned char key, int x, int y) 
{ 
    switch (key) 
    { 
     case 27 : 
     case 'q': 
      exit(0); 
     break; 

    } 

    glutPostRedisplay();//this is what I mean 
} 

这是对我有用的东西。

+0

我有几个glut函数的'glutPostRedisplay()'函数,我也试过把它放在每一个glut函数中,但它没有用。我认为问题不在代码中,但在其他地方,但真的不知道这可能是什么原因。 – pandicacao