什么是nux,它有什么用途?

Jor*_*tro 53 unity nux

这个问题提到Unity将使用nux作为工具包。

究竟什么是nux?

小智 70

Nux 是一个基于 OpenGL 的小部件工具包和画布,用于创建用户界面,类似于 GTK+。在高层次上,nux 被分解为 3 个库。

  • 核心
  • NuxGraphics
  • 纽克斯

NuxCore 负责类型系统、数学函数、颜色定义等基本内容。它基本上为小部件系统提供所有基本类型(颜色、矩形、点)。这里几乎没有逻辑,这是一个基础库。

NuxGraphics 是一个薄的 OpenGL 抽象层。它提供了常见 OpenGL 模式的简化(推和弹出裁剪矩形、更改渲染目标、状态设置等),但是它并没有直接禁止用户自己进行原始 OpenGL 调用。NuxGraphics 为纹理和加载/卸载数据提供抽象。

Nux 是一个在 NuxCore 和 NuxGraphics 之上实现的小部件库。Nux 包含 GTK 堆栈中几乎每个主要小部件的副本以及几个组合小部件(颜色选择器、图形、3d 视图)。Nux 小部件还没有达到与 GTK 小部件相同的复杂程度,缺乏高级文本渲染(正在修复)和清晰的主题支持。

在 nux 内部渲染可以被描述为“画布风格”。Nux 提供了一个画家来执行基本的绘图原语,除了嵌入其他小部件外,还可以使用这些原语。因此,不是嵌入 hbar 来创建水平线,小部件作者可以根据自己的选择,使用画家直接绘制栏。图像也可以以这种方式呈现,而不是嵌入一个额外的小部件来呈现一个静态的非反应性图像。然而,这并不排除简单地嵌入小部件。

在 Unity 中,nux 用于我们所谓的“嵌入式模式”。本质上,nux 提供了一个在外部开放 gl 上下文中绘制自身的功能。我们调用paint函数,然后nux blit 自己到后台缓冲区。如果我们愿意,我们可以继续在它上面绘画(有时我们允许 compiz 这样做)。提供了在嵌入式模式下进行 opengl 状态管理的功能。