DirectX 12 Raw Write to Back Buffer In Swap Chain Then Display Frame

Perfect 21 Reputation points
2021-08-12T00:02:39.463+00:00

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?

Windows API - Win32
Windows API - Win32
A core set of Windows application programming interfaces (APIs) for desktop and server applications. Previously known as Win32 API.
2,426 questions
{count} votes