我正在開發一個項目,以在任何DirectX11遊戲上顯示覆蓋。現在可以在一些DX11遊戲中顯示,但在其他一些遊戲中無法顯示。DirectX11遊戲覆蓋
我使用MS Detour吸引了DX11 API IDXGISwapChain :: Present()。在函數Present()中,我設置了每個管道,調用DrawIndex和ResourceCopy將我的覆蓋貼圖更新到GPU的內存,然後調用原始Present將後臺緩衝區置於前臺緩衝區。它在Unigene和DIRT2等遊戲中運行良好,但對於LostPlanet2和DragonAge2等其他遊戲無效。
做了一些日誌記錄,結合所有DX11功能,我發現了一件有趣的事情 - 那些在調用Present之前不工作的遊戲會調用ResourceCopy和ResourceCopyRegion。
就像我以前說過的,我也在我的Present()中調用了ResourceCopy。這是它不起作用的原因嗎?我該如何解決它?
感謝, 馬歇爾
這些遊戲可能會使用延遲着色或渲染到目標,然後在調用Present時組裝最終場景。我想不出任何簡單的方法來解決這個問題。 – axon 2011-10-21 03:45:16
你有沒有在這個地方?我被困在同樣的問題,任何幫助將不勝感激。 – 2013-08-31 10:00:13