我已经做了几年的控制台编程了,现在是时候了解了一些关于GUI迷人世界的知识。我在wxWidgets中涉足过一点点;编写了一个Hello World程序,稍微玩了一下等等。
现在我是其中一个有低级别诅咒的人之一":我对知道如何使用某些效果感到不满意 - 我想知道什么是& #39;即使它没有什么实际价值,也会在幕后进行。
所以我一直在阅读这个主题(例如here),但我发现很难绕过所有不同的系统,工具包以及他们做什么。到目前为止,我已经发现了(如果我错了,请纠正我):
现在提出一些问题:坚持使用类UNIX系统:
要获得奖金,也许是Windows操作系统呢?它是否遵循类似的结构,还是完全按照自己的方式进行?
答案 0 :(得分:10)
X服务器,解释说自己需要10k多字。不适合SO答案。阅读代码,让你的眼睛爆炸。裸露X适用于软件渲染。 OpenGL 可以在该上下文中以两种不同的方式使用(见下图)。
没有。这取决于X.X只是另一个库,可以像开发人员所希望的那样实现其绘图原语。但是X本身是一个非常复杂的野兽,它的扩展数量非常荒谬,这使得今天的X功能就像它一样(没有OpenGL支持,只是作为一个例子,没有xrandr)。
这取决于你愿意承受多少痛苦。你肯定可以在你的屏幕上绘制X原语或OpenGL原语,但它不再是80年代了。
Gtk + / Qt是OS特定API(X / Wayland / W *)的抽象,以减轻创建GUI的痛苦并减少要编写的代码量。这些抽象本身具有很高的复杂性,并且有数千行代码(只需查看Gtk +提供的GtkTreeView Klass)。因此,您现在只需定义按钮和布局以及窗口小部件的包装,而不是绘制像素。
因此,从这篇wiki文章中,您可以获得对{proto的GLX extension的基本概述:
另请参阅使用X
完成绘图的概述请注意,如果Wayland和/或Mir会快速启动,这将在未来几年内被淘汰。这些是完全不同的故事。