프로젝트 소개

LVGL(Light and Versatile Graphics Library)은 모든 벤더와 플랫폼의 마이크로컨트롤러 및 마이크로프로세서에서 그래픽 사용자 인터페이스를 만들기 위한 C(C++ 호환)로 작성된 무료 오픈 소스 임베디드 UI 라이브러리입니다. 외부 의존성이 없어 소형 MCU부터 3D를 지원하는 멀티코어 Linux 기반 MPU까지 다양한 타깃에 이식할 수 있습니다. 일반적인 UI에는 약 100 kB RAM, 200–300 kB 플래시, 화면의 약 10분의 1 크기의 렌더링 버퍼가 필요하다고 알려져 있으며, 문서상 최소 사양은 약 32 kB RAM과 128 kB 플래시입니다. 주요 기능: - Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table 등 30개 이상의 내장 위젯. - 100개 이상의 스타일 속성을 갖춘 유연한 스타일 시스템과 반응형 크기 및 위치 지정을 위한 Flexbox 및 Grid 유사 레이아웃 엔진. - UI와 애플리케이션 로직을 연결하는 데이터 바인딩. - 마우스, 터치패드, 키패드, 키보드, 외부 버튼, 인코더 입력 지원 및 다중 디스플레이 지원. - 도형, 그라디언트, 안티앨리어싱, 불투명도, 부드러운 스크롤, 그림자, 이미지 변환을 포함한 내장 2D 렌더링; OpenGL을 통한 glTF 모델용 3D 엔진; 벡터 그래픽, SVG, Lottie 지원. - CJK, 태국어, 힌디어, 아랍어, 페르시아어 문자 체계를 아우르는 UTF-8 텍스트 렌더링. - VG-Lite, Dave2D, NeoChrome, OpenGL을 포함한 GPU 지원. 통합 범위는 넓습니다. 칩 벤더(ESP32, NXP, Renesas, STM32), RTOS(Zephyr, NuttX, RT-Thread), 프레임워크(Arduino, PlatformIO, CMSIS-Pack), 보드 제조사들이 LVGL을 통합했습니다. 내장 드라이버는 SDL/X11/Wayland 시뮬레이터, ILI9341 및 ST7789 같은 일반적인 디스플레이 컨트롤러, 임베디드 Linux 프레임버퍼, DRM/KMS, Wayland, libinput/evdev 입력, 그리고 GPU 가속기를 지원합니다. 수동 포팅은 간단합니다. 소스를 추가하고 lv_conf.h 또는 Kconfig로 구성한 뒤 LVGL을 초기화하고 디스플레이 플러시 및 입력 읽기 콜백을 등록하면 됩니다. LVGL Pro는 별도의 전문 툴체인(Editor, Online Viewer, Figma 플러그인, CLI)으로, XML로 UI를 시각적으로 구축하고 추가 런타임 없이 순수 LVGL C 코드를 내보냅니다. Community 및 Evaluation 등급은 비상업적 사용에 무료이며, 상업적 사용에는 유료 라이선스가 필요합니다. 핵심 라이브러리 자체는 MIT 라이선스이므로 오픈 소스 및 상업용 제품에서 로열티 없이 사용할 수 있습니다.