使用directX时,正确的方式来释放GPU内存?

时间:2014-04-14 01:43:05

标签: memory directx

我一直在研究一些directX教程。他们都提到D3DXCreateTextureFromFileEx

用于将图像从文件加载到视频内存中。然而,没有人(我已经看过)谈论如何释放内存。我可以在返回的指针上调用free()吗?

1 个答案:

答案 0 :(得分:2)

与几乎所有的DirectX API一样,当您创建新对象时,它将作为指向COM接口的指针返回。在您的情况下,您将获得指向IDirect3DTexture9接口的指针。

如果要释放这些资源,可以使用普通的COM方法来处理引用计数的接口,方法是在指针上调用Release()

IDirect3DDevice9 *pTexture = NULL;
D3DXCreateTextureFromFileEx( /* ... */, &pTexture);

// ... use the texture .....

// release interface
pTexture->Release();
pexture = NULL;