8
我是這個名爲界面和DirectX的新東西。 我從某個遊戲中吸取DirectX接口,並使用DirectX繪製我自己的東西,如紋理和字體。 我的問題是:當程序調用設備的Hooked Reset Function時,我需要清除內存中的所有事物,Com接口。如果我不清楚,在重置事件被調用後,遊戲只是嘗試創建一個新的表面調用d3dDierctx9Create但它的失敗,只是出現錯誤,並關閉遊戲。如何釋放接口?
我認爲我只需要清除所有事件之前的重置事件,其解釋在Msdn上。
因此,對於directx資源,如果它們支持它,通常要麼在它們上調用'onResetDevice',要麼重新創建它們並將它們重新分配給Delphi變量。這將自動釋放原始資源,就像梅森說的那樣......您必須非常小心,不要將資源保留在另一個變量中,因爲這會阻止資源被釋放(即referenceCount> 0)。通常使用某種管理資源的包裝器對象使得這一點更容易一些。 – 2010-10-31 08:44:24