C#本身是否使用GPU进行图形处理?

时间:2015-07-21 14:15:41

标签: c# graphics gpu

我想以最快的方式绘制大量使用图形。如果我使用标准的C#图形回调(es.graphics.drawline),我做得对吗?或者我要使用不同的库?

1 个答案:

答案 0 :(得分:7)

Graphics.DrawLine是GDI +电话。如果您正在使用Windows窗体并使用System.Drawing类进行绘图,那么您使用的是GDI +,它不是硬件加速的。要获得硬件加速,您需要使用WPF代替WinForms或使用Direct3D / Direct2D进行绘制。后两者(Direct3D / Direct2D)是基于COM的,所以你需要一个.NET包装器。微软用Managed DirectX和XNA包装Direct3D for .NET。两者(我相信)现已弃用。对于更新的DirectX库,还有third-party wrappers

编辑:我刚刚从@ HansPassant的评论中了解到GDI +是2D加速的。我认为这只适用于GDI(而不是GDI +),因为GDI +处理的事情就像抗锯齿一样(据我所知)2D硬件没有做到。但显然我错了。