2014-10-18 46 views
0

我使用包含下面的代碼行一個OpenGL顯示功能緩衝器多次:交換來實現在一個功能(OpenGL和C++)

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glMatrixMode(GL_MODELVIEW); 

//Draw some stuff 

glMatrixMode(GL_PROJECTION); 
glPopMatrix(); 
glMatrixMode(GL_MODELVIEW); 
glPopMatrix(); 
glutSwapBuffers(); 

然而,我申請這個代碼在整個多次功能。我想要發生的事情是讓它畫出一些東西,迴應用戶的輸入,繪製其他東西,再次迴應用戶的輸入,最後再畫出最後一件事。在同一個函數中多次調用「glutSwapBuffers」被認爲是可接受的做法嗎?如果這不是一個大問題,是否有辦法讓它正確顯示最終的繪圖?它繪製出我想要的前兩張圖片,但第三次屏幕保持白色。

回答

0

通常你做一個循環

檢查輸入在循環的開始,然後更新變量,然後繪製一旦根據這些變量並重新啓動循環。

如果沒有輸入,那麼不依賴於時間的變量將保持不變,您繪製的內容將保持不變。