2012-03-30 26 views
3

私はMac OS XでCGL関数を使ってCで簡単なアプリケーションを書いています。CGLは、フルスクリーンで動作するOpenGLコンテキストを作成することができます。しかし、それはターミナルからフォーカスを奪うので、キーイベントをキャプチャする方法はありません。私はCocoaを使用していないので、アプリが全画面表示になったらどのようにキーイベントを取得するのですか?私はアプリをできるだけポータブルにする必要があるので、Cocoaから離れるようにしたいと考えています。フルスクリーンのOpenGLウィンドウからキーイベントを取得する方法は?

答えて

2

私はCocoaを使用していないので、アプリケーションがフルスクリーンになったらどのようにキーイベントを取得できますか?私はアプリをできるだけポータブルにする必要があるので、Cocoaから離れるようにしたいと考えています。

次に、GLFWやSDLのようなクロスプラットフォームのフレームワークを使用します。

+0

ありがとうございました。フルスクリーンのCGLアプリケーションからキー入力を取得する方法はありませんか?私は同じアプリのCocoa版を作成しようとしましたが、端末ウィンドウが開いている限り、キー入力をキャプチャしているようには思えません。 NSWindowを起動する以外の方法はありませんか? – Synthetix

+1

@ Synthetix:なんとなく、OS依存の呼び出しを使用する必要があります。 OpenGLはユーザーの入力を処理しません。 – datenwolf

+1

うん、私はCGEventSourceKeyStateを使用して終わった。私が知る限り、これはCocoaに頼らずに別のスレッドでOpenGLループを実行することなく、キーボード入力を盗聴する唯一の方法です。 – Synthetix

関連する問題