我想知道DirectX 11是否允许我设置一个渲染区域,而不是渲染整个窗口。非常感谢!
ID3D11DeviceContext::RSSetViewports
和D3D11_VIEWPORT
结构体。将TopLeftX
、TopLeftY
、Width
和Height
成员设置为窗口尺寸的一部分,会导致渲染目标被绘制到后台缓冲区的该部分。
值得注意的是,如果您针对应用程序的主窗口句柄创建交换链,则这不会阻止DXGI清除整个应用程序窗口。如果您需要混合Win32控件和Direct3D内容,请专门为Direct3D内容创建一个子窗口,针对该窗口创建交换链,并将子窗口添加到主应用程序窗口中。
终于搞定了,要在您的主窗口应用程序中呈现到特定矩形区域,您首先需要创建第二个子窗口以让DirectX进行渲染,然后使用setParent()将此子窗口附加到您的主hWnd上,以仅显示一个窗口。