Что такое nux и для чего он используется?

Ответы:

69

Nux - это основанный на OpenGL инструментарий виджетов и холст, используемый для создания пользовательских интерфейсов, похожих на GTK +. На высоком уровне nux разбит на 3 библиотеки.

  • NuxCore
  • NuxGraphics
  • Nux

NuxCore отвечает за базовые вещи, такие как система типов, математические функции, определения цвета и т. Д. Он в основном предоставляет все примитивные типы для системы виджетов (цвет, прямоугольник, точка). Здесь очень мало логики, это основополагающая библиотека.

NuxGraphics - это тонкий уровень абстракции OpenGL. Он обеспечивает упрощение общих шаблонов OpenGL (нажатие и извлечение прямоугольников отсечения, изменение целей рендеринга, настройка состояния и т. Д.), Однако он не запрещает пользователям напрямую выполнять необработанные вызовы OpenGL. NuxGraphics предоставляет абстракции для текстур и загрузки / выгрузки данных.

Nux - это библиотека виджетов, реализованная поверх NuxCore и NuxGraphics. Nux содержит дубликаты почти для всех основных виджетов в стеке GTK, а также несколько виджетов композиции (палитра цветов, графики, трехмерные изображения). Виджеты Nux еще не находятся на том же уровне сложности, что и виджеты GTK, в них отсутствует расширенный рендеринг текста (исправлено) и не поддерживается поддержка тем.

Визуализация внутри nux может быть описана как «стиль холста». Nux предоставляет художника для выполнения основных примитивов рисования, которые могут использоваться в дополнение к встраиванию других виджетов. Таким образом, вместо встраивания hbar для создания горизонтальной линии, автор виджета может, по своему выбору, использовать рисовальщика для непосредственного рисования панели. Изображения также могут отображаться таким образом, скорее, путем добавления дополнительного виджета просто для визуализации статического нереактивного изображения. Это, однако, не исключает простого встраивания виджетов.

В Unity nux используется в том, что мы называем «Embedded Mode». По сути, nux предоставляет функцию для рисования себя в чужом контексте open gl. Мы вызываем функцию рисования, и nux копирует себя в буфер. Затем мы можем продолжать рисовать поверх этого, если захотим (иногда мы позволяем compiz сделать это). Есть функции для управления состоянием opengl во встроенном режиме.

Джейсон Смит
источник
1
очень информативно, Джейсон. Благодарю. Есть ли ссылка, где можно найти больше информации?
SB
Есть ли цель, возможно, «расширить» Nux в основной инструментарий для Ubuntu так, чтобы GTK + в настоящее время был «основным» инструментарием?
ShroudedCloud