In Windows 10 app, I need to raw write pixels color values to Swap Chain Back Buffer, then display frame of the back buffer.
void InitDirectX()
{
IDXGIFactory7* factory;
HRESULT hr;
hr = CreateDXGIFactory1(__uuidof(IDXGIFactory7), (void**)(&factory) );
IDXGIAdapter1* adapter;
hr = factory->EnumAdapters1(0, &adapter);
ID3D12Device* device;
hr = D3D12CreateDevice(adapter, D3D_FEATURE_LEVEL_12_0, _uuidof(ID3D12Device), (void**)&device);
ID3D12CommandQueue* commandQueue;
D3D12_COMMAND_QUEUE_DESC queueDesc = {};
queueDesc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE;
queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT;
hr = device->CreateCommandQueue(&queueDesc, __uuidof(ID3D12CommandQueue), (void**)&commandQueue);
IDXGISwapChain3* swapChain;
DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {};
swapChainDesc.Width = 0;
swapChainDesc.Height = 0;
swapChainDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
swapChainDesc.Stereo = FALSE;
DXGI_SAMPLE_DESC sampleDesc = {};
sampleDesc.Count = 1;
sampleDesc.Quality = 0;
swapChainDesc.SampleDesc = sampleDesc;
swapChainDesc.BufferUsage = DXGI_USAGE_BACK_BUFFER;
swapChainDesc.BufferCount = 2;
swapChainDesc.Scaling = DXGI_SCALING_NONE;
swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE;
swapChainDesc.Flags = 0;
hr = factory->CreateSwapChainForHwnd(commandQueue, Hwnd, &swapChainDesc, NULL, NULL, (IDXGISwapChain1**)&swapChain);
}
How do I proceed from the Swap Chain?