共用方式為


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。 如需交換鏈結的詳細資訊,請參閱翻轉介面 (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 時, pSourceRectpDestRectpDirtyRegion 值必須設定為 Null

需求

Requirement 價值觀
目標平臺 窗戶
Header d3d9.h
Library D3D9.lib

另請參閱

IDirect3DDevice9Ex