D3D течет, но это потому, что у меня есть ссылки в глобальных объектах?

Я получаю отчеты об утечке устройства (и диалог ненулевого количества ссылок) из среды отладки D3D11. У меня есть два глобальных класса, которые содержат умные указатели на буфер макета, вершинный шейдер и пиксельный шейдер.

Если я установлю точку останова на деструктор этих классов, я смогу увидеть отчеты об утечках до того, как эти глобальные переменные будут даже удалены, возможно, как и следовало ожидать.

Как правильно исправить это, сохраняя при этом глобальность (пока)? Я планировал добавить функцию «очистки», которая освобождает все вручную во время выключения, а не полагаться на умные указатели, но это похоже на хак.

0

Решение

Да, это немного раздражает. Традиционно я документирую, а затем игнорирую эти ложные срабатывания. Но если вы хотите обойти это, сброс умных указателей в нижней части main вероятно сделаю работу.

Знаешь, если другие объекты со статической продолжительностью хранения не полагаются на эти классы. Они не правы?

0

Другие решения


По вопросам рекламы [email protected]