Answers:
Nux是用于创建用户界面的基于OpenGL的窗口小部件工具箱和画布,类似于GTK +。在较高级别上,nux分为3个库。
NuxCore负责基本的事情,例如类型系统,数学函数,颜色定义等。它基本上提供了小部件系统的所有基本类型(颜色,矩形,点)。这里几乎没有逻辑,这是一个基础库。
NuxGraphics是一个薄的OpenGL抽象层。它提供了常见OpenGL模式的简化(推和弹出剪贴矩形,更改渲染目标,状态设置等),但是它并没有直接禁止用户自己进行原始OpenGL调用。NuxGraphics提供纹理和加载/卸载数据的抽象。
Nux是在NuxCore和NuxGraphics之上实现的小部件库。Nux包含GTK堆栈中几乎每个主要小部件的副本以及几个合成小部件(颜色选择器,图形,3d视图)。Nux小部件尚未达到与GTK小部件相同的复杂度,缺少高级文本呈现(已修复)并且没有明确的主题支持。
nux内部的渲染可以描述为“画布样式”。Nux提供了一个画家来执行基本的绘制图元,除了嵌入其他小部件外,还可以使用它们。因此,与嵌入hbar来创建水平线不同,widget作者可以选择使用绘画程序直接绘制该条。图像也可以以此方式呈现,而不是嵌入其他窗口小部件以仅呈现静态非反应性图像。但是,这并不排除简单地嵌入窗口小部件。
在Unity中,nux用于所谓的“嵌入式模式”。本质上,nux提供了在外部开放gl上下文中绘画自身的功能。我们调用paint函数,然后将其自身推入到后缓冲中。如果需要,我们可以继续在其上绘画(有时我们允许compiz这样做)。提供了在嵌入式模式下执行opengl状态管理的功能。