【发布时间】:2012-09-05 20:58:44
【问题描述】:
我知道渲染透明窗口的唯一方法是调用 UpdateLayeredWindows,以防我需要渲染 D3D9 渲染目标的结果。
我必须通过调用 GetRenderTargetData 和
然后我必须通过调用 UpdateLayeredWindow 在屏幕上呈现它。
这里http://msdn.microsoft.com/en-us/library/windows/desktop/ee890072(v=vs.85).aspx 有关于如何通过“D3D9Ex Flip Mode Present to DWM”优化渲染的描述。
渲染顶级透明窗口是否有某种类似的优化?
谢谢
【问题讨论】:
-
如果您不需要逐像素 alpha,请尝试使用 SetLayeredWindowAttributes(指定 alpha 或颜色键),然后正常绘制/更新。我不知道这与 UpdateLayeredWindow 相比性能如何,但也许值得一试。
-
我想我需要每像素的 alpha。我觉得应该有类似于 WDM 优化的东西
-
This article 似乎做你想做的事。不过我没试过。
-
这是完全正确的解决方案。非常感谢。
标签: windows winapi directx directx-9