我需要呈现某些格式化文本(颜色,不同字体大小,下划线,粗体等),但我不确定如何去做。 D3DXFont只允许一次渲染单个字体/大小/重量/颜色等的文本,我不能看到一种实际的方式来将多个调用“组合”为ID3DXFont :: DrawText来做这种事情......在direct3d应用程序中呈现格式化文本
我环顾四周,似乎没有任何现有的库可以完成这些工作,但我不知道如何实现这样的文本渲染器,而且我甚至找不到有关这种文本渲染如何工作的任何文档,只渲染简单的固定宽度,查看它的ASCII位图字体可能是一种完全不同的方法,它只适合在Unicode不重要的情况下渲染简单的文本块。
如果没有direct3d字体渲染能够做到这一点,是否还有其他渲染器(例如,用于在普通窗口中渲染富文本),并将渲染为RAM中的纹理,然后将其上传到视频卡渲染到后台缓冲区中会产生合理的性能?
好的,TextOut ::似乎支持计算出每个块的位置,而ID3DXFont没有(即我需要为每个块计算我自己的RECT ...)。但是我也非常需要A的方法,预先计算渲染某个东西需要多少空间(例如,我可以将工具提示框扩展为所需的大小),并且B使它在特定宽度之上缠绕线(使用如果需要,可以计算所需大小以添加垂直滚动条)。 – 2009-07-20 09:29:55
GDI可以做到这一点吗?我看到大量的应用程序具有丰富的文本框,可以同时处理所需的所有内容(例如,将其包装为适合框中的内容,并计算文本的“高度”,以便可以添加到垂直滚动条中)。 – 2009-07-20 09:31:22