2012-03-30 32 views
3

我正在使用Mac OS X中的CGL函數在C中編寫一個簡單的應用程序.CGL可以創建一個運行全屏的OpenGL上下文,這正是我想要的。但是,它偷走了終端的焦點,所以我沒有任何方法來捕捉關鍵事件。由於我不使用可可,一旦應用程序全屏顯示,我將如何獲得關鍵事件?我想嘗試遠離Cocoa,因爲我需要應用程序儘可能便攜。如何從全屏OpenGL窗口獲取關鍵事件?

回答

2

因爲我不使用可可,一旦應用程序全屏顯示,我將如何獲得關鍵事件?我想嘗試遠離Cocoa,因爲我需要應用程序儘可能便攜。

然後使用像GLFW或SDL這樣的交叉平臺框架。

+0

謝謝。有沒有辦法從全屏CGL應用程序捕獲鍵輸入?我試圖創建同一個應用程序的可可版本,但只要終端窗口打開,我仍然無法捕獲鍵輸入。除了啓動NSWindow之外,還有其他解決方案嗎? – Synthetix 2012-03-30 15:39:57

+1

@Synthetix:好的,無論如何你必須使用一些依賴操作系統的調用。 OpenGL不處理用戶輸入,它只繪製*事物。 – datenwolf 2012-03-30 16:31:51

+1

是的,我結束了使用CGEventSourceKeyState。據我所知,這是嗅探鍵盤輸入的唯一方法,而不必求助於Cocoa並在單獨的線程中運行OpenGL循環。 – Synthetix 2012-03-30 19:51:29