5
如何使用DirectX將我的對象渲染爲2個獨立窗口?DirectX11 2窗口渲染
如何使用DirectX將我的對象渲染爲2個獨立窗口?DirectX11 2窗口渲染
您需要爲每個窗口創建一個SwapChain和RenderTargetView。
1,如果你通過CreateDeviceAndSwapChain創建您的設備,你需要獲得IDXGIFactory第一
IDXGIDevice * device;
d3ddevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&device);
IDXGIAdapter * adapter;
device->GetParent(__uuidof(IDXGIAdapter), (void**)&adapter);
IDXGIFactory * factory;
adapter->GetParent(__uuidof(DDXGIFactory), (void**)&factory);
隨着DXGIFactory可以爲新窗口創建額外的swapchain
factory->CreateSwapChain(g_pd3dDevice, &sd, &g_pSwapChain2);
然後創建一個渲染目標視圖
ID3D11Texture2D* pBackBuffer = NULL;
hr = g_pSwapChain2->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
if(FAILED(hr))
return hr;
hr = g_pd3dDevice->CreateRenderTargetView(pBackBuffer, NULL, &g_pRenderTargetView);
pBackBuffer->Release();
if(FAILED(hr))
return hr;
最後只是設置你的渲染ta rget(s)並繪製一些東西!
g_immediateContext->OMSetRenderTargets(1, &g_RenderTargetView, NULL);
....
我希望這對我有幫助。
最好的問候任務:)
如果你想回答你自己的問題,你應該寫的,而不是把答案的問題的實際答案。 – Borgleader
好吧抱歉...我會記住 – Quest
不需要抱歉,我只是指出了它。 – Borgleader