我正在尝试将一些 GDI/GDI+ 代码移植到 Direct2D,但对于哪种类型的目标更适合使用(DC 或 Hwnd)我仍然有点困惑,因为我发现不同的性能取决于我是否使用了显卡。特别是,我发现了以下问题:
如果我使用 DCRenderTarget 我不能使用硬件加速(或默认),因为我继续违反内存的保护区。如果我使用 HwndRenderTarget,这不会发生。
如果我使用 HwndRenderTarget,通常一切都很好,但如果我有很多窗口(如按钮),我会失去对主窗口的关注,它无法识别 KeyPressed 消息,并且,如果我使用 Gpu,性能下降很多并且强烈依赖于活动目标的数量(如果我使用软件加速则不会发生)。
有没有人遇到过同样的问题?你能推荐一些关于它的东西吗?
非常感谢!