RepositoryCEEEstonia
TU

tuupola/hagl

Hardware Agnostic Graphics Library for embedded

474stars
67forks
14issues
3views

Thành tựu nổi bật

Những danh hiệu mới nhất của dự án

1
TINIX TRENDING·Chủ đề: gd32v

#1 Repository Của Tuần

1
TINIX TRENDING·Chủ đề: rp2040

#1 Repository Của Tuần

1
TINIX TRENDING·Chủ đề: hagl

#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.

RepositoryC
lvgl/lvgl

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.

25.0k
Oct 22, 2026
RepositoryC
Bodmer/TFT_eSPI

Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips

5.0k
Apr 3, 2026
RepositoryC
HeyWillow/willow

Open source, local, and self-hosted Amazon Echo/Google Home competitive Voice Assistant alternative

3.1k
Oct 1, 2026
RepositoryC
RavenSystem/esp-homekit-devices

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...)

3.0k
Sep 18, 2026
RepositoryC
lovyan03/LovyanGFX

SPI LCD graphics library for ESP32 (ESP-IDF/ArduinoESP32) / ESP8266 (ArduinoESP8266) / SAMD51(Seeed ArduinoSAMD51)

1.8k
Oct 26, 2026
RepositoryC
polpo/picogus

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

803
Oct 2, 2026
RepositoryC
polpo/rp2040-psram

A header-only C library to allow access to SPI PSRAM via PIO on the RP2040 microcontroller.

193
Apr 13, 2026
RepositoryC
Loc15/PicoGamepadConverter

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.

182
Jul 13, 2026
RepositoryC
takkaO/OpenFontRender

TTF font render support library for microcomputer.

178
Jun 2, 2025