有没有人创建了一个利用机器上可用的硬件加速的GDI32.dll
版本?gdiplus.dll
?
从Windows Vista开始,GDI不再具备硬件加速功能(GDI+从未具备硬件加速功能)。除非Microsoft修复GDI(和GDI+)以便能够在计算机上良好运行:本地应用程序(C++ MFC、Delphi等)和托管WinForms应用程序将继续永远运行得很差。
虽然我可以在商业应用程序中使用Direct2D,但我无法控制开发环境仍会创建控件,并且有数十年的库支持代码,假定存在GDI。
现在,诸如LineTo和Rectangle之类的GDI基元是由软件而不是视频硬件呈现的,这极大地简化了显示驱动程序。
在XP中,GDI根据操作系统的配置或设备驱动程序的不同程度进行GPU加速(有关详细信息,请参见Hooking Versus Punting)。在Vista中,GDI没有GPU加速。
因此,在Windows Vista中,GDI DDI显示驱动程序被更改为仅由Microsoft提供的驱动程序Canonical Display Driver (CDD)实现。 GDI渲染到系统内存位图中。使用脏区域来更新视频内存纹理,窗口管理器使用该纹理合成桌面。