|
创建D3D12 | 逻辑型 | |
|
窗口句柄 | 整数型 | | | |
pd3dDevice | ID3D12Device | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
FeatureLevel | 整数型 | | |
dxgiFactory4 | IDXGIFactory4 | | |
pd3dCommandQueue | ID3D12CommandQueue | | |
swapChain1 | | | |
desc_q | D3D12_COMMAND_QUEUE_DESC | | |
sd1 | DXGI_SWAP_CHAIN_DESC1 | | |
sd | DXGI_SWAP_CHAIN_DESC | | |
ok | 整数型 | | |
FeatureLevel =
#D3D_FEATURE_LEVEL_11_0
如果真 (D3D12CreateDevice (0, FeatureLevel, pd3dDevice.
uuid (), pd3dDevice.
地址 ()) ≠ 0
)
调试输出 (“创建设备失败”)
返回 (假)
desc_q.Type = 0 desc_q.Flags = 0 desc_q.NodeMask = 1
如果真 (pd3dDevice.
CreateCommandQueue (desc_q, pd3dCommandQueue.
uuid (), pd3dCommandQueue.
地址 ()) ≠ 0
)
调试输出 (“创建命令队列失败 ”)
返回 (假)
如果真 (CreateDXGIFactory1 (dxgiFactory4.
uuid (), dxgiFactory4.
地址 ()) ≠ 0
)
调试输出 (“创建DXGI失败”)
返回 (假)
RtlZeroMemory_DXGI_SWAP_CHAIN_DESC1 (sd1,
取数据结构大小 (sd1
))
sd1.BufferCount = 2
sd1.Width = 0 sd1.Height = 0 sd1.Format = 28 sd1.Flags = 64 sd1.BufferUsage = 32 sd1.SampleDesc.Count = 1
sd1.SampleDesc.Quality = 0
sd1.SwapEffect = 4 sd1.AlphaMode = 0 sd1.Scaling = 0 sd1.Stereo = 假
ok = dxgiFactory4.
CreateSwapChainForHwnd (pd3dCommandQueue, 窗口句柄, sd1, , , swapChain1
)调试输出 (“创建交换链 -》 ”, ok = 0,
“错误代码:” +
到文本 (ok
),
#DXGI_ERROR_INVALID_CALL )RtlZeroMemory_DXGI_SWAP_CHAIN_DESC (sd,
取数据结构大小 (sd
))
sd.BufferCount = 2
sd.BufferDesc.Width = 0
sd.BufferDesc.Height = 0
sd.BufferDesc.Format = 28 sd.BufferDesc.RefreshRate.Numerator = 60
sd.BufferDesc.RefreshRate.Denominator = 1
sd.Flags = 2 sd.BufferUsage = 32 sd.OutputWindow = 窗口句柄
sd.SampleDesc.Count = 1
sd.SampleDesc.Quality = 0
sd.Windowed = 真
sd.SwapEffect = 0 ok = dxgiFactory4.
CreateSwapChain (pd3dCommandQueue, sd, swapChain1
)调试输出 (“创建交换链 -》 ”, ok = 0,
“错误代码:” +
到文本 (ok
),
#DXGI_ERROR_INVALID_CALL )返回 (真)