Tactility 是面向 ESP32 开发板的操作系统。它在运行时加载应用,因此用这个包构建的游戏可以通过 Wi-Fi、SD 卡或它的 App Hub 安装到已经运行 Tactility 的设备上,并像其他应用一样从主屏幕打开。无需重新刷写,设备原有的其他功能也都保留。
这个包在编辑器的构建菜单中添加两个平台:Tactility 设备应用和 Tactility 模拟器。选择其中一个并构建,编辑器就会生成内含资源的应用。
提供的内容
| Deki 提供者 | 底层实现 |
|---|---|
| 显示 | Tactility 的面板驱动,直接绘制到面板 |
| 输入 | Tactility 的触摸和键盘驱动 |
| 文件 | 应用自己的资源目录,以及一个保存数据用的文件夹 |
两个启动组件 TactilityDisplaySetup 和 TactilityInputSetup 负责启动它们,为其他任何平台编写的游戏都可以不加修改地运行。实体键盘(例如 T-Deck 的键盘)会以普通按键的形式传入。
直接绘制到面板
大多数 Tactility 应用使用 LVGL 绘制。Deki 游戏已经有一帧完成的画面,因此在游戏打开期间,这个包会把 LVGL 放到一边,自己把画面发送到面板,途经一小段内部 RAM,并在面板需要时在那里转换颜色格式。能直接从 PSRAM 读取画面的面板会跳过这次复制。
运行在哪里
ESP32-S3 和 ESP32-P4。 应用的代码在打开时被加载到 RAM 中,而只有这两种芯片能从 PSRAM 运行代码。这是芯片的限制,不是 Tactility 的限制。
状态
实验性。模拟器构建已经完整可用:编辑器构建应用,并将其安装到在 x86-64 Linux 上运行的 Tactility 模拟器中,应用会出现在 Apps 菜单里。下一步是设备构建;它使用相同的源码,所以剩下的只是构建本身。
源码及其 README 在 GitHub 上,采用 Apache 2.0 许可证。Tactility 的 SDK 允许应用使用任何许可证。
