D3DHook實際應用中的問題處理

一.設備丟失 (Device Lost)

當最小化D3D窗口、全屏切換出或者調整分辨率時,會產生的問題,需要在所Hook的Present繪製前進行相關的處理。


1.檢測Device Lost

我們需要調用類函數CreateDevice的參數 pPresentationParameters->TestCooperativeLevel,返回值爲0是正常,其他值爲Device Lost事件。

2.處理Device Lost

當Device Lost發生以後基於pDxdevice創建的貼圖、場景、字體等,均無法使用,需要釋放並重新創建

可以看下面的僞代碼理解

int NewPresent(...)
{
     if (設備丟失)
     {
      //釋放資源
      //創建資源
      //return call(OldPresent);
     }
     //繪製代碼
}

待續 吐槽下 這博客的編輯器真爛

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章