2012-09-05 214 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