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