IDirect3DDevice9::P resent 方法 (d3d9.h)
在设备拥有的后台缓冲区序列中显示下一个缓冲区的内容。
语法
HRESULT Present(
[in] const RECT *pSourceRect,
[in] const RECT *pDestRect,
[in] HWND hDestWindowOverride,
[in] const RGNDATA *pDirtyRegion
);
参数
[in] pSourceRect
类型: const RECT*
指向必须为 NULL 的值的指针,除非使用 D3DSWAPEFFECT_COPY 创建交换链。 pSourceRect 是指向包含源矩形的 RECT 结构的指针。 如果 为 NULL,则显示整个源图面。 如果矩形超出源图面,则矩形将剪裁到源图面。
[in] pDestRect
类型: const RECT*
指向必须为 NULL 的值的指针,除非使用 D3DSWAPEFFECT_COPY 创建交换链。 pDestRect 是指向包含目标矩形的 RECT 结构的指针,以窗口客户端坐标表示。 如果 为 NULL,则填充整个工作区。 如果矩形超出目标工作区,则会将矩形剪裁到目标工作区。
[in] hDestWindowOverride
类型: HWND
指向目标窗口的指针,该窗口的工作区作为此演示文稿的目标。 如果此值为 NULL,则运行时将使用 D3DPRESENT_PARAMETERS 的 hDeviceWindow 成员进行演示。
[in] pDirtyRegion
类型: const RGNDATA*
除非使用 D3DSWAPEFFECT_COPY 创建交换链,否则值必须为 NULL 。 有关交换链的详细信息,请参阅 翻转 Surface (Direct3D 9) 和 D3DSWAPEFFECT。 如果此值为非 NULL,则包含的区域以后台缓冲区坐标表示。 区域内的矩形是需要更新的最小像素集。 此方法在通过仅复制区域中的像素或一些适当扩展的矩形集来优化演示文稿时考虑这些矩形。 这只是对优化的帮助,应用程序不应完全依赖于要复制的区域。 实现可以选择复制整个源矩形。
返回值
类型: HRESULT
可能的返回值包括:D3D_OK或D3DERR_DEVICEREMOVED (请参阅 D3DERR) 。
备注
如有必要,将应用拉伸操作,将源矩形内的像素传输到目标窗口工作区中的目标矩形。
如果在 BeginScene 和 EndScene 对之间调用,则 present 将失败,返回D3DERR_INVALIDCALL,除非呈现器目标不是当前呈现目标 (,例如通过创建附加交换链) 获取的后台缓冲区。 这是 Direct3D 9 的新行为。
要求
目标平台 | Windows |
标头 | d3d9.h (包括 D3D9.h) |
Library | D3D9.lib |