[返回博客](/cn/blog) # 使用三角形缓存提高 TrueType 字体矢量化性能

Sergey Zaitsev 九月 10, 2020 [\#getting started](/cn/blog/tag/getting-started)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

对于包含大量文本的图纸，渲染 TrueType 字体会显著影响整个图纸的渲染性能。

下图展示了一张包含大约 1,800 个使用 TrueType 字体的文本实体的图纸。

![triangle cache example](/files/inline-images/1800%20text%20entities%20in%20one%20picture%20example.png)上图显示了不使用三角形缓存的渲染结果。下图展示了对同一图形启用三角形缓存后的渲染结果。

![result](/files/inline-images/result%20using%20triangle%20cache.png)如果在绘图中多次使用相同的 TrueType 字符，这些字符的细分（tessellation）可能会花费很长时间，具体取决于字符的复杂性。最初，字符以壳图元（轮廓和孔洞）的形式存储在字体缓存中。为了优化目的，壳图元可以存储三角形。因此，最终的字符矢量化无需执行细分。

OdGiContext 类的 virtual bool useTtfTriangleCache() const; 方法控制此缓存的使用。对于 Drawings SDK，为了防止 useTtfTriangleCache() 方法过载，添加了 setUseTtfTriangleCache() 方法来控制 OdGiContextForDbDatabase 类中的相应标志。因此，调用 setUseTtfTriangleCache() 足以控制此缓存的使用。

OdaMfcApp 示例应用程序包含使用此功能的示例。下图演示了如何启用或禁用三角形缓存。

![The OdaMfcApp sample application contains an example](/files/inline-images/instruction.png)此功能从 ODA SDK 21.0 版本开始提供。

## 今天就开始行动

**免费试用 ODA 软件 60 天。  
无风险，无需信用卡。**

[免费试用](https://www.opendesign.com/cn/free-trial)
