我正在编写一个 OpenGL 游戏,并且即将开始编写类似 Quake 的控制台的代码(例如 Quake 2/Counter-Strike,您可以在其中按下波浪号 (~) 并下拉控制台界面)。我已经将 Haskeline 库用于基于纯文本的控制台应用程序,并希望将其合并到我的 OpenGL 应用程序中,但不知道如何去做。
例如,getInputLine
当 Haskeline REPL 循环在另一个线程中时,我将如何使用该函数?我猜我必须使用
forkIO
然后使用文件描述符来模拟 UNIX 风格的管道来实现这一点。我必须编写一个使用 GLFW 接受键盘输入的桥接函数,然后将其传递给 Haskeline,让 Haskeline 对它认为的 STDOUT 施展魔法,然后捕获它,然后通过 OpenGL 将其显示在屏幕上来电。我是在正确的轨道上,还是这种方法不是最明智的方法?