2013-01-20 19 views
1

我正在使用GLUT使用openGL。 我正在做一些功能我自己的頭文件。 其中之一是一個矩形,您可以輸入數字並保存它們。 這裏的問題是,如果我想知道哪些按鍵被按下,我需要將函數放在keyboardFunc回調函數中,但是我也想顯示矩形,所以我還需要將它放在顯示回調函數中,因爲您在鍵盤迴調函數中不能繪製任何東西。在關鍵回調函數中顯示的opengl函數

我可以做兩個功能:一個用於顯示矩形和一個用於按鍵,但我希望兩個功能之一。我怎樣才能做到這一點?

回答

1

你不能像你說的那樣。您必須使用一個函數來處理鍵盤事件,另一個用於執行繪圖。

你可以做什麼,是保存所有有效的按鍵在一個全局變量,並在顯示功能只需繪製它們。

如果你想告訴GLUT儘快重新顯示,你可以在鍵盤迴調函數中調用glutPostRedisplay

+0

謝謝,有什麼辦法,你可以寫你的owne回調函數沒有太大的麻煩? – abcdef

+2

@abcdef:現在是您停止使用GLUT的時候了。 GLFW可能更接近你所需要的。 – datenwolf

+0

謝謝,GLFW是否接近GLUT的語言?或者是SDL更好 – abcdef

1

GLFW與GLUT幾乎相同,但它不會讓所有事情都像GLUT一樣成爲惡夢。你可以控制你的顯示功能!在GLFW中,您可以在按下某個鍵時定義自己的回叫。如果該回調函數的固定長度,則該回調函數可以將字符壓縮到矢量或字符數組中。然後,您將能夠在顯示循環中渲染文本。訪問文本數組時,請小心,您可能需要對其進行一些控制。

+0

+1爲GLFW。也可以在GLFW中定義MSAA樣本,顏色,模板,深度位數量.GLUT是太老了:) –