共用方式為


IDirect3DDevice9Ex::P resentEx 方法 (d3d9.h)

將交換鏈的下一個緩衝區與前端緩衝區交換。

語法

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_PARAMETERShDeviceWindow 成員。

注意 如果您使用 D3DSWAPEFFECT_FLIPEX 建立交換鏈結,則必須將 NULL 傳遞至 hDestWindowOverride
 

[in] pDirtyRegion

類型: const RGNDATA*

RGNDATA 結構的指標,指出需要傳輸的最小圖元集。 除非使用 D3DSWAPEFFECT_COPY 旗標建立交換鏈,否則此值必須是 NULL。 如需交換鏈結的詳細資訊,請參閱 翻轉 Surface (Direct3D 9)

如果此值為非 NULL,則包含的區域會以後端緩衝區座標表示。 方法會將這些矩形納入考慮,方法是只複製區域內的圖元,或一些適當展開的矩形集來優化簡報。 這隻是優化輔助功能,應用程式不應該完全依賴複製的區域。 實作可以選擇複製整個來源矩形。

[in] dwFlags

類型: DWORD

允許應用程式要求方法在驅動程式回報無法排程簡報時立即傳回。 有效值為 0,或 D3DPRESENT 旗標的任何組合。

  • 如果 dwFlags = 0,這個方法的行為就如同 Direct3D 9 之前一樣。 目前會旋轉直到硬體可用為止,而不會傳回錯誤。
  • 如果 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) 。 如需遺失、無回應和移除裝置的詳細資訊,請參閱 遺失裝置行為變更

Direct3D 9 與 Direct3D 9Ex 之間的差異:

D3DSWAPEFFECT_FLIPEX 僅適用於在 Windows 7 (或更新作業系統上執行的 Direct3D9Ex) 。

備註

類似於 IDirect3DDevice9::P resent 方法,PresentEx 會新增 dwflags 參數。

使用 D3DSWAPEFFECT_FLIPEX 旗標 建立 交換鏈時, pSourceRectpDestRectpDirtyRegion 值必須設定為 NULL

規格需求

需求
目標平台 Windows
標頭 d3d9.h
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9Ex