网络上有很多文章,但仍然不清楚,因此我需要一个清晰的解释:硬件加速如何与WPF一起工作?
您的问题没有具体说明您在阅读互联网文章时困惑的内容,或者关于WPF中硬件加速的确切问题。因此,我将尝试为您提供一个一般但简化的工作原理概述。
为了获得GPU加速渲染,Windows Presentation Foundation(WPF)通过DirectX管线呈现和显示图形。 GPU或图形处理器是驱动视频卡的芯片。基本上,硬件加速可以将渲染WPF应用程序中的图形工作从计算机的主处理器(CPU)转移到视频卡的处理器(GPU)。通过使用专门设计用于渲染图形的视频卡硬件,而不是由CPU运行的软件函数,增加了应用程序图形和用户界面的性能或加速度。最终目标是使复杂的图形例程成为“渲染限制”(即受GPU功能限制),而不是“处理器限制”(即受计算机CPU能力和速度限制)。这释放了CPU执行其他工作,充分利用了您的视频卡独特的图形能力,并且每次用户升级到更新、更快、更高级的视频卡(随着其可用性而变化)时,加速应用程序的性能。
当然,这假定您的视频卡支持硬件加速。实际上,并非所有视频卡都支持,WPF通过三层方法进行适应:
如果您的视频卡不提供任何级别的硬件加速,例如,如果您运行的DirectX版本小于7.0,则WPF将退回到第0层渲染模式或软件加速。
如果您的视频卡支持部分硬件加速,例如,如果您运行的DirectX版本介于7.0和9.0之间,则WPF使用第1层渲染模式。
如果您的视频卡支持所有图形输出的完全硬件加速,对应于等于或大于9.0的DirectX版本,则WPF使用第2层渲染模式。
这个MSDN页面提供了有关这些图形渲染层及其支持硬件加速的功能和能力的更多信息。
我不知道你是否已经看过这篇博客文章,但如果你对我刚才解释的内容有更好的理解,现在再读一遍可能会更有意义。
然而,请记住,WPF的部分优势在于您不必担心此过程的细节和特殊性。 技术聪明到足以在可能的情况下使用硬件优化,而在必要时回退到基于软件的渲染。即使在具有传统视频卡的旧计算机上,您的WPF应用程序也可以运行,只是比在新客户端上慢。因此,这可能只是您在休闲娱乐之外无需担心的问题。
PolyLineTo
函数,但听起来它构造了一条线来渲染它。这将完全在CPU上完成。大多数WPF的“它是硬件加速”的卖点都是毫无意义的,因为大多数变换都必须在CPU上完成。 - Tara