DXGK_GDIARG_BITBLT構造体 (d3dkmddi.h)
DXGK_GDIARG_BITBLT構造体は、引き伸ばさない GDI ハードウェア高速 ビット ブロック転送 (ビットblt) の特性を記述します。
構文
typedef struct _DXGK_GDIARG_BITBLT {
[in] RECT SrcRect;
[in] RECT DstRect;
UINT SrcAllocationIndex;
UINT DstAllocationIndex;
UINT NumSubRects;
RECT *pSubRects;
WORD Rop;
WORD Rop3;
UINT SrcPitch;
UINT DstPitch;
} DXGK_GDIARG_BITBLT;
メンバー
[in] SrcRect
コピーする四角形の領域を定義する RECT 構造体。 この四角形は、ソース サーフェスの座標系で指定され、左上と右下の 2 つのポイントで定義されます。 四角形を定義する 2 つのポイントは、常に適切に並べられます。
ソース四角形は、ソース サーフェスの境界を超える可能性があります。
この四角形は、 DstRect によって定義された変換先の四角形にマップされます。 SrcRect は、サブ四角形をソース空間から変換先空間に変換するために使用されます。
詳細については、「解説」を参照してください。
[in] DstRect
変更する四角形領域を定義する RECT 構造体。 この四角形は、変換先サーフェスの座標系で指定され、左上と右下の 2 つのポイントで定義されます。 四角形は右下の排他的です。つまり、その下端と右端はビット ブロック転送の一部ではありません。 四角形を定義する 2 つのポイントは、常に適切に並べられます。
DstRect によって定義された変換先の四角形は、変換先サーフェスの境界を超えることができますが、サブ四角形は使用できません。 さらに、すべてのサブ四角形がターゲット サーフェス内に収まることが保証されます。 サブ四角形は、移動先の四角形よりも小さい外接する四角形によってさらに制約できます。
詳細については、「解説」を参照してください。
SrcAllocationIndex
[入力] SrcRect ソース四角形によって参照される割り当てを指定する割り当てリスト内の要素のインデックス。
DstAllocationIndex
[入力] DstRect 変換先の四角形によって参照される割り当てを指定する割り当てリスト内の要素のインデックス。
NumSubRects
[入力] DstRect 変換先の四角形で囲まれた移動先サーフェス空間内のサブ四角形の数。
pSubRects
[入力] DstRect 変換先の四角形で囲まれた移動先サーフェス空間内のサブ四角形へのポインター。
Rop
[入力] DXGK_GDIROP_BITBLT 列挙体の定数値によって定義される GDI ラスター操作 (ROP) を指定する 8 ビット値。
Rop3
[入力]ブラシ、ソース ビットマップ、およびコピー先ビットマップを 256 個の組み合わせのいずれかで結合する三項 GDI ラスター操作 (ROP3) を指定する 8 ビット値。 この種類のラスター操作は、ドライバーがDXGK_PRESENTATIONCAPS構造で SupportAllBltRops メンバーを設定している場合にのみ処理されます。
SrcPitch
[入力]ソースサーフェスのピッチ (バイト単位)。 ピッチの使用方法の詳細については、「解説」セクションを参照してください。
DstPitch
[入力]宛先サーフェスのピッチ (バイト単位)。 ピッチの使用方法の詳細については、「解説」セクションを参照してください。
注釈
SrcPitch と DstPitch ピッチの値を使用して、SrcRect 四角形と DstRect 四角形のバイト位置をそれぞれ決定し、次の型の割り当てをD3DKMDT_GDISURFACETYPEする必要があります。
D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE
D3DKMDT_GDISURFACE_EXISTINGSYSMEM
ピッチは、他の割り当ての種類では無視する必要があります。
ピッチは、DXGK_PRESENTATIONCAPS構造体の AlignmentShift メンバー (つまり、DXGK_DRIVERCAPS) に従って、ビット ブロック転送でアラインすることが保証されます。PresentationCaps.AlignmentShift)。
四角形が座標 (左、上) と (右、下) の 2 つのピクセルで定義されている場合、最初のピクセルのアドレスは次のようになります。
Allocation.BaseAddress + (top * Pitch) + (left * 4)
四角形の最後のピクセルのアドレスは次のとおりです。
Allocation.BaseAddress + ((bottom - 1) * Pitch) + ((right - 1) * 4)
サブ四角形がソースサーフェス空間に変換されると、結果はソースサーフェス内に存在することが保証されます。 この変換は、次の数式で定義されます。
<SrcSubRect.left = SubRect.left - DstRect.left + SrcRect.left;
SrcSubRect.right = SubRect.right - DstRect.left + SrcRect.left;
SrcSubRect.top = SubRect.top - DstRect.top + SrcRect.top;
SrcSubRect.bottom = SubRect.bottom - DstRect.top + SrcRect.top;
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 |
Header | d3dkmddi.h (D3dkmddi.h を含む) |