¿Qué es nux y para qué se utiliza?

Respuestas:

69

Nux es un kit de herramientas y lienzo de widgets basados ​​en OpenGL que se utiliza para crear interfaces de usuario, similar a GTK +. En un nivel alto, nux se divide en 3 bibliotecas.

  • NuxCore
  • NuxGraphics
  • Nux

NuxCore es responsable de cosas básicas como un sistema de tipos, funciones matemáticas, definiciones de colores, etc. Básicamente proporciona todos los tipos primitivos para un sistema de widgets (color, rectángulo, punto). Aquí hay muy poca lógica, esta es una biblioteca fundamental.

NuxGraphics es una delgada capa de abstracción de OpenGL. Proporciona simplificaciones de patrones comunes de OpenGL (empujar y hacer estallar rectángulos de recorte, cambiar los objetivos de renderizado, la configuración de estado, etc.), sin embargo, no prohíbe directamente a los usuarios hacer llamadas crudas de OpenGL. NuxGraphics proporciona abstracciones para texturas y carga / descarga de datos.

Nux es una biblioteca de widgets implementada sobre NuxCore y NuxGraphics. Nux contiene un duplicado para casi todos los widgets principales en la pila GTK, así como varios widgets de composición (selector de color, gráficos, vistas en 3D). Los widgets de Nux aún no tienen el mismo nivel de complejidad que los widgets de GTK, ya que carecen de una representación de texto avanzada (está siendo reparada) y no tienen soporte para temas.

La representación dentro de nux podría describirse como "estilo de lienzo". Nux proporciona un pintor para realizar primitivas de dibujo básicas que se pueden usar además de incrustar otros widgets. Entonces, en lugar de incrustar una barra h para crear una línea horizontal, un autor de widgets puede, a su elección, usar al pintor para dibujar la barra directamente. Las imágenes también se pueden representar de esta manera, en lugar de incrustar un widget adicional simplemente para representar una imagen estática no reactiva. Sin embargo, esto no descarta simplemente incrustar widgets.

En Unity, nux se utiliza en lo que llamamos "Modo integrado". Esencialmente, nux proporciona una función para pintarse en un contexto gl abierto externo. Llamamos a la función de pintura y nux se borra en el backbuffer. Luego podemos continuar pintando encima si lo deseamos (a veces permitimos que compiz haga esto). Hay funciones proporcionadas para hacer la gestión de estado opengl en modo incrustado.

Jason Smith
fuente
1
muy informativo, Jason. Gracias. ¿Hay un enlace a donde se puede encontrar más información?
SB
¿Hay algún objetivo de "expandir" Nux en un kit de herramientas primario para Ubuntu de la misma manera que GTK + es actualmente el kit de herramientas "primario"?
ShroudedCloud