Win32:是否有替换使用硬件加速的GDI32.dll?
是否有人在那里创建了GDI32.dll
版本,该版本利用了机器上可用的硬件加速功能? gdiplus.dll
?Win32:是否有替换使用硬件加速的GDI32.dll?
从Windows Vista开始,GDI不再是硬件加速的。 (GDI +从未硬件加速)。如果没有Microsoft修复GDI(和GDI +)能够在计算机上运行良好:本地应用程序(C++ MFC,Delphi等)和托管的WinForms应用程序将继续运行得很差。
虽然我可能使用Direct2D的业务应用程序,我无法控制的事实,即开发环境仍然创建控件,数十年的库支持代码,假设存在的GDI。
Application Compatibility: Graphical Device Interface (GDI):现在
GDI基元如lineTo和 矩形呈现在软件 而不是视频的硬件,这 大大简化显示驱动程序。
在XP GDI是GPU加速到 不同程度根据如何 OS被配置或设备驱动程序 (详见Hooking Versus Punting)。 在Vista中,GDI是不是GPU加速
其结果是,在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操作。
嗯,是的,GDI是“它可以随时随地工作”的API来渲染图形。它对视频驱动程序提出了非常低的要求。每个人都很早就明白这一点。这花了一段时间,我对ATI Mach显卡有了特别的记忆,这给了我无尽的麻烦。它阻止了我购买ATI产品一段时间。
大家都很早以前就有了DirectX的权利。它正在利用WPF渲染模型,它完全依赖于DirectX来完成工作。 Milcore是垫片的名字。除非您购买WPF编程模型,否则您将无法获得。
Sooo ....你是说有**是使用硬件加速的GDI版本吗? – 2010-04-15 01:52:10
我是否?不,我没有。 GDI视频驱动程序界面允许优化BitBlt。那已经完成了。 – 2010-04-15 02:20:24
嗯,你没有真正说出其中一种方式,除了“嗯,是的” - 这可能是对这个问题的回答,“是否有替代gdi32.dll使用硬件加速。”首先你有GDI的优点(随时随地工作,需求非常低,每个人都对,ATI不支持)。然后你谈到了DirectX(每个人都对,WPF使用,在milcore中实现)。但是你没有说过是否有使用硬件加速的GDI版本。从Vista开始,GDI不再加速:它不使用视频卡来绘制图元。 – 2010-04-15 13:20:48
硬件加速意味着什么? 我的意思是,GDI除了光栅传输外并没有做太多的事情,但那些是硬件加速的。而且,鉴于Vista和Windows 7在桌面应用方面的速度并不是非常慢,所以依然如此。如果GDI没有硬件加速,那么它的驱动程序供应商就会发生故障,而不是GDI公司。
我的意思是绘制线条,矩形,填充矩形,绘制文本等.GDI不是硬件加速的;渲染在软件中发生在屏幕外的DirectX表面上。 – 2010-04-15 13:14:23
GDI不是硬件加速的,这显然比较明显。像伊恩说的那样,GDI渲染发生在软件中。 – bman 2010-11-07 08:21:06
答案似乎是“Microsoft创建了一个使用硬件加速的GDI32.dll版本”,但您需要Windows 7和WDDM 1.1驱动程序来获取它。不是一个坏的折衷。 – 2010-08-05 15:13:52
我真的可以看到Vista和7之间的GDI的性能差异,现在我的开发机器是Windows 7.我真的很高兴微软花时间再次加速GDI。我只能希望GDI +会得到同样的爱。 – 2010-09-03 23:06:59