共用方式為


DXGK_GDIARG_STRETCHBLT結構(d3dkmddi.h)

DXGK_GDIARG_STRETCHBLT 結構描述 GDI 硬體加速延展性位區塊傳輸 (bitblt) 作業的特性。

語法

typedef struct _DXGK_GDIARG_STRETCHBLT {
  [in] RECT  SrcRect;
  [in] RECT  DstRect;
  [in] UINT  DstAllocationIndex;
  [in] UINT  SrcAllocationIndex;
       UINT  NumSubRects;
  [in] RECT  *pSubRects;
  union {
    struct {
      UINT Mode : 16;
      UINT MirrorX : 1;
      UINT MirrorY : 1;
    };
    [in] UINT Flags;
  };
  [in] UINT  SrcPitch;
} DXGK_GDIARG_STRETCHBLT;

成員

[in] SrcRect

RECT 結構,定義要複製的矩形區域。 這個矩形是在來源介面的座標系統中指定,由兩個點定義:左上方和右下角。 定義矩形的兩個點一律會排序良好。

來源矩形永遠不會超過來源介面的界限,因此它永遠不會懸置來源介面。

此矩形會對應至 DstRect所定義的目的地矩形。

如需詳細資訊,請參閱一節。

[in] DstRect

RECT 結構,定義要修改的矩形區域。 這個矩形是在目的介面的座標系統中指定,由兩個點定義:左上方和右下角。 矩形是右下角獨佔;也就是說,其下邊緣和右邊緣不是位區塊傳輸的一部分。 定義矩形的兩個點一律會排序良好。

DstRect 所定義的目的矩形 可以超過目的介面的界限,但子矩形無法。 此外,所有子矩形都保證能容納在目的介面內。 子矩形可以透過小於目的矩形的周框進一步限制。

如需詳細資訊,請參閱一節。

[in] DstAllocationIndex

配置清單中的專案索引,指定 DstRect 目的地矩形所參考的配置。

[in] SrcAllocationIndex

配置清單中的專案索引,指定 SrcRect 來源矩形所參考的配置。

NumSubRects

DstRect 目的矩形所系結之目的介面空間中的子矩形數目。

[in] pSubRects

目的地介面空間中子矩形的指標,由 DstRect 目的矩形系結。

[in] Mode

指定如何結合來源圖元,根據是否已設定在 Wingdi.h 中定義的下列值來產生輸出圖元:

價值 意義
BLACKONWHITE 在壓縮的位區塊傳輸上,圖元應該與布爾值 AND 作業結合。 在延展位區塊傳輸上,應該復寫圖元。
WHITEONBLACK 在壓縮的位區塊傳輸上,圖元應該與布爾值 OR 作業結合。 在延展位區塊傳輸上,應該復寫圖元。

只有在驅動程式已在 DXGK_PRESENTATIONCAPS 結構中設定 SupportMonoStretchBltMod es 成員時,才會處理此類型的作業。

[in] MirrorX

指定是否要在 xdirection 的鏡像模式中執行延展位區塊傳輸。 只有當 mirrorX 值為非零值,且驅動程式已在 DXGK_PRESENTATIONCAPS 結構中設定 SupportMirrorStretchBlt 成員時,才會處理此類型的作業。

[in] MirrorY

指定是否要在 Y 方向的鏡像模式中執行延展位區塊傳輸。 只有當 mirrorY 的值為非零值,且驅動程式已在 DXGK_PRESENTATIONCAPS 結構中設定 SupportMirrorStretchBl t 成員時,才會處理此類型的作業。

[in] Flags

可用來偵錯驅動程式程式代碼的選擇性 UINT 值。

[in] SrcPitch

來源表面的音調,以位元組為單位。

言論

x 和 y 延展比例會分別計算為 DstRectSrcRect 成員的 x 和 y 大小比率。

在 Wingdi.h 中定義的 HALFTONE 模式和STRETCH_HALFTONE模式永遠不會在 Mode 成員中設定。 COLORONCOLOR 模式可以在 DXGK_GDIARG_ALPHABLENDDXGK_GDIARG_TRANSPARENTBLT 結構中設定。

當子矩形轉換成來源表面空間時,結果保證會位於來源介面內。 下列公式會定義子矩形在目的地介面中座標到來源介面中座標的轉換,其中

  • (Xd, Yd) 是子矩形內的點
  • (Xs, Ys) 是來源矩形內的點
float Ws = SrcRect.right - SrcRect.left;
float Wd = DstRect.right - DstRect.left;
int Xs = round((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left - 0.5)
OR
int Xs = truncate((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left)

float Hs = SrcRect.bottom - SrcRect.top;
float Hd = DstRect.bottom - DstRect.top;
int Ys = round((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top - 0.5)
OR
int Ys = truncate((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top)

要求

要求 價值
最低支援的用戶端 Windows 7
標頭 d3dkmddi.h (包括 D3dkmddi.h)

另請參閱

DXGK_GDIARG_ALPHABLEND

DXGK_GDIARG_TRANSPARENTBLT

DXGK_PRESENTATIONCAPS

RECT