私はクロスプラットフォームのゲーム エンジンを構築しており、現在は入力システムに注力しています。
私は、メッセージを渡し、別のスレッドで実行されているプラットフォーム依存モジュールによって供給される抽象的な入力システムを作成しました。
Windows では、入力システムに RAWINPUT からのメッセージ (プラットフォームに依存しないものに変換) を供給する「メッセージのみ」のウィンドウを作成しました。
現在、UNIX ベースのシステムで同様のことを行う方法を理解するのに苦労しています。カーネルから入力 (keyup、keydown、mousemove...) を取得する便利な方法はありますか? または、ウィンドウを表示する必要のない他の方法はありますか?
編集
入力システムをレンダラーに依存させたくありません。レンダラーは、アプリのフォーカスが変更されたときに入力を通知する必要があります...そのため、入力システムをレンダラーとは異なるスレッドで実行したいと考えています。