FabGL 库
FabGL主要是用于ESP32的图形库。它实现了多个显示驱动程序(用于直接VGA输出以及I2C和SPI LCD驱动程序)。
FabGL还可以从PS/2键盘和鼠标获取输入。ULP核心处理PS/2端口通信,使主CPU核心可以自由执行其他任务。
FabGL还实现:音频引擎、图形用户界面(GUI)、游戏引擎和ANSI/VT终端。
此库适用于ESP32修订版1和更高版本。
VGA输出需要一个数模转换器(DAC):它可以通过三个270欧姆的电阻器来实现8种颜色,或者通过6个电阻器来实现64种颜色。
嵌入了几种固定和可变宽度字体。
支持无限数量的精灵。然而,大型精灵和大量精灵会降低帧速率,并可能产生闪烁。
当内存足够时(在320x200等低分辨率上),可以分配两个屏幕缓冲区,以实现双缓冲。
在这种情况下,原语总是在后缓冲区上绘制。
除双缓冲或显式禁用外,所有图形均在垂直回溯(使用VGA驱动程序)上执行,因此不会出现闪烁。
如果在垂直回溯结束之前未处理要绘制的原语队列,则会在下一次回溯时中断并继续。
有一个图形用户界面(GUI),具有重叠的窗口和鼠标处理以及许多小部件(按钮、编辑框、复选框、组合框、列表框等)。
最后,还有一个声音引擎,多个通道混合到一个单声道输出。每个通道都可以生成正弦波、方波等。。。或自定义采样数据。
音频输出和VGA输出一样,是使用DMA生成的。CPU只是混合音频通道并准备波形。
FabGL 库的主要类:
设备仿真类:
其他类:
该库和相关软件使用 GPL v3 授权。
|