私はdirectX APIを使ってプログラムを書いています。DXUTを使い始めました。directX デバイスの参照カウントを制御しようとすると問題が発生します。D3DXCreateMesh()、D3DXCreateTextureFromFile()、または IDirect3DDevice9::CreateVertexBuffer() を呼び出すたびに、参照がデバイスに追加されるようです。「SYSTEMMEM」フラグを使用して、新しく作成されたオブジェクト (メッシュ、テクスチャ、または頂点バッファー) をデバイスの割り当て内に格納するのではなく、システムのメモリに格納しようとしました。デバイスへの参照を追加した呼び出しの例を次に示します...
DWORD dwNumFaces = 1, dwNumVertices = 3, dwOptions |= D3DXMESH_SYSTEMMEM;
D3DVERTEXELEMENT9 mesh_decl
{
...
}
ID3DXMESH *pMesh = NULL;
D3DXCreateMesh(dwNumFaces, dwNumVertices, dwOptions, mesh_decl, m_pd3dDevice, &pMesh);
この問題に関するアイデアや情報へのリンクはありますか? これは予想されることですか?これまでの解決策は、上記の関数を呼び出すたびに直接デバイスを解放することでした (m_pd3dDevice->Release())。DXUT がデバイスを解放しようとすると、デバイスの参照カウントが 0 より大きいことを示すエラーがスローされます。