2011-03-22 80 views
2

我正在用C++編寫一個應用程序,使用CGL/OpenGL,並且需要鍵盤/鼠標輸入。如果可能的話,我試圖避免使用Objective-C和Cocoa。我意識到可以使用碳捕獲輸入,但似乎碳正在逐漸被淘汰,再加上目前還不清楚它是否與64位應用程序兼容。有沒有人知道在OSX中是否有其他替代方案可用於使用C++進行鼠標/鍵盤輸入而不會出現非常低的級別(例如I/O套件)?任何代碼片段讓我開始?沒有Cocoa的OSX中的鼠標/鍵盤輸入

謝謝你 -

+0

你用什麼的窗?它不提供輸入嗎? – fouronnes 2011-03-22 21:11:57

+0

我正在使用CGL,它提供了一個全屏的OpenGL表面,但沒有事件循環或輸入。我希望能夠運行自定義事件循環。 – cjcela 2011-03-22 22:41:23

+0

長久以來,GLUT會幫助你嗎?我用它在原型代碼中進行鍵盤/鼠標處理。 – holtavolt 2011-03-23 23:51:36

回答

1

Quartz event taps可能會做你想要什麼。不知道爲什麼你試圖避免使用Cocoa事件系統,很難知道什麼技術最適合你正在嘗試做的事情。

+0

謝謝 - 我會研究它。我不想避免Cocoa本身..我不能使用的是Objective-C ..請參閱我有一些C++代碼我想使用,雖然Objective-C++主要工作,它不喜歡虛擬功能(我需要使用,因爲C++代碼的結構)。因此任何使用64位的C或C++ API都應該這樣做。 – cjcela 2011-03-30 23:38:26

+1

你有什麼不起作用的具體例子嗎?我曾在幾個大型的Objective-C++代碼庫中工作過,並且從未遇到任何虛函數問題。 – smorgan 2011-03-31 00:12:03

0

燈光師在遊戲寫了一篇文章做的只是你想要什麼,環境和表面的創建與CGL和最小事件循環(雖然它是過時的一點,對於埃爾卡皮坦你需要CGLSetFullScreenOnDisplay())

http://gafferongames.com/2009/01/19/opengl-on-macosx/

它採用InstallApplicationEventHandler,兩個鍵盤的一個API這裏提到:

Keyboard input on OSX