directx - 使用 Direct2D 更新部分屏幕

标签 directx viewport direct2d

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

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

最佳答案

文档:

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

指出

An app can use Present1 to optimize presentation by specifying scroll and dirty rectangles.

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

DXGI_PRESENT_PARAMETERS structure

关于directx - 使用 Direct2D 更新部分屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31450790/

相关文章:

c++ - 如何加速 C++ DirectX 放置像素

css - 修复浏览器中的视口(viewport)以响应站点

c++ - RenderTarget->GetSize 不工作

c++ - 一个大世界还是许多小细胞?

c++ - DirectX 11 E_INVALIDARG 在设备创建期间

directx - 从 Direct3D 纹理和表面进行回读

javascript - 如何在弹出窗口中显示移动预览

javascript - 当 block 在视口(viewport)上加载时显示加载(占位符)图像

C++ 在 Direct2D 设备中绘制圆弧

c++ - Direct2D、Directx11on12 示例 VSYNC 问题