답변:
Nux는 GTK +와 유사한 사용자 인터페이스를 만드는 데 사용되는 OpenGL 기반 위젯 툴킷 및 캔버스입니다. 높은 수준에서 nux는 3 개의 라이브러리로 분류됩니다.
NuxCore는 유형 시스템, 수학 함수, 색상 정의 등과 같은 기본 사항을 담당합니다. 기본적으로 위젯 시스템의 모든 기본 유형 (색상, 사각형, 점)을 제공합니다. 여기에는 논리가 거의 없으며 기본 라이브러리입니다.
NuxGraphics는 얇은 OpenGL 추상화 계층입니다. 일반적인 OpenGL 패턴의 단순화 (클리핑 사각형 푸시 및 팝, 렌더 대상 변경, 상태 설정 등)를 제공하지만 사용자가 원시 OpenGL 호출을 직접 만드는 것을 직접 금지하지는 않습니다. NuxGraphics는 텍스처 및로드 / 언로드 데이터에 대한 추상화를 제공합니다.
Nux는 NuxCore 및 NuxGraphics 위에 구현 된 위젯 라이브러리입니다. Nux에는 GTK 스택의 거의 모든 주요 위젯과 여러 컴포지션 위젯 (색상 선택기, 그래프, 3d보기)에 대한 복제본이 포함되어 있습니다. Nux 위젯은 아직 GTK 위젯과 같은 수준으로 복잡하지 않아서 고급 텍스트 렌더링 (고정) 및 명확한 테마 지원이 부족합니다.
nux 내부의 렌더링은 "캔버스 스타일"로 설명 할 수 있습니다. Nux는 다른 위젯을 내장 할뿐만 아니라 기본 드로잉 프리미티브를 수행 할 수있는 페인터를 제공합니다. 따라서 hbar를 포함하여 수평선을 만드는 대신 위젯 작성자는 원하는대로 화가를 사용하여 막대를 직접 그릴 수 있습니다. 정적 비 반응성 이미지를 렌더링하기 위해 추가 위젯을 내장하는 대신 이미지가 이러한 방식으로 렌더링 될 수도 있습니다. 그러나 이것은 단순히 위젯 내장을 배제하지는 않습니다.
유니티에서 nux는 우리가“임베디드 모드”라고 부르는 데 사용됩니다. 본질적으로 nux는 외부 공개 GL 컨텍스트에서 자체적으로 페인팅하는 기능을 제공합니다. 우리는 페인트 기능을 호출하고 nux는 백 버퍼에 스스로 블리트합니다. 우리가 원한다면 계속해서 그 위에 페인트를 칠할 수 있습니다 (때로는 compiz가 그렇게 할 수 있습니다). 임베디드 모드에서 OpenGL 상태 관리를 수행하기 위해 제공되는 기능이 있습니다.