D3DDDI_BLTFLAGS 構造体 (d3dumddi.h)

D3DDDI_BLTFLAGS構造体は、実行するビット ブロック転送 (bitblt) の種類を識別します。

構文

typedef struct _D3DDDI_BLTFLAGS {
  union {
    struct {
      UINT Point : 1;
      UINT Linear : 1;
      UINT SrcColorKey : 1;
      UINT DstColorKey : 1;
      UINT MirrorLeftRight : 1;
      UINT MirrorUpDown : 1;
      UINT LinearToSrgb : 1;
      UINT Rotate : 1;
      UINT BeginPresentToDwm : 1;
      UINT ContinuePresentToDwm : 1;
      UINT EndPresentToDwm : 1;
#if ...
      UINT Reserved : 21;
      UINT Discard : 1;
      UINT NoOverwrite : 1;
      UINT Tileable : 1;
#else
      UINT Reserved : 18;
#endif
    };
    UINT Value;
  };
} D3DDDI_BLTFLAGS;

メンバー

Point

ビット ブロック転送でポイント フィルター処理を使用するかどうかを指定する UINT 値。 このメンバーの設定は、32 ビット Value メンバーの最初のビット (0x00000001) を設定することと同じです。

Linear

ビット ブロック転送で線形フィルター処理を使用するかどうかを指定する UINT 値。 このメンバーの設定は、32 ビット Value メンバー (0x00000002) の 2 番目のビットを設定することと同じです。

SrcColorKey

ColorKey メンバーの値を使用してソースのカラー キー設定を実行するかどうかを指定する UINT 値。 つまり、カラー キーに一致するソース サーフェス内のピクセルはコピー先のサーフェスにコピーしないでください。また、カラー キーと一致しないすべてのソース ピクセルをコピーする必要があります。

このメンバーの設定は、32 ビット Value メンバー (0x00000004) の 3 番目のビットを設定することと同じです。

DstColorKey

ColorKey メンバーの値を使用して、コピー先のカラー キー設定を実行するかどうかを指定する UINT 値。 つまり、カラー キーに一致するターゲット サーフェス内のピクセルは、ソース サーフェスの対応するピクセルに置き換える必要があり、カラー キーに一致しないすべてのターゲット ピクセルは置き換えないでください。

このメンバーの設定は、32 ビット Value メンバー (0x00000008) の 4 番目のビットを設定することと同じです。

MirrorLeftRight

変換元サーフェスの内容をビットの中心軸に沿って移動先サーフェスに水平方向に反転するかどうかを指定する UINT 値。 つまり、ソース サーフェスの左側のコンテンツはコピー先サーフェスの右側にコピーされ、その逆も同様です。

このメンバーの設定は、32 ビット Value メンバー (0x00000010) の 5 番目のビットを設定することと同じです。

MirrorUpDown

変換元サーフェスのコンテンツを、ビットブルの中心軸に沿ってターゲット サーフェスに垂直に反転するかどうかを指定する UINT 値。 つまり、ソース サーフェスの上部のコンテンツはコピー先サーフェスの下部にコピーされ、その逆も同様です。

このメンバーの設定は、32 ビット Value メンバー (0x00000020) の 6 番目のビットを設定することと同じです。

LinearToSrgb

bitblt 操作中に線形形式のソースを sRGB 形式に変換するかどうかを指定する UINT 値。 sRGB 形式がガンマ修正されました。 sRGB 形式の詳細については、 sRGB Web サイトを参照してください。

このメンバーの設定は、32 ビット Value メンバーの 7 番目のビット (0x00000040) を設定することと同じです。

Rotate

ビットブレット操作中にソースを回転するかどうかを指定する UINT 値。

このメンバーの設定は、32 ビット Value メンバー (0x00000080) の 8 番目のビットを設定することと同じです。

BeginPresentToDwm

Bitblt 操作中に Microsoft Direct3D ランタイムが DWM の現在の操作を開始するかどうかを指定する UINT 値。 BeginPresentToDwm の詳細については、「解説」を参照してください。

このメンバーの設定は、32 ビット Value メンバーの 9 番目のビット (0x00000100) を設定することと同じです。

ContinuePresentToDwm

Bitblt 操作中に Direct3D ランタイムが DWM の現在の操作を続行するかどうかを指定する UINT 値。 ContinuePresentToDwm の詳細については、「解説」を参照してください。

このメンバーの設定は、32 ビット Value メンバー (0x00000200) の 10 ビットを設定することと同じです。

EndPresentToDwm

Bitblt 操作中に Direct3D ランタイムが DWM の現在の操作を終了するかどうかを指定する UINT 値。 EndPresentToDwm の詳細については、「解説」を参照してください。

このメンバーの設定は、32 ビット Value メンバーの 11 番目のビット (0x00000400) を設定することと同じです。

Reserved

このメンバーは予約されており、0 に設定する必要があります。 このメンバーを 0 に設定することは、32 ビット Value メンバーの残りの 21 ビット (0xFFFFF800) ゼロに設定することと同じです。

このメンバーは予約されており、0 に設定する必要があります。

このメンバーを 0 に設定することは、32 ビット Value メンバーの残りの 18 ビット (0xFFFFC000) ゼロに設定することと同じです。

Windows 8 以降でサポートされています。

Discard

ユーザー モード ディスプレイ ドライバーがリソース全体の以前の内容を破棄できることを示します。 ドライバーは、この機能を利用して、パフォーマンスとメモリ使用量を最適化できます。

このメンバーが NULL でない場合、 NoOverwriteTileableNULL である必要があります。

このメンバーの設定は、32 ビット Value メンバーの 12 番目のビット (0xFFFFF800) 0 に設定することと同じです。

Windows 8 以降でサポートされています。

NoOverwrite

呼び出し元が、新しいデータで書き込まれるサーフェスの部分が、以前のレンダリング操作で現在参照またはアクセスされていないことを保証することを示します。 ドライバーは、この機能を利用して、パフォーマンスとメモリ使用量を最適化できます。

このメンバーが NULL でない場合、 破棄NULL である必要があります。

このメンバーの設定は、32 ビット Value メンバーの 13 番目のビット (0x00001000) 0 に設定することと同じです。

Windows 8 以降でサポートされています。

Tileable

タイルベースの遅延レンダリングの場合、 は、コピー操作がソースまたはターゲット リソースで現在処理されているタイルでのみ動作できることを示し、すべてのタイルでシーンをフラッシュする必要はありません。

このメンバーが NULL でない場合、 破棄NULL である必要があります。

このメンバーの設定は、32 ビット Value メンバーの 14 ビット (0x00002000) 0 に設定することと同じです。

Windows 8 以降でサポートされています。

Value

実行するビットビットの種類を識別する 1 つの 32 ビット値を保持できる、D3DDDI_BLTFLAGSに含まれる共用体内のメンバー。

注釈

BeginPresentToDwmContinuePresentToDwmおよび EndPresentToDwm ビット フィールド フラグは、Direct3D ランタイムが DWM 存在操作の一部を実行する時刻をユーザー モードのディスプレイ ドライバーに通知します。 DWM の現在の操作は複数のステップで発生する可能性があるため、Direct3D ランタイムは、これらのフラグを使用して、ビットレットのシーケンス内のステップをマークします。 例:

  • 現在の操作が 1 つのビットレットで構成されている場合、bitblt は次のようにマークされます。
    • BeginPresentToDwm = TRUE;
    • ContinuePresentToDwm = FALSE;
    • EndPresentToDwm = TRUE;
  • 現在の操作が 2 つのビットレットで構成されている場合、ビットブレットは 2 つの順次ビットレット操作で示されているようにマークされます。
    1. 最初のビット:
      • BeginPresentToDwm = TRUE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = FALSE;
    2. 2 番目のビットblt:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = TRUE;
  • 現在の操作が 3 つ以上のビットレットで構成されている場合、ビットレットは次の順次ビットレット操作で示されているようにマークされます。
    1. 最初のビット:
      • BeginPresentToDwm = TRUE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = FALSE;
    2. 2 番目以降のビットブレット (最終ビットビットは含まない):
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = TRUE;
      • EndPresentToDwm = FALSE;
    3. 最後のビット:
      • BeginPresentToDwm = FALSE;
      • ContinuePresentToDwm = FALSE;
      • EndPresentToDwm = TRUE;

要件

要件
サポートされている最小のクライアント Windows Vista 以降で使用できます。
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDIARG_BLT

フラッシュ