前提・実現したいこと
DirectX12でIDXGIFactory6::CreateSwapChainForHwndによるSwapChain作成が失敗します。
なぜ失敗するかと、どこを修正するべきなのかをご教授ください。
前提として、以下の動作は確認しています。
HRESULT hresult = S_FALSE; // ■DXGIFactory作成 IDXGIFactory6* _dxgiFactory = nullptr; hresult = CreateDXGIFactory(IID_PPV_ARGS(&_dxgiFactory)); //hresult == S_OK && _dxgiFactory == 0x0005e0d0 // ■D3D12Device作成 ID3D12Device* _dev = nullptr; hresult = D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_12_1, IID_PPV_ARGS(&_dev)); //hresult == S_OK && _dxgiFactory == 0x00117380 // ■Windowクラス作成 WNDCLASSEX w = {}; w.cbSize = sizeof(WNDCLASSEX); w.lpfnWndProc = (WNDPROC)WindowProcedure; w.lpszClassName = _T("DX12Sample"); w.hInstance = GetModuleHandle(nullptr); RegisterClassEx(&w); RECT wrc = {0,0,720, 640}; AdjustWindowRect(&wrc, WS_OVERLAPPEDWINDOW, false); HWND hwnd = CreateWindow( w.lpszClassName, _T("Dx12テスト"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, wrc.right - wrc.left, wrc.bottom - wrc.top, nullptr, nullptr, w.hInstance, nullptr ); ShowWindow(hwnd, SW_SHOW); //ウィンドウが表示される //whnd == 0x001909a8 && hwnd.unused == 0 // ■SwapChainDesc作成 DXGI_SWAP_CHAIN_DESC1 swapchainDesc = {}; swapchainDesc.Width = window_width; swapchainDesc.Height = window_height; swapchainDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; swapchainDesc.Stereo = false; swapchainDesc.SampleDesc.Count = 1; swapchainDesc.SampleDesc.Quality = 0; swapchainDesc.BufferUsage = DXGI_USAGE_BACK_BUFFER; swapchainDesc.BufferCount = 2; swapchainDesc.Scaling = DXGI_SCALING_NONE; swapchainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; swapchainDesc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED; swapchainDesc.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
該当のソースコード
IDXGISwapChain4* _swapchain = nullptr; hresult = _dxgiFactory->CreateSwapChainForHwnd( _cmdQueue, hwnd, &swapchainDesc, nullptr, nullptr, (IDXGISwapChain1**)&_swapchain ); //hresultは未定義となる。 //_swapchainはNULLとなる。
試したこと
_swapchainの型をIDXGISwapChain1*に変更しても、症状は変わりませんでした。
ShowWindow(hwnd,SW_SHOW);を、該当のCreateSwapChainForHwndの後に実行しても症状は変わりませんでした。
他に確認するべきところがあればご教授ください。
補足情報(FW/ツールのバージョンなど)
VisualStudio2019(v142) Ver 4.8.03761
Visual C++ 2019 - 00435-20001-35491-AA423
DirectX12 ver26.21.14.4219
参考資料
DirectX 12の魔導書 3Dレンダリングの基礎からMMDモデルを踊らせるまで
https://www.shoeisha.co.jp/book/detail/9784798161938
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。