Directx 使用Direct2D更新部分屏幕

Directx 使用Direct2D更新部分屏幕,directx,viewport,direct2d,Directx,Viewport,Direct2d,我使用Direct2D绘制了一个包含一些形状的视口。当我更改某些内容时,例如,我将矩形填充从红色设置为绿色,我首先清除渲染目标,然后再次绘制具有新属性的所有形状 既然我知道我修改的矩形的位置和面积,有没有办法只清除和重新绘制已更新的区域,而不是重新绘制我所有的一千个形状?以下文档: IDXGISwapChain1::Present1( UINT SyncInterval, UINT PresentFlags,

我使用
Direct2D
绘制了一个包含一些形状的视口。当我更改某些内容时,例如,我将矩形填充从红色设置为绿色,我首先清除渲染目标,然后再次绘制具有新属性的所有形状

既然我知道我修改的矩形的位置和面积,有没有办法只清除和重新绘制已更新的区域,而不是重新绘制我所有的一千个形状?

以下文档:

IDXGISwapChain1::Present1(
UINT                    SyncInterval,
UINT                    PresentFlags,      
[in] const DXGI_PRESENT_PARAMETERS *pPresentParameters);
声明

应用程序可以使用Present1通过指定滚动和脏矩形来优化演示文稿

有关修改的矩形的信息通过*pPresentParameters参数提供。详情请参阅: