微软在Windows 7中加入了两种新的DirectX API,其中Direct2D建立在DX10.1基础上,主要用于2D矢量绘图,DirectWrite则是一套新的字体和文本渲染系统,用于在D3D/D2D目标上绘制ClearType文本,还可以在适当的条件下配合Direct2D利用GPU进行加速。
DirectWrite支持多线程渲染,且能在垂直方向上进行反锯齿,还支持亚像素精度,因此渲染速度更快、文本质量更高,而GDI是单线程的,只能在水平方向上反锯齿。换句话说,GDI使用的是整数,DirectWrite则是浮点。
DirectWrite技术架构图
GDI与DirectWrite效果对比
GDI亚像素效果
DirectWrite亚像素效果
虽然目前的Paint.NET 3.5版本还仅支持软件模式DirectWrite渲染,不过开发人员在Core i7 3.6GHz和Atom 1.6GHz系统上进行测试后表明,新API带来了明显的性能改进。你可以使用“/disableDirectWrite”命令参数禁用该功能,或者使用“/mutexName”和GDI渲染器进行对比。命令如下:
C:\>cd c:\program files\paint.net
C:\Program Files\Paint.NET>paintdotnet /mutexName=PDN35_DW
C:\Program Files\Paint.NET>paintdotnet /mutexName=PDN35_GDI /disableDirectWrite
除了DirectWirte,Paint.NET 3.5还在文本工具栏上增加了删除线效果,并解决了一些残留的文本渲染和剪切问题。