DirectX11 ReportLiveObjects Instantiation

Страница MSDN для объектов ReportLiveObjects

Я не уверен, как вызвать метод ReportLiveObjects, поскольку классы, которые я пытаюсь объявить, являются абстрактными, или в случае IDXGIDebug «undeclared» (я думаю, что мне не хватает файла заголовка?).

Вот фрагменты.

    ID3D11Debug *debugDev = new ID3D11Debug();
debugDev->ReportLiveDeviceObjects( D3D11_RLDO_DETAIL );

Приведенный выше код говорит мне, что класс абстрактный, поэтому я не могу создать объект.

IDXGIDebug debugDev = new IDXGIDebug();

Приведенный выше код говорит мне, что IDXGIDebug не объявлен.

Заголовочный файл «DXGI» был включен. Слой отладки включен.

Любая помощь будет оценена.

3

Решение

Конечно, вы не можете создать ID3D11Debug интерфейс напрямую.

Первый шаг — создать свой ID3D11Device с D3D11_CREATE_DEVICE_DEBUG флаг, вот так:

creationFlags = 0;

#ifdef _DEBUG
creationFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif

D3D11CreateDevice(...);

Тогда вы должны запросить ID3D11Debug Интерфейс от вашего устройства, как это:

m_d3dDevice->QueryInterface(__uuidof(ID3D11Debug), reinterpret_cast<void**>(&m_d3dDebug));

Две полезные ссылки об уровне отладки D3D:

http://msdn.microsoft.com/en-US/library/windows/desktop/jj200584(v=vs.85).aspx
http://blogs.msdn.com/b/chuckw/archive/2012/11/30/direct3d-sdk-debug-layer-tricks.aspx

7

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

Других решений пока нет …

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