一个格式化文本信息版面的小玩意
💡
原文中文,约1800字,阅读约需5分钟。
📝
内容提要
文章介绍了作者在游戏引擎中使用imgui绘制调试信息界面的想法,并自己实现了一套新的文本信息排版的库。
🎯
关键要点
- 随着游戏引擎中信息展示需求增加,使用传统API显得简陋。
- bgfx提供的调试文本输出API功能有限,仅为文本模式缓冲区。
- 作者考虑使用imgui绘制调试信息界面,但保留bgfx文本模式也有好处。
- 寻找合适的UI库时,发现ncursors和VT100终端的实现较为复杂。
- 在github上找到imtui库,但项目不活跃,且实现不够理想。
- imgui的绘图指令列表丢失了原始绘图意图,难以重现文本模式下的图案。
- 作者模仿imtui实现了新的imgui backend,通过特定texture id识别文字绘制。
- 通过自定义字形和背景框的判断,简化了文本输出的实现。
- 在测试新backend后,作者质疑反向解析三角形的意义。
- 最终决定实现一个简单的文本信息排版库,解决调试信息展示问题。
- 新的文本排版库在几百行代码内完成,成为周末的消遣项目。
➡️