DXGI_OUTDUPL_FRAME_INFO 结构 (dxgi1_2.h)
DXGI_OUTDUPL_FRAME_INFO结构描述当前桌面映像。
语法
typedef struct DXGI_OUTDUPL_FRAME_INFO {
LARGE_INTEGER LastPresentTime;
LARGE_INTEGER LastMouseUpdateTime;
UINT AccumulatedFrames;
BOOL RectsCoalesced;
BOOL ProtectedContentMaskedOut;
DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
UINT TotalMetadataBufferSize;
UINT PointerShapeBufferSize;
} DXGI_OUTDUPL_FRAME_INFO;
成员
LastPresentTime
桌面映像的上次更新的时间戳。 操作系统调用 QueryPerformanceCounter 函数来获取该值。 零值表示自应用程序上次调用 IDXGIOutputDuplication::AcquireNextFrame 方法以获取桌面映像的下一帧以来未更新桌面映像。
LastMouseUpdateTime
上次更新鼠标的时间戳。 操作系统调用 QueryPerformanceCounter 函数来获取该值。 零值表示自上次调用 IDXGIOutputDuplication::AcquireNextFrame 方法以获取桌面图像的下一帧的应用程序以来,鼠标的位置或形状未更新。 始终为鼠标更新提供鼠标位置。 新的指针形状由 PointerShapeBufferSize 成员中的非零值指示。
AccumulatedFrames
自调用应用程序处理最后一个桌面映像以来,操作系统在桌面映像图面中累积的帧数。 有关此数字的详细信息,请参阅备注。
RectsCoalesced
指定操作系统是否通过合并脏区域来累积更新。 因此,脏区域可能包含未修改的像素。 如果累积脏区域,则为 TRUE;否则为 FALSE。
ProtectedContentMaskedOut
指定桌面映像是否可能包含桌面映像中已黑屏的受保护内容。 如果受保护的内容已被黑屏,则为 TRUE;否则为 FALSE。 应用程序可以使用此信息通知远程用户某些桌面内容可能受保护,因此不可见。
PointerPosition
一个 DXGI_OUTDUPL_POINTER_POSITION 结构,当 LastMouseUpdateTime 成员为非零值时描述最近的鼠标位置;否则,将忽略此值。 此值提供绘制指针形状左上角的位置的坐标;此值不是热点的桌面位置。
TotalMetadataBufferSize
用于存储此帧的所有桌面更新元数据的缓冲区的大小(以字节为单位)。 有关此大小的详细信息,请参阅备注。
PointerShapeBufferSize
用于保存鼠标形状的新像素数据的缓冲区的大小(以字节为单位)。 有关此大小的详细信息,请参阅备注。
备注
非零 LastMouseUpdateTime 指示对鼠标指针位置或鼠标指针位置和形状的更新。 也就是说,鼠标指针位置对于非零 LastMouseUpdateTime 始终有效;但是,应用程序必须检查 PointerShapeBufferSize 成员的值,以确定形状是否也已更新。
如果只更新了指针 (即未更新桌面映像) ,则 AccumulatedFrames、 TotalMetadataBufferSize 和 LastPresentTime 成员将设置为零。
AccumulatedFrames 值 1 表示应用程序在显示新的桌面图像之前已完成处理最后一帧。 如果 AccumulatedFrames 值大于 1,则表示在应用程序处理上次桌面更新时,会进行更多桌面映像更新。 在这种情况下,操作系统累积了更新区域。 有关桌面更新的详细信息,请参阅桌面更新数据。
非零 TotalMetadataBufferSize 指示存储所有桌面更新元数据所需的缓冲区的总大小。 应用程序无法确定每种类型的元数据的大小。 应用程序必须调用 IDXGIOutputDuplication::GetFrameDirtyRects、 IDXGIOutputDuplication::GetFrameMoveRects 或 IDXGIOutputDuplication::GetFramePointerShape 方法以获取有关每种类型的元数据的信息。
要求
最低受支持的客户端 | 适用于 Windows 7 的 Windows 8 和平台更新 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 和适用于 Windows Server 2008 R2 的平台更新 [仅限桌面应用] |
标头 | dxgi1_2.h |