При загрузке текстуры без особых проблем, ID3D11Texture2D, которую я использую для временного захвата информации D3D11_TEXTURE2D_DESC, похоже, не удаляется должным образом.
Если я не буду использовать элемент ID3D11Texture2D, я не будуутечки памяти.Когда я его использую, несмотря на то, что удаляю его после получения того, что мне нужно, он остается выключенным при использовании функции ReportLiveObjects.
Я пытался использовать свой собственный * и вручную удалял его, я пыталсяиспользуя ComPtr и пробуя различные способы освободить один из них.
Microsoft::WRL::ComPtr<ID3D11Texture2D> pTextureInterface = nullptr;
ID3D11Resource *res = nullptr;
HRESULT hres = DirectX::CreateWICTextureFromFileEx(m_pDev, const_cast<wchar_t*>(wStrAddress.c_str()), 0, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, DirectX::WIC_LOADER_IGNORE_SRGB, &res, tempTex.ReleaseAndGetAddressOf());
tempTex->GetResource(&res);
res->QueryInterface<ID3D11Texture2D>(&pTextureInterface);
D3D11_TEXTURE2D_DESC desc;
pTextureInterface->GetDesc(&desc);
RECT r;
r.left = 0;
r.top = 0;
r.right = desc.Width;
r.bottom = desc.Height;
if (pTextureInterface != nullptr)
{
pTextureInterface.ReleaseAndGetAddressOf();
pTextureInterface = nullptr;
}
if (res != nullptr)
{
res->Release();
res = nullptr;
}
Когда я создаю и использую pTextureInterface, я получаю предупреждение об утечке памяти DirectX для каждой текстуры, которую я загружаю, с Refcount 1. ЕслиЯ вообще не пытаюсь использовать pTextureInterface. У меня нет утечек, и все загружается и отображается правильно (за исключением их размеров, поскольку я вручную устанавливаю границы прямоугольника исходного изображения)
Я понимаю, что это, вероятно, некоторыекрошечный недосмотр, но я не смог найти работающего решения весь день, любая помощь будет признательна.