將交換鏈的下一個緩衝區與前端緩衝區交換。
語法
HRESULT PresentEx(
[in] const RECT *pSourceRect,
[in] const RECT *pDestRect,
[in] HWND hDestWindowOverride,
[in] const RGNDATA *pDirtyRegion,
[in] DWORD dwFlags
);
參數
[in] pSourceRect
類型: const RECT*
指向 RECT 結構的指標,指出來源介面上要在視窗用戶端座標中複製的區域。 只有在使用 D3DSWAPEFFECT_COPY 旗標建立交換鏈時才適用。 如果為 NULL,則會呈現整個來源介面。 如果矩形超過來源曲面,則會裁剪至來源曲面。
[in] pDestRect
類型: const RECT*
指向 RECT 結構的指標,指出視窗用戶端座標中目的地介面上的目標區域。 只有在使用 D3DSWAPEFFECT_COPY 旗標建立交換鏈時才適用。 如果為 Null,則會填滿整個工作區。 如果矩形超出目的地工作區,則會裁剪至目的地工作區。
[in] hDestWindowOverride
類型: HWND
目的地視窗的指標,其工作區會作為此簡報的目標。 如果此值為 Null,執行階段會針對簡報使用 D3DPRESENT_PARAMETERS 的 hDeviceWindow 成員。
[in] pDirtyRegion
類型: const RGNDATA*
指向 RGNDATA 結構的指標,指出需要傳輸的最小圖元集。 除非交換鏈是使用 D3DSWAPEFFECT_COPY 旗標建立,否則此值必須為 Null。 如需交換鏈結的詳細資訊,請參閱翻轉介面 (Direct3D 9)。
如果此值為非 Null,則包含的區域會以反向緩衝區座標表示。 此方法會在優化簡報時,會考慮這些矩形,方法是只複製區域內的圖元,或一些適當擴充的矩形集。 這只是最佳化的輔助工具,應用程式不應完全依賴要複製的區域。 實作可以選擇複製整個來源矩形。
[in] dwFlags
類型: DWORD
允許應用程式要求在驅動程式報告無法排程簡報時立即傳回方法。 有效值為 0 或 D3DPRESENT 旗標的任意組合。
- 如果 dwFlags = 0,這個方法的行為就像 Direct3D 9 之前一樣。 Present 會旋轉,直到硬體可用為止,不會傳回錯誤。
- 如果 dwFlags = D3DPRESENT_DONOTFLIP 則會呼叫顯示驅動程式,並使用正面緩衝區作為來源和目標介面。 驅動程式會排程畫面同步處理來回應,但不會變更顯示的介面。 此旗標僅在全螢幕模式下或在視窗模式下使用 D3DSWAPEFFECT_FLIPEX 時可用。
- 如果 dwFlags = D3DPRESENT_DONOTWAIT,且硬體正忙於處理或等候垂直同步處理間隔,則方法會傳回D3DERR_WASSTILLDRAWING。
- 如果 dwFlags = D3DPRESENT_FORCEIMMEDIATE,則會在此 Present 呼叫上強制執行D3DPRESENT_INTERVAL_IMMEDIATE。 只有在使用 D3DSWAPEFFECT_FLIPEX 時才能指定此旗標。 此行為對於視窗和全螢幕模式相同。
- 如果 dwFlags = D3DPRESENT_LINEAR_CONTENT,則會針對視窗交換鏈結執行從線性空間到 sRGB 的 gamma 修正。 只有在驅動程式公開 D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 時,此旗標才會生效 (請參閱 Gamma (Direct3D 9) ) 。
傳回值
類型: HRESULT
可能的傳回值包括:S_OK、D3DERR_DEVICELOST、D3DERR_DEVICEHUNG、D3DERR_DEVICEREMOVED 或 D3DERR_OUTOFVIDEOMEMORY (請參閱 D3DERR) 或 S_PRESENT_OCCLUDED 或 S_PRESENT_MODE_CHANGED (請參閱 S_PRESENT) 。 請參閱 遺失裝置行為變更 ,以取得有關遺失、當機和移除裝置的詳細資訊。
|
Direct3D 9 和 Direct3D 9Ex 之間的差異: D3DSWAPEFFECT_FLIPEX 僅適用於在 Windows 7 (或更新的作業系統) 上執行的 Direct3D9Ex 。 |
備註
類似於 IDirect3DDevice9::P resent 方法,PresentEx 會新增 dwflags 參數。
使用旗標建立交換鏈結 D3DSWAPEFFECT_FLIPEX 時, pSourceRect、 pDestRect 和 pDirtyRegion 值必須設定為 Null。
需求
| Requirement | 價值觀 |
|---|---|
| 目標平臺 | 窗戶 |
| Header | d3d9.h |
| Library | D3D9.lib |