对于包含大量文本的图纸,渲染 TrueType 字体会显著影响整个图纸的渲染性能。
下图展示了一张包含大约 1,800 个使用 TrueType 字体的文本实体的图纸。
上图显示了不使用三角形缓存的渲染结果。下图展示了对同一图形启用三角形缓存后的渲染结果。
如果在绘图中多次使用相同的 TrueType 字符,这些字符的细分(tessellation)可能会花费很长时间,具体取决于字符的复杂性。最初,字符以壳图元(轮廓和孔洞)的形式存储在字体缓存中。为了优化目的,壳图元可以存储三角形。因此,最终的字符矢量化无需执行细分。
OdGiContext 类的 virtual bool useTtfTriangleCache() const; 方法控制此缓存的使用。对于 Drawings SDK,为了防止 useTtfTriangleCache() 方法过载,添加了 setUseTtfTriangleCache() 方法来控制 OdGiContextForDbDatabase 类中的相应标志。因此,调用 setUseTtfTriangleCache() 足以控制此缓存的使用。
OdaMfcApp 示例应用程序包含使用此功能的示例。下图演示了如何启用或禁用三角形缓存。
此功能从 ODA SDK 21.0 版本开始提供。