IDirect3DVertexDeclaration9
函数分配的两个对象FindNextValidTechnique()
被释放但没有被销毁。在 PIX 中,“App Refs”状态为“0”,但“Destruction”状态为“Never”。- 应用程序分配的
IDirect3DIndexBuffer9
对象被释放但不被销毁。在 PIX 中,“App Refs”状态为“0”,但“Destruction”状态为“Never”。调用函数后SetIndices(NULL)
,索引缓冲区的内存泄漏消失了。 - 函数分配的一个
IDirect3DVertexShader9
和一个对象被释放但不被销毁。在 PIX 中,“App Refs”状态为“0”,但“Destruction”状态为“Never”。但是,在我调用and之后,两者的内存泄漏就消失了。IDirect3DPixelShader9
D3DXCreateEffect()
SetVertexShader(NULL)
SetPixelShader(NULL)
IDirect3DSwapChain9
分配有该函数的对象CreateAdditionalSwapChain()
被释放但不被销毁。GetBackBuffer()
曾经调用过,但 Surface 稍后发布。在 PIX 中,它们的“App Refs”状态为“0”,但它们的“Destruction”状态为“Never”。- 当然,
IDirect3DDevice9
andIDirect3D9
对象被释放但没有被销毁。
我检查了 PIX 和应用程序中所有对象的引用计数。它们都是0。我不知道为什么仍然会发生内存泄漏。我不认为SetIndices(NULL)
等是必要的。有人可以给我一些建议吗?谢谢你。