Share via


DD_BLTDATA 結構 (ddrawint.h)

DD_BLTDATA 結構包含與執行位區塊傳輸之驅動程序相關的資訊。

語法

typedef struct _DD_BLTDATA {
  PDD_DIRECTDRAW_GLOBAL lpDD;
  PDD_SURFACE_LOCAL     lpDDDestSurface;
  RECTL                 rDest;
  PDD_SURFACE_LOCAL     lpDDSrcSurface;
  RECTL                 rSrc;
  DWORD                 dwFlags;
  DWORD                 dwROPFlags;
  DDBLTFX               bltFX;
  HRESULT               ddRVal;
  VOID                  *Blt;
  BOOL                  IsClipped;
  RECTL                 rOrigDest;
  RECTL                 rOrigSrc;
  DWORD                 dwRectCnt;
  LPRECT                prDestRects;
  DWORD                 dwAFlags;
  DDARGB                ddargbScaleFactors;
} *PDD_BLTDATA, DD_BLTDATA;

成員

lpDD

指向描述驅動程式裝置 的DD_DIRECTDRAW_GLOBAL 結構。

lpDDDestSurface

指向 DD_SURFACE_LOCAL結構, 該結構會描述要Blit的介面。

rDest

lpDDSrcSurface

指向描述來源介面的DD_SURFACE_LOCAL結構。

rSrc

dwFlags

指出一組旗標,指定要執行的blit作業類型,以及驅動程式應該使用的有效數據相關聯的結構成員。 此成員是下列任一旗標的位 OR:

旗標 意義
DDBLT_ASYNC 按照收到的順序,透過 FIFO 以異步方式執行此 Blit。 如果硬體 FIFO 中沒有任何空間存在,驅動程式應該會失敗呼叫並立即傳回。
DDBLT_COLORFILL 使用 Microsoft DirectDraw SDK 檔中定義的 DDBLTFX 結構中的 dwFillColor 成員 (,) 做為在目的地介面上填滿目的地矩形的 RGB 色彩。
DDBLT_DDFX 使用 DirectDraw SDK 檔案中定義之 DDBLTFX 結構的 dwDDFX 成員 () ,以判斷要用於 blit 的效果。
DDBLT_DDROPS 此旗標保留供系統使用,驅動程式應忽略。 驅動程式也應該忽略 DDBLTFX 結構的 dwDDROPS 成員。
DDBLT_EXTENDED_FLAGS
僅限 Microsoft DirectX 9.0 和更新版本。
由運行時間設定,以指示驅動程式從 DirectX 8.1 和更早版本中的意義重新解譯 dwFlags 中的特定旗標。 運行時間會使用位 OR 結合DDBLT_EXTENDED_FLAGS與 DDBLT_Xxx 旗標,以建立 DDBLT_EXTENDED_Xxx 旗標。
DDBLT_EXTENDED_LINEAR_CONTENT
僅限 Microsoft DirectX 9.0 和更新版本。
透過DDBLT_EXTENDED_FLAGS和0x00000004位的位 OR 組合建立。
表示來源表面包含線性色彩空間中的內容。 然後,驅動程式可以執行 gamma 2.2 修正 (sRGB) 到桌面色彩空間作為 blt 的一部分。
DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR
僅限 Microsoft DirectX 9.0 和更新版本。
僅限 NT 型作業系統。
透過DDBLT_EXTENDED_FLAGS和0x00000010位的位 OR 組合建立。
如果運行時間後續使用DDBLT_PRESENTATION和DDBLT_LAST_PRESENTATION旗標來要求一系列延展式blit作業,因為應用程式的 Present 呼叫。
在驅動程式收到 blits 的實際子矩形區域之前,通知驅動程式有關整個未壓縮的來源和目的地矩形區域。 如此一來,驅動程式就可以計算並記錄所有後續blit的延展因數,最多包含具有DDBLT_LAST_PRESENTATION旗標集的blit。 不過,當驅動程式收到已設定DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR旗標的blit時,驅動程式不得使用這些未裁剪的矩形區域來執行任何實際的 Blitting。
驅動程式完成最終blit並設定DDBLT_LAST_PRESENTATION旗標之後,驅動程式應該清除延展因數記錄,以避免干擾任何後續的 blits
.
DDBLT_KEYDESTOVERRIDE 使用 DDBLTFX 結構中的 dckDestColorkey 成員, (DirectDraw SDK 檔案中定義) 做為目的地介面的色彩索引鍵。 如果未設定覆寫, 則 dckDestColorkey 不包含色彩索引鍵。 驅動程式應該測試介面本身。
DDBLT_KEYSRCOVERRIDE 使用 DDBLTFX 結構中的 dckSrcColorkey 成員, (在 DirectDraw SDK 檔中定義) 做為來源介面的色彩索引鍵。 如果未設定覆寫, 則 dckDestColorkey 不包含色彩索引鍵。 驅動程式應該測試介面本身。
DDBLT_LAST_PRESENTATION
僅限 DirectX 8.0 和更新版本。
如果執行時間因為應用程式的 Present 呼叫而要求最終 Blit 作業,請設定 。
DDBLT_PRESENTATION
僅限 DirectX 8.0 和更新版本。
如果運行時間要求blit作業,因為應用程式呼叫 Present
DDBLT_ROP 使用 DDBLTFX 結構中的 dwROP 成員, (DirectDraw SDK 檔中定義,) 此 blit 的點陣作業。 目前,唯一傳遞至驅動程式的 ROP 是 SRCCOPY。 此 ROP 與 Win32 API 中定義的相同。 如需詳細資訊,請參閱 Microsoft Windows SDK 檔。
DDBLT_ROTATIONANGLE Windows 2000 和更新版本不支援此旗標,驅動程式應忽略此旗標。
DDBLT_WAIT 如果blitter處於忙碌狀態,請勿立即傳回DDERR_WASSTILLDRAWING訊息,直到可以設定blit或發生另一個錯誤為止。

dwROPFlags

Windows 2000 和更新版本未使用,驅動程式應該忽略。

bltFX

#########

#######

ddRVal

指定驅動程式寫入 DdBlt 回呼傳回值的位置。 DD_OK的傳回碼表示成功。 如需詳細資訊,請參閱 DirectDraw 的傳回值

Blt

由 DirectDraw API 使用,且不應該由驅動程式填入。

IsClipped

指出這是否為裁剪的blit。 在 Windows 2000 和更新版本上,此成員一律為 FALSE,表示 blit 已取消裁剪。

rOrigDest

Windows 2000 和更新版本未使用。 指定可定義未調整目的地矩形的 RECTL 結構。 只有當 IsClippedTRUE 時,此成員才有效。

rOrigSrc

Windows 2000 和更新版本未使用。 指定可定義未調整來源矩形的 RECTL 結構。 只有當 IsClippedTRUE 時,此成員才有效。

dwRectCnt

Windows 2000 和更新版本未使用。指定 prDestRects 指向的目標矩形數目。 只有當 IsClippedTRUE 時,此成員才有效。

prDestRects

Windows 2000 和更新版本未使用。 指向描述目的地矩形的 RECTL 結構陣列。 只有當 IsClippedTRUE 時,此成員才有效。

dwAFlags

未使用,且驅動程式應忽略。

ddargbScaleFactors

AlphaBlt) (ARGB 縮放比例

備註

如需DDBLT_PRESENTATION和DDBLT_LAST_PRESENTATION旗標的詳細資訊,請參閱 簡報

規格需求

需求
標頭 ddrawint.h (包括 Winddi.h)

另請參閱

DdBlt