Estoniatuupola/hagl
Hardware Agnostic Graphics Library for embedded
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#1 Repository Của Tuần
#1 Repository Của Tuần
#1 Repository Của Tuần
🖼️ HAGL - Thư viện đồ họa đa nền tảng cho thiết bị nhúng
HAGL cung cấp các hàm vẽ đồ họa cơ bản như pixel, đường thẳng, hình tròn, bitmap, blitting và font chữ cố độ rộng, hoạt động độc lập với phần cứng và không sử dụng cấp phát bộ nhớ động.
HAGL (Hardware Agnostic Graphics Library) là một thư viện đồ họa nhẹ cho các thiết bị nhúng. Nó hỗ trợ vẽ các hình khối cơ bản, bitmap, blitting và font chữ độ rộng cố định. Thiết kế để nhẹ nhàng nhưng vẫn nhằm đến các vi xử lý mạnh mẽ như ESP32. HAGL không sử dụng cấp phát bộ nhớ động, giúp tránh các vấn đề liên quan đến bộ nhớ trong môi trường nhúng.
✨ Điểm nổi bật
- Độc lập phần cứng: Chỉ cần cung cấp backend với hàm vẽ pixel, có thể chạy trên nhiều nền tảng khác nhau.
- Không cấp phát động: Toàn bộ bộ nhớ được quản lý tĩnh, an toàn cho môi trường nhúng.
- Hỗ trợ nhiều backend: Bao gồm GD, SDL2, ESP-IDF, GD32V, Raspberry Pi Pico và VGA board.
- Các hình khối cơ bản: Hỗ trợ pixel, đường thẳng, đường ngang, đường dọc, hình tròn, hình tròn tô màu, elip.
- Định dạng màu linh hoạt: Hỗ trợ RGB565 và các định dạng pixel khác thông qua HAL.
- Font chữ cố độ rộng: Hỗ trợ font chữ cố độ rộng cho hiển thị văn bản.
- Blitting và bitmap: Hỗ trợ vẽ ảnh và bitmap lên màn hình.
- API ổn định: API đã ổn định 90%, phù hợp cho sử dụng thực tế.
💡 Vì sao đáng chú ý
HAGL khác biệt từ các thư viện đồ họa khác ở chỗ thiết kế hoàn toàn độc lập với phần cứng. Người dùng chỉ cần cung cấp một backend đơn giản với hàm vẽ pixel, và toàn bộ các hàm vẽ cao cấp sẽ hoạt động tự động. Điều này giúp HAGL dễ dàng cá port sang nhiều nền tảng khác nhau như ESP32, Raspberry Pi Pico, GD32V mà không cần thay đổi mã nguồn chính.
Thêm vào đó, việc không sử dụng cấp phát bộ nhớ động giúp HAGL tránh các vấn đề như phân mảnh bộ nhớ, lỗi cấp phát thất bại, rất quan trọng trong môi trường nhúng chạy với tài nguyên hạn chế.
#GraphicsLibrary #Embedded #ESP32 #RaspberryPiPico #OpenSource #TiniX
Similar Projects
Discover other similar projects and AI models.
LVGL is a free, full-featured embedded UI library for devices from small MCUs to 3D-capable MPUs, enhanced by LVGL Pro, a professional editor and tooling.
Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips
Open source, local, and self-hosted Amazon Echo/Google Home competitive Voice Assistant alternative
Advanced firmware to add native Apple HomeKit and custom configurations, compatible with any SoC based on ESP32, ESP32-S, ESP32-C and ESP8266 series. (Shelly, Sonoff, Electrodragon, Tuya...)
SPI LCD graphics library for ESP32 (ESP-IDF/ArduinoESP32) / ESP8266 (ArduinoESP8266) / SAMD51(Seeed ArduinoSAMD51)
Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support
A header-only C library to allow access to SPI PSRAM via PIO on the RP2040 microcontroller.
Switch to different gamepad modes using a gamepad as input. Re-use old gamepads that don't support USB connections or make compatibles with certain platform.