游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1135|回复: 0

D3D接口释放的问题???

[复制链接]

36

主题

102

帖子

155

积分

注册会员

Rank: 2

积分
155
QQ
发表于 2006-8-13 04:00:00 | 显示全部楼层 |阅读模式
接口释放的问题,看这个函数:
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:oadBarrierMesh()
{
        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;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 02:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表