一.設備丟失 (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);
}
//繪製代碼
}
待續 吐槽下 這博客的編輯器真爛