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 結構。 只有當 IsClipped 為 TRUE 時,此成員才有效。

rOrigSrc

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

dwRectCnt

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

prDestRects

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

dwAFlags

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

ddargbScaleFactors

AlphaBlt) (ARGB 縮放比例

備註

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

規格需求

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

另請參閱

DdBlt