Other

项目介绍

fdivitto/FabGL 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 Other 许可证,目前获得 1.7k 个 Star、230 次 Fork。

仓库全名
fdivitto/FabGL
开源许可证
Other
Star 数
1.7k
Fork 数
230
未关闭 Issue
81

README 摘要

FabGL ESP32 Display Controller (VGA, Color NTSC/PAL Composite, I2C and SPI displays), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Graphical User Interface (GUI), Game/Emulation Engine and ANSI/VT Terminal Warning! The latest version of the Espressif ESP32 library that FabGL runs on is 2.0.17 (or even earlier). Unfortunately, the latest versions of Espressif leave too little memory free for…

完整内容见 GitHub 原始 README 或本页 。

常见问题

FabGL 用什么语言开发?

主要使用 C++ 编写,采用 Other 许可证,目前有 1.7k 个 Star。

FabGL 可以免费商用吗?

仓库标注的许可证为 Other,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 FabGL 的源码?

可以直接克隆仓库:git clone https://github.com/fdivitto/FabGL.git,默认分支为 master;安装与运行步骤见仓库 README。

FabGL 最近还在维护吗?

仓库最近一次更新为 2025年2月27日,当前有 81 个未关闭 Issue;Star 数为 1.7k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

ESP32 Display Controller (VGA, PAL/NTSC Color Composite, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
2259
价值分
1107
活跃状态
活跃

语言占比

BASIC
C
C++
CMake
Makefile
Python
QuickBASIC

Release

贡献者

README

FabGL

ESP32 Display Controller (VGA, Color NTSC/PAL Composite, I2C and SPI displays), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Graphical User Interface (GUI), Game/Emulation Engine and ANSI/VT Terminal

Warning! The latest version of the Espressif ESP32 library that FabGL runs on is 2.0.17 (or even earlier). Unfortunately, the latest versions of Espressif leave too little memory free for applications, and a project the size of FabGL can no longer function as intended.

Please look here for full API documentation

See also my youtube channel where you can find demos and tutorials

You may support development by purchasing the ESP32-SBC-FabGL Olimex board.

=================================================================================

License terms:

Created by Fabrizio Di Vittorio ([email protected]) - http://www.fabgl.com

Copyright © 2019-2022 Fabrizio Di Vittorio.

All rights reserved.

This library and related software is available under GPL v3.

Please contact [email protected] if you need a commercial license.

Please don’t remove copyright and/or original author from FabGL examples (ie from screens, dialogs, etc…), even from derived works which use examples as base.

=================================================================================

FabGL is mainly a Graphics Library for ESP32. It implements several display drivers (VGA output, PAL/NTSC Color Composite, I2C and SPI displays). FabGL can also get input from a PS/2 Keyboard and a Mouse. FabGL implements also: an Audio Engine (DAC and Sigma-Delta), a Graphical User Interface (GUI), a Game Engine and an ANSI/VT Terminal.

This library works with ESP32 revision 1 or upper. See Compatible Boards.

VGA output requires a external digital to analog converter (DAC): it can be done by three 270 Ohm resistors to have 8 colors, or by 6 resistors to have 64 colors. Composite output doesn’t require external components (maybe a 5Mhz low pass filter).

There are several fixed and variable width fonts embedded.

Unlimited number of sprites are supported. However big sprites and a large amount of them reduces the frame rate and could generate flickering.

When there is enough memory (on low resolutions like 320x200), it is possible to allocate two screen buffers, so to implement double buffering. In this case primitives are always drawn on the back buffer.

Except for double buffering or when explicitly disabled, all drawings are performed on vertical retracing, so no flickering is visible. If the queue of primitives to draw is not processed before the vertical retracing ends, then it is interrupted and continued at next retracing.

There is a graphical user interface (GUI) with overlapping windows and mouse handling and a lot of widgets (buttons, editboxes, checkboxes, comboboxes, listboxes, etc…).

Finally, there is a sound engine, with multiple channels mixed to a mono output. Each channel can generate sine waveforms, square, etc… or custom sampled data.

Installation Tutorial - fabgl development board (click for video):

Everything Is AWESOME

Installation Tutorial - TTGO VGA32 (click for video):

Everything Is AWESOME

IBM PC Emulator (click for video):

Everything Is AWESOME

Space Invaders Example (click for video):

Everything Is AWESOME

Dev board connected to TFT ILI9341 240x320, TFT ST7789 240x240 and OLED SSD1306 128x64 (click for video):

Everything Is AWESOME

Serial Terminal escape sequences for graphics and sound (click for video):

Everything Is AWESOME

Serial Terminal for MBC2 Z80 Board (click for video):

Everything Is AWESOME

Graphical User Interface - GUI (click for video):

Everything Is AWESOME

Sound Engine (click for video):

Everything Is AWESOME

Altair 8800 emulator - CP/M text games (click for video):

Everything Is AWESOME

Commodore VIC20 emulator (click for video):

Everything Is AWESOME

Simple Terminal Out Example (click for video):

Everything Is AWESOME

Network Terminal Example (click for video):

Everything Is AWESOME

Modeline Studio Example (click for video):

Everything Is AWESOME

Loopback Terminal Example (click for video):

Everything Is AWESOME

Double Buffering Example (click for video):

Everything Is AWESOME

Collision Detection Example (click for video):

Everything Is AWESOME

Multitasking CP/M Plus Example (click for video):

Everything Is AWESOME

评论

暂无评论