ID2D1DCRenderTarget与ID2D1HwndRenderTarget

时间:2012-11-17 09:28:12

标签: gpu gdi direct2d rendertarget

我正在尝试将一些GDI / GDI +代码移植到Direct2D,但我仍然对哪种类型的目标更好用(DC或Hwnd)感到困惑,因为我发现不同的性能取决于是否我用过Gpu。特别是,我发现了以下问题:

如果我使用DCRenderTarget,我无法使用硬件加速(或默认),因为我继续违反内存的保护区域。如果我使用HwndRenderTarget,则不会发生这种情况。

如果我使用HwndRenderTarget,一般来说一切都很好,但是如果我有很多窗口(比如按钮),我会失去对主窗口的关注,它不能识别KeyPressed消息,如果我使用Gpu,性能下降很多,并且很大程度上取决于活动目标的数量(如果我使用软件加速,则不会发生这种情况)。

有没有人遇到过同样的问题?你能推荐一些关于它的东西吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

通常,如果您希望Direct2D与GDI互操作,则应使用ID2D1DCRenderTarget,否则,请使用ID2D1HwndRenderTarget。

我不太明白你对性能的看法,你的意思是当主窗口失去焦点时表现不好吗?如果是这种情况,您可以处理窗口状态,让它在窗口失去焦点时停止渲染,例如不活动。