DirectX 11渲染到特定区域

时间:2018-11-13 18:45:45

标签: c++ render directx-11

我只是想知道DirectX 11是否允许我设置要渲染的区域而不是渲染整个窗口。 非常感谢!

2 个答案:

答案 0 :(得分:2)

是的,请使用ID3D11DeviceContext::RSSetViewportsD3D11_VIEWPORT结构。将TopLeftXTopLeftYWidthHeight成员设置为窗口尺寸的一部分将使渲染目标被绘制到后缓冲区的该部分中。 / p>

值得注意的是,如果您针对应用程序的主窗口句柄创建交换链,这不会阻止DXGI清除整个应用程序窗口。如果需要混合Win32控件和Direct3D内容,请创建专门用于Direct3D内容的子窗口,针对该窗口创建交换链,然后将该子窗口添加到主应用程序窗口中。

答案 1 :(得分:0)

最后得到它,因此可以渲染到主窗口应用程序的特定矩形区域。首先,您需要创建第二个childhWnd以允许DirectX渲染,然后使用setParent()将这个childhWnd附加到您的主hWnd上,以总共仅显示一个窗口。