У меня есть приложение, которое использует DirectX12.Я хотел поддерживать полноэкранный режим в моем приложении.Однако каждый раз, когда я вызывал IDXGISwapChain :: SetFullscreenState (), я получал эту ошибку:
DXGI ERROR: IDXGISwapChain :: GetConistingOutput: Адаптер swapchain не контролирует вывод, на котором находится окно swapchain.
Код ошибки, возвращенный IDXGISwapChain :: SetFullscreenState (), был
0x887a0004
Мой компьютер имеет два графических процессора:
Intel® R Graphics 630 и
NVIDIA GeForce GTX 1060
последний был адаптером, использованным для создания устройства d3d12 при возникновении ошибки.А если бы адаптер был прежним, то ошибки не было бы.
Поток кода, использованный для создания IDXGISwapChain3, был
//variables used in the code example
ID3D12Device *pDevice;
IDXGIFactory4 *pDXGIFactory;
IDXGIAdapter *pAdapter;
ID3D12CommandQueue *pCommandQueue;
IDXGISwapChain1 *pTempSwapchain;
IDXGISwapChain3 *pSwapchain;
//the code flow
CreateDXGIFactory2();
pDXGIFactory->EnumAdapter();
D3D12CreateDevice(pAdapter, ...);
pD3DDevice->CreateCommandQueue();
pDXGIFactory->CreateSwapChainForHwnd(pCommandQueue, ..., &pTempSwapchain);
pTempSwapchain->QueryInterface(IID_PPV_ARGS(&pSwapChain));
IDXGISwapChain :: SetFullscreenState () должен успешно завершиться, но этоне удалось.