DXGI_PRESENT_PARAMETERS 结构 (dxgi1_2.h)

介绍有关演示的信息,该信息可帮助操作系统优化演示文稿。

语法

typedef struct DXGI_PRESENT_PARAMETERS {
  UINT  DirtyRectsCount;
  RECT  *pDirtyRects;
  RECT  *pScrollRect;
  POINT *pScrollOffset;
} DXGI_PRESENT_PARAMETERS;

成员

DirtyRectsCount

在显示的帧的后台缓冲区中更新的已更新矩形的数目。 操作系统使用此信息来优化演示文稿。 可以将此成员设置为 0 以指示更新整个帧。

pDirtyRects

在显示的框架的后台缓冲区中更新的已更新矩形的列表。 应用程序必须更新它向运行时报告的每个矩形中的每个像素;应用程序不能假定像素是从上一帧保存的。 有关更新脏矩形的详细信息,请参阅备注。 如果 DirtyRectsCount 为 0,则可以将此成员设置为 NULL。 应用程序不得更新脏矩形之外的任何像素。

pScrollRect

指向滚动矩形的指针。 滚动矩形是上一帧的矩形,运行时位块从中传输 (位块) 内容。 运行时还使用滚动矩形来优化终端服务器和间接显示方案中的呈现。

滚动矩形还描述目标矩形,即当前框架上填充滚动内容的区域。 可以将此成员设置为 NULL ,以指示没有从上一帧滚动任何内容。

pScrollOffset

指向滚动区域的偏移量的指针,该偏移量从上一帧的源矩形 () 到当前帧) 的目标矩形 (。 可以将此成员设置为 NULL 以指示无偏移量。

注解

Present1 方法使用此结构。

滚动矩形和脏矩形列表可能会重叠。 在这种情况下,脏矩形优先。 然后,应用程序可以在滚动区域的顶部包含动态内容。 例如,应用程序可以同时滚动页面并播放视频。

下图和坐标演示了此示例。

滚动和脏矩形重叠的插图
DirtyRectsCount = 2
pDirtyRects[ 0 ] = { 10, 30, 40, 50 } // Video
pDirtyRects[ 1 ] = { 0, 70, 50, 80 } // New line
*pScrollRect = { 0, 0, 50, 70 }
*pScrollOffset = { 0, -10 }

将上一帧的各个部分和应用程序呈现的内容组合在一起,以生成操作系统在显示屏幕上显示的最终帧。 大部分窗口是从上一帧滚动的。 应用程序必须使用由于滚动而显示的新内容块更新视频帧。

虚线矩形显示当前框架中的滚动矩形。 滚动矩形由 pScrollRect 成员指定。 箭头显示滚动偏移量。 滚动偏移量由 pScrollOffset 成员指定。 填充矩形显示应用程序使用新内容更新的脏矩形。 填充矩形由 DirtyRectsCountpDirtyRects 成员指定。

DXGI_SWAP_EFFECT_DISCARDDXGI_SWAP_EFFECT_SEQUENTIAL ”选项不支持滚动矩形和偏移量。 多重采样交换链不支持脏矩形和滚动矩形。

对于 bitblt 模型和翻转模型,组合的实际实现和必要的 bitblt 是不同的。 有关这些模型的详细信息,请参阅 DXGI 翻转模型

有关翻转模型交换链和优化演示文稿的详细信息,请参阅使用翻转模型增强演示文稿、脏矩形和滚动区域

要求

要求
最低受支持的客户端 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 适用于 Windows Server 2008 R2 的Windows Server 2012和平台更新 [桌面应用 |UWP 应用]
标头 dxgi1_2.h

另请参阅

DXGI 结构