基本上我想要做的就是迫使其採用了Direct3D9Ex
背景(CreateD3D9Ex)
但一個簡單的「非恩」設備(IDirect3DDevice9)
使用Direct3DDevice9Ex
,而不是一個封閉源代碼的應用程序是什麼。 我在應用程序目錄中放置了一個代理dll,它通常工作正常。現在我試圖將CreateDevice
的調用重定向到原始dll的CreateDeviceEx
,然後返回一個「非ex」指針(以便應用程序在不知道它的情況下使用「Ex」設備)。隊封閉源代碼的應用程序使用Direct3DDevice9Ex代替非防爆設備的
根據我的理解,這應該工作,因爲「Ex」設備實現了「非ex」設備也包含的所有方法 - 但顯然必須有一些差異,因爲只有隱藏的「Ex」設備正在使用的是光標。
問:有人能告訴我我做錯了什麼或給出一些建議嗎?
背景
我使用的是D3D9
應用程序,我要複製的深度緩衝。不幸的是,它的格式是D24S8
,這意味着直接複製是不可能的。
因此,我決定嘗試創建共享深度/模板1級紋理,然後使用D3D10/D3D11
方法訪問此紋理,該方法實際上能夠複製深度/模板表面。然而,只有D3D9Ex
設備能夠創建紋理與共享手柄...
附錄
由於這樣的事實Direct3D9Ex不支持管理池是不可能的。謝謝@VuVirt
好吧,我沒有想到那一部分。那麼,下一個方法的時間;)無論如何,謝謝。 – Apollo13