DXGK_PRESENTFLAGS構造体 (d3dkmddi.h)
DXGK_PRESENTFLAGS構造体は、実行する現在の操作の種類をビット フィールド フラグで識別します。
構文
typedef struct _DXGK_PRESENTFLAGS {
union {
struct {
UINT Blt : 1;
UINT ColorFill : 1;
UINT Flip : 1;
UINT FlipWithNoWait : 1;
UINT SrcColorKey : 1;
UINT DstColorKey : 1;
UINT LinearToSrgb : 1;
UINT Rotate : 1;
UINT FlipStereo : 1;
UINT FlipStereoTemporaryMono : 1;
UINT FlipStereoPreferRight : 1;
UINT BltStereoUseRight : 1;
UINT FlipWithMultiPlaneOverlay : 1;
UINT RedirectedFlip : 1;
#if ...
UINT Reserved : 18;
#elif
UINT Reserved : 19;
#else
UINT Reserved : 24;
#endif
};
[in] UINT Value;
};
} DXGK_PRESENTFLAGS;
メンバー
[in] Blt
コピー操作が反転操作ではなく、コピー元サーフェスとコピー先サーフェスの間で行われるかどうかを指定する UINT 値。
このメンバーの設定は、32 ビット Value メンバーの最初のビット (0x00000001) を設定することと同じです。
[in] ColorFill
ソースが存在するかどうかを指定する UINT 値。 このメンバーが設定されている場合、ソースは存在せず、ドライバーは、DXGKARG_PRESENT構造体のColor メンバーが指定するA8R8G8B8の色で移動先のサーフェス上の変換先の四角形を塗りつぶす必要があります。
このメンバーの設定は、32 ビット Value メンバー (0x00000002) の 2 番目のビットを設定することと同じです。
[in] Flip
反転操作が背面サーフェスとプライマリ サーフェスの間で行われるかどうかを示す UINT 値。 このメンバーが設定されている場合、ドライバーは、ソースからコピー先にコピーするのではなく、ソースにビデオ スキャン出力をポイントして、現在の操作を実行する必要があります。 この種の現在の操作は、ティアフリーです。
このメンバーの設定は、32 ビット Value メンバー (0x00000004) の 3 番目のビットを設定することと同じです。
[in] FlipWithNoWait
ティアフリー フリップ操作でグラフィックス パイプラインを停止しないようにするかどうかを指定する UINT 値。 ティアフリー フリップによってグラフィックス パイプラインが停止する場合、グラフィックス処理装置 (GPU) は、引き裂きのない反転が有効になるまで待機してから、後続のコマンドを実行する必要があります。
FlipWithNoWait を TRUE (つまり 1) に設定できるのは、ドライバーの DxgkDdiQueryAdapterInfo 関数の呼び出しでDXGKARG_QUERYADAPTERINFO構造体の Type メンバーにDXGKQAITYPE_DRIVERCAPS値が指定された場合に、ディスプレイ ミニポート ドライバーが DXGK_DRIVERCAPS 構造体の FlipCaps メンバーに FlipOnVSyncWithNoWait ビット フィールド フラグを設定した場合のみです。
このメンバーの設定は、32 ビット Value メンバー (0x00000008) の 4 番目のビットを設定することと同じです。
[in] SrcColorKey
DXGKARG_PRESENT構造体の Color メンバーの値を使用して、ソースのカラー キー設定を実行するかどうかを指定する UINT 値。 つまり、カラー キーに一致するソース サーフェス内のピクセルはコピー先のサーフェスにコピーしないでください。また、カラー キーと一致しないすべてのソース ピクセルをコピーする必要があります。
このメンバーの設定は、32 ビット Value メンバー (0x00000010) の 5 番目のビットを設定することと同じです。
[in] DstColorKey
DXGKARG_PRESENT構造体の Color メンバーの値を使用して、変換先のカラー キー設定を実行するかどうかを指定する UINT 値。 つまり、カラー キーに一致するターゲット サーフェス内のピクセルは、ソース サーフェスの対応するピクセルに置き換える必要があり、カラー キーに一致しないすべてのターゲット ピクセルは置き換えないでください。
このメンバーの設定は、32 ビット Value メンバー (0x00000020) の 6 番目のビットを設定することと同じです。
[in] LinearToSrgb
コピー操作中に線形形式のソースを sRGB 形式に変換するかどうかを指定する UINT 値。 sRGB 形式がガンマ修正されました。 sRGB 形式の詳細については、 sRGB Web サイトを参照してください。
このメンバーの設定は、32 ビット Value メンバーの 7 番目のビット (0x00000040) を設定することと同じです。
[in] Rotate
プレゼンテーション のビット ブロック転送 (bitblt) 中に、プレゼンテーション データを画面の現在の向きに合わせて回転させるかどうかを指定する UINT 値。 画面の現在の向きは、ビデオの現在のパスのD3DKMDT_VIDPN_PRESENT_PATH構造の ContentTransformation メンバーで設定されるD3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION構造体の Rotation メンバーで設定されます。
ディスプレイ ミニポート ドライバーは、ビット フィールドの回転フラグが設定されている場合にのみ、データを 回転 する必要があります。 プレゼンテーション データから画面の現在の向きが回転し、 Rotate が設定されていないとドライバーが判断した場合でも、ドライバーはデータを回転させるべきではありません。
このメンバーの設定は、32 ビット Value メンバー (0x00000080) の 8 番目のビットを設定することと同じです。
[in] FlipStereo
ドライバーがステレオ割り当ての左右の画像の両方を反転させる必要があるかどうかを指定します。
DXGK_SETVIDPNSOURCEADDRESS_FLAGS構造体の FlipOnNextVSync メンバーが設定されている場合、ドライバーは次の VSync で左のイメージへの反転を完了し、次の VSync で右のイメージへの反転を完了する必要があります。
DXGK_SETVIDPNSOURCEADDRESS_FLAGS構造体の FlipImmediate メンバーが設定されている場合、ドライバーはすぐに新しい割り当てからスキャンアウトを開始する必要があります。 たとえば、ドライバーが適切なイメージをスキャンしていた場合は、新しい割り当ての右側のイメージ内の同じ相対オフセットから新しいスキャンを開始する必要があります。
FlipStereo メンバーと FlipStereoTemporaryMono メンバーの両方を同時に設定することはできません。
その他の要件については、「解説」セクションを参照してください。
このメンバーの設定は、32 ビット Value メンバーの 9 番目のビット (0x00000100) を設定することと同じです。
Windows 8 以降でサポートされています。
[in] FlipStereoTemporaryMono
ドライバーがステレオ フレームの左右の部分に対してステレオ割り当ての左側のイメージを使用するかどうかを指定します。 ドライバーは FlipStereo と同じ現在の操作を実行します。ただし、ステレオ フレームの両方の画像を生成するには、左側の画像からのみスキャンする必要があります。
このメンバーは、D3DKMDT_VIDPN_SOURCE_MODE構造体のType メンバーを D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN に設定することで、ドライバーが現在の表示モードでこのオプションのサポートを報告する場合にのみ設定する必要があります。
FlipStereo メンバーと FlipStereoTemporaryMono メンバーの両方を同時に設定することはできません。
FlipStereoTemporaryMono メンバーと FlipStereoPreferRight メンバーの両方を同時に設定することはできません。
その他の要件については、「解説」セクションを参照してください。
このメンバーの設定は、32 ビット Value メンバー (0x00000200) の 10 ビットを設定することと同じです。
Windows 8 以降でサポートされています。
[in] FlipStereoPreferRight
ドライバーがステレオ プライマリ割り当てを mono モニターに複製するときに、適切なイメージを使用するように指定します。
FlipStereoTemporaryMono メンバーと FlipStereoPreferRight メンバーの両方を同時に設定することはできません。
その他の要件については、「解説」セクションを参照してください。
このメンバーの設定は、32 ビット Value メンバーの 11 番目のビット (0x00000400) を設定することと同じです。
Windows 8 以降でサポートされています。
[in] BltStereoUseRight
ドライバーがステレオ割り当てからモノラル割り当てに提示するときに、適切なイメージを使用するように指定します。 設定されていない場合、ドライバーは左側のイメージを使用する必要があります。
このメンバーの設定は、32 ビット Value メンバーの 12 番目のビット (0x00000800) を設定することと同じです。
Windows 8 以降でサポートされています。
[in] FlipWithMultiPlaneOverlay
オーバーレイ 平面とプライマリ サーフェスの間で反転操作を行うかどうかを指定します。 このメンバーが設定されている場合、ドライバーは、ソース プレーンからコピー先にコピーするのではなく、ソース プレーンにビデオ スキャン出力をポイントすることによって、現在の操作を実行する必要があります。
このメンバーの設定は、32 ビット Value メンバー (0x00001000) の 13 番目のビットを設定することと同じです。
Windows 8.1 以降でサポートされています。
RedirectedFlip
[in] Reserved
このメンバーは予約されており、0 に設定する必要があります。
このメンバーを 0 に設定することは、32 ビット Value メンバーの残りの 19 ビット (0xFFFFE000) を ゼロに設定することと同じです。
Windows 8 以降でサポートされています。
[入力]このメンバーは予約されており、0 に設定する必要があります。
このメンバーを 0 に設定することは、32 ビット Value メンバーの残りの 24 ビット (0xFFFFFF00) を ゼロに設定することと同じです。
[in] Value
実行する現在の操作の種類を識別する 32 ビット値を保持できる、DXGK_PRESENTFLAGSに含まれる共用体内のメンバー。
注釈
ColorFill、SrcColorKey、DstColorKey のビット フィールド フラグは相互に排他的です。
FlipStereo、FlipStereoTemporaryMono、または FlipStereoPreferRight のいずれかのメンバーが設定されている場合、次の条件が適用されます。
- DXGKARG_SETVIDPNSOURCEADDRESS構造体の hAllocation メンバーは、D3DKMT_DISPLAYMODE構造体の Flags メンバーに Stereo メンバーを設定して作成された割り当てを指す必要があります。
- DXGKARG_SETVIDPNSOURCEADDRESSの PrimarySegment メンバーと PrimaryAddress メンバーは、割り当ての開始物理アドレスを指す必要があります。
- ドライバーは、DXGK_SETVIDPNSOURCEADDRESS_FLAGS構造体の FlipImmediate メンバーと FlipOnNextVSync メンバーの設定を考慮する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
Header | d3dkmddi.h (D3dkmddi.h を含む) |
こちらもご覧ください
D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION