对DirectWrite的具体说明:
引用:
虽然技术上叫做DirectWrite,但是实际上DirectWrite只是一种字体引擎,微软提供了DirectWrite接口和Direct2D接口,这两种接口都可以调用DirectWrite字体引擎。
如果您一直在使用日本的MacTypePatch的话,肯定会对他配置中分开的两段有印象。
比较让人恶心的是这两个引擎最终的输出结果并不一样,而且微软在Windows系统中交叉使用这两种接口,甚至是不同版本的程序使用不同的接口,这使得调整好的参数有时在另一个版本的Windows上并不适用。
在这里说一个最特殊的特例,RenderingMode=6。
根据微软说明,6=DWRITE_RENDERING_MODE_OUTLINE, Specifies that rendering should bypass the rasterizer and use the outlines directly. This is typically used at very large sizes. 即为跳过光栅器,直接输出字形,效果如下图:
QQ截图20170616094323.png
然而此参数在DirectWrite接口中效果等同于1(锯齿模式、狗牙模式),结果就是Direct2d看着很漂亮,DirectWrite哀鸿遍野……
下图为漂亮的狗牙:
QQ截图20170616094617.png
由于跳过了光栅器,所以在6模式下一律灰阶渲染。大家可以把图片放大来看就明白了。
其他参数也是同理,你总会发现都是DirectWrite,两个程序有时候效果略有差距,幸运的是差异通常还是不大的。当然Chrome这个怪胎除外。。。