我目前正在使用DirectX在C++中进行游戏。引擎是由我的学校的教授给我们的,我一直在检查引擎中的内存泄漏,我相信我已经将他们追溯到这种方法。首先,它甚至没有被调用,现在它被称为我不确定这是否是完全删除和清理DirectX加载的纹理的正确方法。在C++中清理DirectX纹理
这里正在呼吁TextureManager
方法:
void DirectXTextureManager::clear()
{
map<wchar_t*, LPDIRECT3DTEXTURE9>::iterator it;
map<wchar_t*, LPDIRECT3DTEXTURE9>::iterator itToErase;
it = textures->begin();
while (it != textures->end())
{
wchar_t *keyToDelete = (*it).first;
LPDIRECT3DTEXTURE9 textureToDelete = (*it).second;
itToErase = it;
it++;
textures->erase(itToErase);
delete keyToDelete;
textureToDelete->Release();
textureToDelete = NULL;
}
stringTable->emptyStringTable();
}
我认为这也可能是对emptyStringTable()的调用。 – twsaef