DirectX12环境配置(1)
开发环境:visual studio 2022
第一种配置DirectX12环境得方式。首先创建一个c++得空项目,然后创建一个main.cpp文件。把下面这串代码放进去,先不用管这串代码什么意思,后面会逐行逐句得讲解,因为我们创建得是空项目,默认就是控制台项目,我们需要将项目改成窗体项目,在属性-》连接器-》系统选项里面更改为窗口项目就可以了。
#pragma comment(lib,"d3dcompiler.lib")
#pragma comment(lib, "D3D12.lib")
#pragma comment(lib, "dxgi.lib")
#include <Windows.h>
#include <d3d12.h>
#include <dxgi1_6.h>LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{// 创建窗口HWND hwnd;WNDCLASSEX wc = {};wc.cbSize = sizeof(WNDCLASSEX);wc.style = CS_HREDRAW | CS_VREDRAW;wc.lpfnWndProc = WindowProc;wc.hInstance = hInstance;wc.hCursor = LoadCursor(NULL, IDC_ARROW);wc.lpszClassName = L"DirectX12Sample";RegisterClassEx(&wc);RECT windowRect = { 0, 0, 800, 600 };AdjustWindowRect(&windowRect, WS_OVERLAPPEDWINDOW, FALSE);hwnd = CreateWindowEx(0, L"DirectX12Sample", L"DirectX 12 Sample", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,windowRect.right - windowRect.left, windowRect.bottom - windowRect.top, NULL, NULL, hInstance, NULL);// 初始化 DirectX 12ID3D12Device* pDevice;ID3D12CommandQueue* pCommandQueue;//HRESULT WINAPI D3D12CreateDevice(// _In_opt_ IUnknown * pAdapter,// D3D_FEATURE_LEVEL MinimumFeatureLevel,// _In_ REFIID riid, // Expected: ID3D12Device// _COM_Outptr_opt_ void** ppDevice);D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&pDevice));D3D12_COMMAND_QUEUE_DESC queueDesc = {};queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT;pDevice->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&pCommandQueue));// 显示窗口ShowWindow(hwnd, nCmdShow);// 主消息循环MSG msg = {};while (true){if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){TranslateMessage(&msg);DispatchMessage(&msg);if (msg.message == WM_QUIT)break;}// 渲染逻辑// 在此处执行绘制命令// 交换前后缓冲区// pCommandQueue->Present();// 在这里添加帧同步逻辑,确保帧速率}// 清理资源// 释放 DirectX 12 对象return static_cast<int>(msg.wParam);
}LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_DESTROY:PostQuitMessage(0);return 0;default:return DefWindowProc(hwnd, uMsg, wParam, lParam);}
}
第二种配置方式是通过visual studio来配置。
首先还是跟上面一样,先创建一个空项目。然后在属性里面进行配置。
1.选择VC++目录,然后点击包含目录,包含:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared和
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um两个文件夹(注意10.0.19041.0是我电脑上面的版本,大家的可能不一样),最后点击确定。
2.点击库目录,添加相应的库,我们需要添加的库文件夹为:
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64。
然后点击确定就可以了
3.添加了库目录,我们还需要添加附加依赖项,所以选择链接器,然后选择输入,最后点击附加依赖项,输入d3d12.lib、dxgi.lib和d3dcompiler.lib,设置好了就可以点击确定了。
将上面环境配置好之后,同样将控制台项目更改为窗体项目,将上面这串代码复制进去,能运行就说明环境配置好了。