【问题标题】:Graphics performance improvement / GDI alternative?图形性能提升/GDI 替代方案?
【发布时间】:2012-06-06 10:57:23
【问题描述】:

任何人都可以建议 GDI 的任何替代方案吗? 原因是我有快速更新的数据,而 GDI 不支持那种渲染速度……我试过 SharpDX 和 SlimDX,但似乎没有一个能正常工作(不能强迫他们在没有错误的情况下绘制表格)

更新 1:我正在使用 C# 进行开发

更新 2: 数据绑定到 Visual Studio 2010 默认的 Charts 控件。已经编写了很多代码来添加功能,并且在大量数据传入后发现了滞后。原因是我需要与 .NET Framework 4 和 Windows XP 及更高版本兼容。 经过一番调查,我发现 SlimDX 和 SharpDX 对显卡、驱动程序以及在 Windows XP 上运行的问题都有严格的要求。

【问题讨论】:

  • 您确定瓶颈是 GDI,而不是 .net?你是如何调用 GDI 函数的?
  • 是的,我敢肯定,因为只有在涉及图形时它才会开始降低性能......
  • 这不是一回事。位于您的代码和 Win32 GDI API 之间的 .net 层很容易成为瓶颈。您是否尝试过制作一个执行相同 GDI 操作的小型 C/C++ 示例并对其进行测试以查看它是否也很慢?

标签: c# performance gdi slimdx sharpdx


【解决方案1】:

GDI 是纯软件渲染,以及处理 Alpha 通道以进行透明度渲染的 GDI+。与基于 GPU 的库相比,这两个库非常有限且速度较慢。

我的建议是你应该花时间来实现一个基于 SharpDX Direct2D 的绘图引擎。我从来没有听说过你谈到的表单问题,我将 SharpDX 与 Winforms 和 WPF 一起使用,一切都很好!

如果速度是最重要的标准,那么您将不得不在基于 GPU 的渲染引擎上投入时间,GDI 速度较慢且不适合实时渲染。

【讨论】:

    【解决方案2】:

    老实说,我觉得奇怪的是 GDI 在这种情况下还不够用,但有很多选择:你可以选择 DirectDraw 以获得完整的功能,GDI+ 可以获得更高级的操作和选项,甚至是 GTK+ 等外部软件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 2011-05-13
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多