![nux 是什么以及它有何用途?](https://linux22.com/image/1074729/nux%20%E6%98%AF%E4%BB%80%E4%B9%88%E4%BB%A5%E5%8F%8A%E5%AE%83%E6%9C%89%E4%BD%95%E7%94%A8%E9%80%94%EF%BC%9F.png)
答案1
Nux 是一个基于 OpenGL 的小部件工具包和画布,用于创建用户界面,类似于 GTK+。从高层次来看,nux 分为 3 个库。
- NuxCore
- NuxGraphics
- 马钱子
NuxCore 负责基本事务,例如类型系统、数学函数、颜色定义等。它基本上为小部件系统提供所有基本类型(颜色、矩形、点)。这里几乎没有逻辑,这是一个基础库。
NuxGraphics 是一个薄的 OpenGL 抽象层。它简化了常见的 OpenGL 模式(推送和弹出裁剪矩形、更改渲染目标、状态设置等),但它并不直接禁止用户自己进行原始 OpenGL 调用。NuxGraphics 为纹理和加载/卸载数据提供了抽象。
Nux 是一个基于 NuxCore 和 NuxGraphics 实现的小部件库。Nux 几乎包含 GTK 堆栈中所有主要小部件的副本,以及多个组合小部件(颜色选择器、图形、3D 视图)。Nux 小部件的复杂程度尚未达到 GTK 小部件的水平,缺乏高级文本渲染(正在修复)和清晰的主题支持。
nux 内部的渲染可以描述为“画布风格”。Nux 提供了一个绘图器来执行基本的绘图原语,除了嵌入其他小部件外,还可以使用它。因此,小部件作者可以选择使用绘图器直接绘制条形图,而不是嵌入 hbar 来创建水平线。图像也可以以这种方式渲染,而不是嵌入额外的小部件来渲染静态非反应性图像。但这并不排除简单地嵌入小部件。
在 Unity 中,nux 用于我们所谓的“嵌入模式”。本质上,nux 提供了一个在外部 open gl 上下文中绘制自身的函数。我们调用 paint 函数,nux 将自身 blit 到后台缓冲区。然后,我们可以根据需要继续在其上进行绘制(有时我们允许 compiz 执行此操作)。提供了在嵌入模式下进行 opengl 状态管理的函数。