一个格式化文本信息版面的小玩意

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

文章介绍了作者在游戏引擎中使用imgui绘制调试信息界面的想法,并自己实现了一套新的文本信息排版的库。

🎯

关键要点

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

继续阅读