Apa itu nux dan apa gunanya?

53

Pertanyaan ini menyebutkan bahwa Unity akan menggunakan nux sebagai toolkit.

Apa sebenarnya nux?

Jorge Castro
sumber

Jawaban:

69

Nux adalah toolkit dan kanvas widget berbasis OpenGL yang digunakan untuk membuat antarmuka pengguna, mirip dengan GTK +. Pada level tinggi, nux dipecah menjadi 3 perpustakaan.

  • NuxCore
  • NuxGraphics
  • Nux

NuxCore bertanggung jawab untuk hal-hal dasar seperti sistem tipe, fungsi matematika, definisi warna, dll. Pada dasarnya ia menyediakan semua tipe primitif untuk sistem widget (warna, persegi panjang, titik). Sangat sedikit logika hadir di sini, ini adalah perpustakaan dasar.

NuxGraphics adalah lapisan abstraksi OpenGL yang tipis. Ini memberikan penyederhanaan pola OpenGL umum (mendorong dan melompati persegi panjang kliping, mengubah target render, pengaturan keadaan, dll), namun itu tidak secara langsung melarang pengguna membuat panggilan OpenGL mentah sendiri. NuxGraphics menyediakan abstraksi untuk tekstur dan pemuatan / pembongkaran data.

Nux adalah pustaka widget yang diimplementasikan di atas NuxCore dan NuxGraphics. Nux berisi duplikat untuk hampir setiap widget utama dalam tumpukan GTK serta beberapa widget komposisi (color picker, grafik, view 3d). Widget Nux belum pada tingkat kompleksitas yang sama dengan widget GTK, tidak memiliki rendering teks tingkat lanjut (diperbaiki) dan menghapus dukungan tema.

Rendering di dalam nux dapat digambarkan sebagai "gaya kanvas". Nux menyediakan pelukis untuk melakukan primitif menggambar dasar yang dapat digunakan selain menanamkan widget lainnya. Jadi, alih-alih menyematkan hbar untuk membuat garis horizontal, penulis widget dapat, dengan pilihan mereka, menggunakan pelukis untuk menggambar bar secara langsung. Gambar juga dapat ditampilkan dengan cara ini, alih-alih menyematkan widget tambahan hanya untuk membuat gambar statis yang tidak reaktif. Namun ini tidak mengesampingkan hanya menyematkan widget.

In Unity nux digunakan dalam apa yang kita sebut "Mode Tertanam". Pada dasarnya nux menyediakan fungsi untuk melukis dirinya sendiri dalam konteks asing terbuka. Kami memanggil fungsi cat dan nux blits sendiri ke backbuffer. Kita kemudian dapat terus melukis di atasnya jika kita inginkan (kadang-kadang kita mengizinkan compiz untuk melakukan ini). Ada fungsi yang disediakan untuk melakukan manajemen status terbuka dalam mode tertanam.

Jason Smith
sumber
1
sangat informatif, Jason. Terima kasih. Apakah ada tautan ke tempat orang dapat menemukan informasi lebih lanjut?
SB
Apakah ada tujuan untuk "memperluas" Nux menjadi toolkit utama untuk Ubuntu dengan cara yang saat ini GTK + adalah toolkit "primer"?
ShroudedCloud