LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。LVGL的项目作者是来自匈牙利首都布达佩斯的 Gábor Kiss-Vámosi 。Kiss 在2016年将其并发布在 GitHub 上。
当时叫 LittlevGL而不是LVGL,后来作者统一修改为 LVGL 甚至连仓库地址都改了。 像一般的开源项目的那样,它是作为一个人的项目开始的。 从那时起,陆续有近 100 名贡献者参与了项目开发,使得 LVGL 逐渐成为最受欢迎的嵌入式图形库之一。【参考1】
在 https://ay123.net/mystudy/845/ 由Bin Porting 到了UEFI上。他在 https://github.com/mxmks/LVGLUEFIRWNothing/tree/main 提供了完整的代码。这次就以这套代码为例进行测试。
需要注意的是:如果你在 EDK2 的 Emulator上测试,需要调整分辨率大于等于1024x768【参考2】. 如果你在 QEMU 上测试,那么需要使用如下命令打开USB 鼠标支持(默认情况下是支持 PS2 鼠标的,但是我测试没有成功):
qemu-system-x86_64 -bios ovmf.fd -net none -hda fat:rw:c:\temp\ov -usb -device usb-mouse
之后,在 QEMU 中加载 USB 驱动(MdeModulePkg\Bus\Usb\UsbBusDxe\UsbBusDxe)和USB Mouse 驱动(MdeModulePkg\Bus\Usb\UsbMouseDxe\UsbMouseDxe)。
有兴趣的朋友不妨自行实验。
本问题提到的 USB 驱动和 USB Mouse 驱动可以通过 EDK2 编译获得,也可以在这里下载:
参考:
1. https://www.xpstem.com/article/10465
2.