gpt4 book ai didi

c++ - DirectX11 2 窗口渲染

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:23 25 4
gpt4 key购买 nike

如何使用 DirectX 将我的对象渲染到 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,您可以为新窗口创建额外的交换链

factory->CreateSwapChain(g_pd3dDevice, &sd, &g_pSwapChain2);

然后创建渲染目标 View

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;

最后只需设置您的渲染目标并绘制一些东西!

g_immediateContext->OMSetRenderTargets(1, &g_RenderTargetView, NULL);
....

我希望这对您有所帮助。

问候 Quest :)

关于c++ - DirectX11 2 窗口渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21292996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com