DD_FLIPDATA結構 (ddrawint.h)
DD_FLIPDATA 結構包含執行翻轉所需的資訊。
語法
typedef struct _DD_FLIPDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACE_LOCAL lpSurfCurr;
PDD_SURFACE_LOCAL lpSurfTarg;
DWORD dwFlags;
HRESULT ddRVal;
VOID *Flip;
PDD_SURFACE_LOCAL lpSurfCurrLeft;
PDD_SURFACE_LOCAL lpSurfTargLeft;
} *PDD_FLIPDATA, DD_FLIPDATA;
成員
lpDD
指向描述驅動程式裝置 的DD_DIRECTDRAW_GLOBAL 結構。
lpSurfCurr
指向描述目前表面 的DD_SURFACE_LOCAL 結構。
lpSurfTarg
指向描述目標介面的DD_SURFACE_LOCAL結構;也就是說,驅動程式應該翻轉的介面。
dwFlags
指出一組旗標,提供驅動程式翻轉的詳細數據。 此成員可以是下列旗標的位 OR:
旗標 | 意義 |
---|---|
DDFLIP_DONOTWAIT | 指定在快捷鍵忙碌時傳回DDERR_WASSTILLDRAWING。 預設值為 DDFLIP_WAIT。 |
DDFLIP_EVEN | lpSurfTarg 成員指向的介面只包含視訊數據的偶數位段。 只有當表面是重疊,而且互斥DDFLIP_ODD時,這個旗標才有效。 |
DDFLIP_ODD | lpSurfTarg 成員指向的介面只包含視訊數據的奇數位段。 只有當表面是重疊,而且互斥DDFLIP_EVEN時,這個旗標才有效。 |
DDFLIP_NOVSYNC | 驅動程式應該執行翻轉並立即傳回。 一般而言,目前後台緩衝區 (,用來做為前端緩衝區) 仍會顯示,直到下一個垂直回溯為止。 涉及 lpSurfCurr 和 lpSurfTarg 成員點之表面的後續作業不會檢查實體翻轉是否已完成。 這可讓應用程式以高於監視器重新整理速率的頻率執行翻轉,雖然它可能會引入可見的成品。 |
DDFLIP_INTERVAL2 | 驅動程式應該在所有其他垂直同步處理上執行翻轉。它應該會傳回DDERR_WASSTILLDRAWING,直到發生第二個垂直回溯為止。 此旗標互斥DDFLIP_INTERVAL3和DDFLIP_INTERVAL4。 |
DDFLIP_INTERVAL3 | 驅動程式應該在每個第三個垂直同步處理上執行翻轉。它應該會傳回DDERR_WASSTILLDRAWING,直到發生第三個垂直回溯為止。 此旗標互斥DDFLIP_INTERVAL2和DDFLIP_INTERVAL4。 |
DDFLIP_INTERVAL4 | 驅動程式應該在每個四個垂直同步處理上執行翻轉。它應該會傳回DDERR_WASSTILLDRAWING,直到發生第四個垂直回溯為止。 此旗標互斥DDFLIP_INTERVAL2和DDFLIP_INTERVAL3。 |
DDFLIP_STEREO | 指定在每個螢幕重新整理) 期間,啟用立體自動滑動 (硬體會在左右緩衝區之間自動翻轉。 |
DDFLIP_WAIT | 指定在翻轉或發生錯誤之前不傳回。 |
ddRVal
指定驅動程式寫入 DdFlip 回呼傳回值的位置。 DD_OK的傳回碼表示成功。 如需詳細資訊,請參閱 DirectDraw 的傳回值。
Flip
由 Microsoft DirectDraw API 使用,且不應由驅動程式填入。
lpSurfCurrLeft
指向描述目前左表面 的DD_SURFACE_LOCAL 結構。
lpSurfTargLeft
指向描述要翻轉之左目標介面的DD_SURFACE_LOCAL結構。
規格需求
需求 | 值 |
---|---|
標頭 | ddrawint.h (包含 Winddi.h) |