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

问题描述:

是否有人在那里创建了GDI32.dll版本,该版本利用了机器上可用的硬件加速功能? gdiplus.dllWin32:是否有替换使用硬件加速的GDI32.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显示驱动程序变更为 只能由微软 提供的驱动程序来实现, Canonical Display 驱动程序(CDD)。 GDI呈现给系统 内存位图。使用脏区域 来更新窗口管理器使用的视频内存纹理 与桌面组合的 。

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

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

GDI是硬件加速在Windows XP ,当 桌面窗口管理器正在运行 和WDDM 1.1驱动程序正在使用加速在Windows 7上。 Direct2D在 上硬件加速几乎所有的WDDM驱动程序,不管是否DWW正在使用 。在Vista上, GDI将始终在CPU上呈现。

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

基于现实世界的应用 统计,......我们与 图形IHV合作伙伴合作,提供他们的司机 支持,以加快 最常用的GDI操作。

+0

答案似乎是“Microsoft创建了一个使用硬件加速的GDI32.dll版本”,但您需要Windows 7和WDDM 1.1驱动程序来获取它。不是一个坏的折衷。 – 2010-08-05 15:13:52

+2

我真的可以看到Vista和7之间的GDI的性能差异,现在我的开发机器是Windows 7.我真的很高兴微软花时间再次加速GDI。我只能希望GDI +会得到同样的爱。 – 2010-09-03 23:06:59

嗯,是的,GDI是“它可以随时随地工作”的API来渲染图形。它对视频驱动程序提出了非常低的要求。每个人都很早就明白这一点。这花了一段时间,我对ATI Mach显卡有了特别的记忆,这给了我无尽的麻烦。它阻止了我购买ATI产品一段时间。

大家都很早以前就有了DirectX的权利。它正在利用WPF渲染模型,它完全依赖于DirectX来完成工作。 Milcore是垫片的名字。除非您购买WPF编程模型,否则您将无法获得。

+0

Sooo ....你是说有**是使用硬件加速的GDI版本吗? – 2010-04-15 01:52:10

+0

我是否?不,我没有。 GDI视频驱动程序界面允许优化BitBlt。那已经完成了。 – 2010-04-15 02:20:24

+1

嗯,你没有真正说出其中一种方式,除了“嗯,是的” - 这可能是对这个问题的回答,“是否有替代gdi32.dll使用硬件加速。”首先你有GDI的优点(随时随地工作,需求非常低,每个人都对,ATI不支持)。然后你谈到了DirectX(每个人都对,WPF使用,在milcore中实现)。但是你没有说过是否有使用硬件加速的GDI版本。从Vista开始,GDI不再加速:它不使用视频卡来绘制图元。 – 2010-04-15 13:20:48

硬件加速意味着什么? 我的意思是,GDI除了光栅传输外并没有做太多的事情,但那些是硬件加速的。而且,鉴于Vista和Windows 7在桌面应用方面的速度并不是非常慢,所以依然如此。如果GDI没有硬件加速,那么它的驱动程序供应商就会发生故障,而不是GDI公司。

+0

我的意思是绘制线条,矩形,填充矩形,绘制文本等.GDI不是硬件加速的;渲染在软件中发生在屏幕外的DirectX表面上。 – 2010-04-15 13:14:23

+0

GDI不是硬件加速的,这显然比较明显。像伊恩说的那样,GDI渲染发生在软件中。 – bman 2010-11-07 08:21:06