Win32:是否有使用硬件加速的替代GDI32.dll?

时间:2010-04-14 19:54:11

标签: winapi user-interface gdi+ gdi direct2d

有没有人创建GDI32.dll版本,利用机器上的硬件加速功能? gdiplus.dll

从Windows Vista开始,GDI不再是硬件加速。 (GDI +从未加速硬件)。如果没有Microsoft修复GDI(和GDI +)以便能够在计算机上运行良好:本机应用程序(C ++ MFC,Delphi等)和托管的WinForms应用程序将继续运行不良。

虽然我可以将Direct2D用于业务应用程序,但我无法控制开发环境仍然创建控件的事实,其中包含数十年的库支持代码,假设存在GDI。


Application Compatibility: Graphical Device Interface (GDI)

  

GDI原语,如LineTo和   矩形现在用软件渲染   而不是视频硬件   大大简化了显示驱动程序。

Windows And Video Memory

  

在XP中,GDI是GPU加速的   各种程度取决于如何   已配置OS或设备驱动程序   (有关详细信息,请参阅Hooking Versus Punting)。   在Vista中,GDI不是GPU加速

Comparing Direct2D and GDI

  

因此,在Windows Vista中,GDI   DDI显示驱动程序被更改为   仅由Microsoft实施   提供的驱动程序,Canonical Display   司机(CDD)。 GDI呈现给系统   内存位图。使用了脏区   更新视频内存纹理   窗口管理器使用的   合成桌面。

3 个答案:

答案 0 :(得分:3)

似乎Vista是GDI性能历史上的一个特例。 下面两篇文章都表明GDI的未来再次光明。

http://msdn.microsoft.com/en-us/library/ff729480%28VS.85%29.aspx

  

GDI是Windows上的硬件加速   XP,并在Windows 7上加速   桌面窗口管理器正在运行   并且正在使用WDDM 1.1驱动程序。   Direct2D是硬件加速的   几乎任何WDDM驱动程序,无论如何   是否正在使用DWM。在Vista上,   GDI将始终在CPU上呈现。

http://blogs.msdn.com/b/e7/archive/2009/04/25/engineering-windows-7-for-graphics-performance.aspx

  

基于实际应用   统计数据,...我们与我们合作   图形IHV合作伙伴提供   支持他们的司机加速   最常用的GDI操作。

答案 1 :(得分:1)

嗯,是的,GDI是用于渲染图形的“随时随地工作”的API。它对视频驱动程序的要求非常低。很久以前,每个人都做对了。花了一段时间,我得到了一个ATI Mach视频卡的独特记忆,让我没有遇到麻烦。它阻止我购买ATI产品很长一段时间。

每个人都在很久以前就得到了DirectX。它正在利用WPF渲染模型,它完全依赖DirectX来完成工作。 Milcore是垫片的名字。在购买WPF编程模型之前,你不会得到它。

答案 2 :(得分:1)

硬件加速是什么意思? 我的意思是,除了光栅blits之外,GDI没有做很多事情,但那些是硬件加速的。而且,鉴于Vista和Windows 7在桌面应用程序上的速度并不快,仍然是。

GDI仍然会让视频驱动程序完成所有繁重的工作,所以如果GDI没有硬件加速,那么它的驱动程序供应商就会出错,而不是GDI的。