1

说到 Linux,我是一个完全的新手,我在第三学期的 OS 课程中接触了一些它,但仅此而已。我的操作系统交互仅限于使用 WinAPI。我正在为我的游戏引擎编写低级系统,即上下文创建、文件处理、HID、线程等,我希望能够在 Windows 和 Linux 上实现相同的功能.

在查找有关 Linux 接口系统的信息时,我只能找到对 Qt 等库的建议。这是一个很棒的库,我在 Windows 上使用过它,但是我对走阻力最小的道路并不感兴趣,因为我在学习使用 Linux 的过程中。感觉令人生畏,因为 Linux AFAIK 没有像 Windows.h 这样的东西。

你们能不能给我指出正确的方向?Linux 将哪些本机(如果存在)库用于窗口系统(或者只是一种创建 OpenGL 上下文的方式,但具有窗口焦点、相对鼠标坐标、窗口最小化等 Windows 功能),来自键盘/鼠标/等的输入., 文件 i/o 和线程?不必具体,能够在 Google 中输入一些内容并获得正确的结果会很好。

4

2 回答 2

6

GNU/Linux 系统上的图形显示通常使用X Window System或简称 X11 完成。但与 Windows 不同的是,X11 没有“内置”的 UI 控件集,如按钮和标签。它是一个较低级别的 API,只处理打开一个窗口并将内容绘制到其中。

要构建 UI,您可以使用原始 X11 并自己绘制所有内容,但大多数程序都使用工具包,这是一个构建在 X11 之上并实现常用控件(例如按钮)和事件处理基础设施的库跟他们。 GTKQt是当今最常见的两个,但还有其他一些,例如Motif(它更老,看起来不太好)。请注意,GNOME桌面环境是使用 GTK 构建的,而KDE是使用 Qt 构建的。

如果你想在 X11 中使用 OpenGL,你可以使用GLX创建一个 GL 上下文并将它与一个窗口相关联。它在设计上类似于用于在 Windows 中设置 GL 上下文的WGL接口,但不同的是,为其中一个编写的代码不能用于另一个。为了方便和可移植性,应用程序通常使用更高级别的库,例如GLFWSFML来处理 GL 上下文创建。

正在开发一个名为Wayland的新窗口框架,它将(可能)最终取代 X11。更高级别的库(如 GTK 和 Qt)将被移植以使用 Wayland 作为后端——就像他们可以使用 Windows GDI 和 Apple Quartz 作为后端一样——因此使用这些高级工具包的应用程序不会受到太大影响到韦兰。

于 2012-07-14T01:00:30.920 回答
1

OpenGL 网站是一个很好的资源

http://www.opengl.org/wiki/Getting_Started#Linux

于 2012-07-13T22:39:56.153 回答