2016-08-02 135 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