我正准备开始一个 C++ DirectX 10 应用程序,该应用程序将由多个“面板”组成,以显示不同类型的信息。我在一个 RenderTargetView 上尝试了多个视口,并取得了一些成功。但是,我找不到关于如何一次清除单个视口的明确答案。我的应用程序中的这些面板(视口)将在某些区域重叠,所以我希望能够从“下到上”绘制它们,同时清除每个视口,这样下面板的绘图就不会显示在更高的。在 DirectX 9 中,设备对象的 Clear() 方法似乎只清除当前设置的视口。DirectX 10 使用 ClearRenderTargetView(),它清除整个绘图区域,
DirectX 10 中有没有办法只清除绘图区域内的视口/矩形?有人推测,唯一的方法可能是在该空间中绘制一个四边形。似乎另一种可能性是为每个面板设置一个单独的 RenderTargetView,但我想避免这种情况,因为它需要其他冗余资源,例如单独的深度/模板缓冲区(除非这是我的误解)。
任何帮助将不胜感激!谢谢!