IDirectDrawSurface7::Flip 方法 (ddraw.h)

讓與DDSCAPS_BACKBUFFER介面相關聯的表面記憶體變成與前端緩衝區介面相關聯。

語法

HRESULT Flip(
  [in] LPDIRECTDRAWSURFACE7 unnamedParam1,
  [in] DWORD                unnamedParam2
);

參數

[in] unnamedParam1

翻轉鏈結中任意表面的 IDirectDrawSurface7 介面指標。 此參數的預設值為 NULL,在此情況下,DirectDraw 會依彼此附加的順序迴圈處理緩衝區。 如果此參數不是 NULL,DirectDraw 會翻轉至指定的表面,而不是翻轉鏈結中的下一個表面。 如果指定的表面不是翻轉鏈結的成員,翻轉就會失敗。

[in] unnamedParam2

指定翻轉選項的旗標組合。 定義下列旗標:

DDFLIP_DONOTWAIT

IDirectDrawSurface7 介面上,預設值為 DDFLIP_WAIT。 如果您想要覆寫預設並使用快速鍵忙碌 (的時間,如DDERR_WASSTILLDRAWING傳回值) 所表示,請使用 DDFLIP_DONOTWAIT。

DDFLIP_EVEN

只有在重疊介面中顯示視訊時才使用。 新的介面包含視訊訊的偶數位段數據。 此旗標不能與 DDFLIP_ODD 旗標搭配使用。

DDFLIP_STEREO

DirectDraw 會翻轉並顯示主要立體表面。 設定此旗標時,會啟用立體自動滑動。 硬體會在每次螢幕重新整理期間,自動在左右緩衝區之間翻轉。

DDFLIP_INTERVAL2

DDFLIP_INTERVAL3

DDFLIP_INTERVAL4

DDFLIP_INTERVAL2、DDFLIP_INTERVAL3和DDFLIP_INTERVAL4旗標會指出每個翻轉之間要等候的垂直回溯數目。 預設值是 1。 DirectDraw 會針對翻轉所涉及的每個表面傳回DERR_WASSTILLDRAWING,直到發生指定的垂直回溯數目為止。 如果已設定DDFLIP_INTERVAL2,DirectDraw 會每秒垂直同步處理一次;如果DDFLIP_INTERVAL3,則每隔三次同步;如果DDFLIP_INTERVAL4,則每隔四次同步處理一次。

只有在DDCAPS2_FLIPINTERVAL位是在針對顯示硬體傳回之 DDCAPS 結構的 dwCaps2 成員中設定時,這些旗標才有效。

DDFLIP_NOVSYNC

讓 DirectDraw 盡可能接近下一個掃描行執行實體翻轉。 涉及兩個翻轉表面的後續作業不會檢查實體翻轉是否已完成,也就是說,它們不會基於該原因傳回DDERR_WASSTILLDRAWING (,但可能會因為其他原因而) 。 這可讓應用程式以高於監視器重新整理速率的頻率執行翻轉,但可能會引入可見的成品。

如果未在針對顯示硬體傳回的 DDCAPS 結構的 dwCaps2 成員中設定DDCAPS2_FLIPNOVSYNC,則DDFLIP_NOVSYNC沒有任何作用。

DDFLIP_ODD

只有在重疊介面中顯示視訊時才使用。 新的表面包含來自視訊訊奇數位段的數據。 此旗標不能與 DDFLIP_EVEN 旗標搭配使用。

DDFLIP_WAIT

一般而言,如果無法設定翻轉,因為顯示硬體的狀態不正確,則DDERR_WASSTILLDRAWING錯誤會立即傳回,而且不會發生翻轉。 設定此旗標會導致 Flip 在收到來自硬體抽象層 (HAL) DDERR_WASSTILLDRAWING 錯誤時,繼續嘗試翻轉。 在成功設定翻 轉作業或傳回其他錯誤,例如傳回DDERR_SURFACEBUSY之前,不會傳回翻轉。

傳回值

如果方法成功,傳回值會DD_OK。

如果失敗,方法可以傳回下列其中一個錯誤值:

  • DDERR_GENERIC
  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_NOFLIPHW
  • DDERR_NOTFLIPPABLE
  • DDERR_SURFACEBUSY
  • DDERR_SURFACELOST
  • DDERR_UNSUPPORTED
  • DDERR_WASSTILLDRAWING

備註

使用 IDirectDrawSurface7 時, Flip 的預設行為是等待快捷鍵完成。 因此,在默認情況下, Flip 永遠不會傳回DDERR_WASSTILLDRAWING。 如果您想要看到錯誤碼,且不要等到翻轉作業成功,請使用 DDFLIP_DONOTWAIT 旗標。

只有具有DDSCAPS_FLIP和DDSCAPS_FRONTBUFFER功能的介面才能呼叫翻轉。 先前與前端緩衝區相關聯的顯示記憶體會與後端緩衝區相關聯。

lpDDSurfaceTargetOverride 參數用於少數情況下,後端緩衝區不是應該成為前端緩衝區的緩衝區。 一般而言,此參數為 NULL。

翻轉 一律會與垂直空白同步處理。 如果介面已指派給視訊埠,這個方法會更新可見的重疊介面和視訊埠的目標介面。

規格需求

需求
目標平台 Windows
標頭 ddraw.h
程式庫 Ddraw.lib
Dll Ddraw.dll

另請參閱

IDirectDrawSurface7