DirectX接口释放的问题???(50分)

  • 主题发起人 主题发起人 林枫
  • 开始时间 开始时间

林枫

Unregistered / Unconfirmed
GUEST, unregistred user!
接口释放的问题,看这个函数:
void CBarrier::Setup(LPDIRECT3DDEVICE9 d3dDevice, ID3DXEffect* pEffect)
{
// 这时的d3dDevice接口引用数为0
m_pDevice = d3dDevice;

LoadBarrierMesh();
// 装载mesh数据,这个函数只调用一次D3DXLoadMeshFromX函数
// 这时的d3dDevice接口引用数为4
m_pDevice->Release();
m_pDevice->Release();
m_pDevice->Release();
m_pDevice->Release();
m_pDevice = NULL;

}
为什么要释放这么多次接口,才能归0???
HRESULT CBarrier::LoadBarrierMesh()
{
HRESULT hr = 0;
ID3DXBuffer* adjBuffer = 0;
ID3DXBuffer* mtrlBuffer = 0;
DWORD numMtrls = 0;

// 装载mesh数据
hr = D3DXLoadMeshFromX(
L"Barrier.X",
D3DXMESH_MANAGED,
m_pDevice,
&adjBuffer,
&mtrlBuffer,
0,
&numMtrls,
&m_BarrierMesh
);
SAFE_RELEASE(adjBuffer);
SAFE_RELEASE(mtrlBuffer);

return S_OK;
}
 
后退
顶部