0

DirectX11 で設計しているレンダラーでは、いつでもスワップ チェーンを作成できる必要がありますが、使用するメソッドは CreateSwapChain() 呼び出しでクラッシュします。

    IDXGIDevice * device;
    HR(d3ddevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&device));

    IDXGIAdapter * adapter;
    HR(device->GetParent(__uuidof(IDXGIAdapter), (void**)&adapter));

    IDXGIFactory * factory;
    HR(adapter->GetParent(__uuidof(IDXGIAdapter), (void**)&factory));

    IDXGISwapChain* swapChain = 0;
    HR(factory->CreateSwapChain(_device->GetContent(), &description, &swapChain));

d3ddevice は ID3D11Device へのポインターであり、完全に初期化され、すべてがテストされています。description は DXGI_SWAP_CHAIN_DESC 構造体で、各フィールドが入力されています。ただし、関数は E_NOINTERFACE を返します。私のシステムはシェーダー モデル 5/directx 11 をサポートしています。

4

1 に答える 1

4

IDXGIAdapterのクエリを実行するときに、次の UUID を使用していIDXGIFactoryます。

IDXGIFactory * factory;
HR(adapter->GetParent(__uuidof(IDXGIAdapter), (void**)&factory));

に変更してみてください_uuidof(IDXGIFactory)

于 2013-03-29T00:10:05.470 に答える