it-swarm.com.de

Was ist Nux und wofür wird es verwendet?

Diese Frage erwähnt, dass Unity nux als Toolkit verwenden wird.

Was genau ist Nux?

53
Jorge Castro

Nux ist ein OpenGL-basiertes Widget-Toolkit und Canvas, das zum Erstellen von Benutzeroberflächen verwendet wird, ähnlich wie GTK +. Auf einer hohen Ebene ist Nux in 3 Bibliotheken unterteilt.

  • NuxCore
  • NuxGraphics
  • Nux

NuxCore ist für grundlegende Dinge wie ein Typensystem, mathematische Funktionen, Farbdefinitionen usw. verantwortlich. Es bietet im Grunde alle primitiven Typen für ein Widget-System (Farbe, Rechteck, Punkt). Hier ist sehr wenig Logik vorhanden, dies ist eine grundlegende Bibliothek.

NuxGraphics ist eine dünne OpenGL-Abstraktionsschicht. Es bietet Vereinfachungen für gängige OpenGL-Muster (Verschieben und Platzieren von Clipping-Rechtecken, Ändern von Render-Zielen, Festlegen des Status usw.), verbietet Benutzern jedoch nicht direkt, direkte OpenGL-Aufrufe selbst auszuführen. NuxGraphics bietet Abstraktionen für Texturen und das Laden/Entladen von Daten.

Nux ist eine Widget-Bibliothek, die auf NuxCore und NuxGraphics aufbaut. Nux enthält ein Duplikat für fast alle wichtigen Widgets im GTK-Stapel sowie mehrere Kompositions-Widgets (Farbauswahl, Grafiken, 3D-Ansichten). Die Nux-Widgets sind noch nicht so komplex wie die GTK-Widgets, da sie nicht über eine verbesserte Textwiedergabe (die behoben wurde) und keine klare Unterstützung für Themes verfügen.

Das Rendern innerhalb von nux könnte als „Canvas-Stil“ bezeichnet werden. Nux bietet einen Painter zum Ausführen grundlegender Zeichenprimitive, die zusätzlich zum Einbetten anderer Widgets verwendet werden können. Anstatt eine h-Leiste einzubetten, um eine horizontale Linie zu erstellen, kann ein Widget-Autor nach seiner Wahl den Painter verwenden, um die Leiste direkt zu zeichnen. Bilder können auch auf diese Weise gerendert werden, statt ein zusätzliches Widget einzubetten, um einfach ein statisches, nicht reaktives Bild zu rendern. Dies schließt jedoch das einfache Einbetten von Widgets nicht aus.

In Unity wird nux im sogenannten eingebetteten Modus verwendet. Im Wesentlichen bietet nux eine Funktion, um sich selbst in einem fremden offenen Kontext zu malen. Wir rufen die Paint-Funktion auf und nux schneidet sich in den Backbuffer. Wir können dann weiter darüber malen, wenn wir dies wünschen (manchmal erlauben wir compiz dies zu tun). Es gibt Funktionen für die Verwaltung des OpenGL-Status im eingebetteten Modus.

69
Jason Smith