winapi - 比 GDI+ 更快的下一个最简单的图形渲染?

标签 winapi visual-c++ graphics gdi+

我有一个经过彻底优化的 GDI+ 程序(使用 GraphicsPathDrawLines 等进行批处理),但渲染速度仍然很慢(需要几秒钟才能绘制具有抗锯齿功能的复杂 map )。

没有办法让我的 GDI+ 更快,所以我正在寻找替代方案。

我的下一个最简单/轻量级的替代方案是什么(性能至少提高 20 倍左右),用于在屏幕上使用抗锯齿绘制线条/圆形/矩形,如果:

  • 我需要与 Windows XP 兼容吗?
  • 我不需要与 Windows XP 兼容?

  • 我现在正在研究 DirectDraw 和 Direct2D,但我什至不知道如何用它们在屏幕上绘制基本形状。我也可能会考虑 OpenGL,但我不确定从哪里开始,因为我从未使用过它。

    最佳答案

    Direct2D 几乎就像 GDI+ 的交换,只是更快更干净。绘图功能通过 ID2D1RenderTarget interface 公开.

    与 Direct2D 不同,GDI+ 不是硬件加速,因此您应该注意到渲染速度的巨大改进。抗锯齿绘图和 alpha 混合操作现在是包的一部分。

    关于winapi - 比 GDI+ 更快的下一个最简单的图形渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21510813/

    相关文章:

    r - Sweave 中的自定义图形设备

    c++ - 在 LPSTR (UNICODE) C++ 中递增元素时出错

    winapi - 如何将 IFileDialog 与 FOS_PICKFOLDER 一起使用,同时仍在对话框中显示文件名

    visual-studio - 为什么禁用在 Visual Studio 中不起作用的特定警告

    c++ - 可以从同一类型的另一个对象访问私有(private)变量吗?

    java - 启动应用程序时的空白 View (SurfaceView)

    cocoa - 在drawRect之外获取NSView的CGContextRef?

    windows - winbase.h(第 97 行)中的类似函数的宏 Yield() 是什么?

    c++ - 如何使用C++在Windows中输出和输入UTF8或UTF16 Unicode文本?

    c++ - 使用不同类型的元素构造 vector 拷贝时如何显式转换?