2012-09-05 93 views
2

我知道渲染透明窗口的唯一方法是调用UpdateLayeredWindows,这在需要渲染D3D9渲染目标的结果时非常缓慢。
我必须通过调用GetRenderTargetData和 读取渲染目标数据到系统内存,然后我必须通过调用UpdateLayeredWindow在屏幕上呈现它。渲染透明窗口

Here http://msdn.microsoft.com/en-us/library/windows/desktop/ee890072(v=vs.85).aspx 有关于如何通过“D3D9Ex翻转模式呈现给DWM”优化呈现的说明。

是否有某种类似的渲染顶级透明窗口的优化?

感谢

+1

如果您不需要每像素alpha,请尝试使用SetLayeredWindowAttributes(指定alpha或颜色键),然后按正常方式绘制/更新。与UpdateLayeredWindow相比,我不知道这将如何实现,但值得一试。 – BrendanMcK

+0

我想我需要每像素阿尔法。我憎恨那里应该有类似的WDM优化 – pkirill

+0

[本文](http://www.codeproject.com/Articles/17727/Unmanaged-Vista-Power)似乎做你想做的。我还没有尝试过。 – arx

回答

0

我已经找到了答案的评论:

article似乎做你想要什么。 感谢您的用户arx