次の方法で共有


DXGK_SETVIDPNSOURCEADDRESS_FLAGS構造体 (d3dkmddi.h)

DXGK_SETVIDPNSOURCEADDRESS_FLAGS構造体は、ディスプレイ ミニポート ドライバーの DxgkDdiSetVidPnSourceAddress または DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay 関数の呼び出しで実行する特定の種類の操作を識別します。

構文

typedef struct _DXGK_SETVIDPNSOURCEADDRESS_FLAGS {
  union {
    struct {
      UINT ModeChange : 1;
      UINT FlipImmediate : 1;
      UINT FlipOnNextVSync : 1;
      UINT FlipStereo : 1;
      UINT FlipStereoTemporaryMono : 1;
      UINT FlipStereoPreferRight : 1;
      UINT SharedPrimaryTransition : 1;
      UINT IndependentFlipExclusive : 1;
      UINT MoveFlip : 1;
#if ...
      UINT Reserved : 23;
#elif
      UINT Reserved : 24;
#elif
      UINT Reserved : 25;
#else
      UINT Reserved : 29;
#endif
    };
         UINT Value;
  };
} DXGK_SETVIDPNSOURCEADDRESS_FLAGS;

メンバー

ModeChange

ドライバーが表示モードを切り替えるを指定する UINT 値。

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

FlipImmediate

ドライバーが垂直同期なしで発生する反転操作を実行することを指定する UINT 値。

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

FlipOnNextVSync

ドライバーが次の垂直同期で発生する反転操作を実行するように指定する UINT 値。

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

[in] FlipStereo

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

ドライバーがステレオ割り当ての左と右の両方のイメージを反転するかどうかを指定します。

DXGK_SETVIDPNSOURCEADDRESS_FLAGS構造体の FlipOnNextVSync メンバーが設定されている場合、ドライバーは次の VSync で左のイメージへの反転を完了し、次の VSync で右のイメージへの反転を完了します。

DXGK_SETVIDPNSOURCEADDRESS_FLAGS構造体の FlipImmediate メンバーが設定されている場合、ドライバーはすぐに新しい割り当てからスキャンを開始します。 たとえば、ドライバーが適切なイメージをスキャンしていた場合、新しい割り当ての右側のイメージ内の同じ相対オフセットから新しいスキャンが開始されます。

FlipStereo メンバーと FlipStereoTemporaryMono メンバーの両方を同時に設定することはできません。

その他の要件については、「解説」セクションを参照してください。

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

[in] FlipStereoTemporaryMono

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

ドライバーがステレオ フレームの左右の部分に対してステレオ割り当ての左イメージを使用するかどうかを指定します。 ドライバーは FlipStereo と同じ現在の操作を実行します。ただし、ステレオ フレームの両方の画像を生成するために左側のイメージからのみスキャンする点が異なっています。

このメンバーは、D3DKMDT_VIDPN_SOURCE_MODE構造体のType メンバーをD3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCANに設定することで、ドライバーが現在の表示モードでこのオプションのサポートを報告する場合にのみ設定する必要があります。

FlipStereo メンバーと FlipStereoTemporaryMono メンバーの両方を同時に設定することはできません。

FlipStereoTemporaryMono メンバーと FlipStereoPreferRight メンバーの両方を同時に設定することはできません。

その他の要件については、「解説」セクションを参照してください。

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

[in] FlipStereoPreferRight

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

ドライバーがステレオ プライマリ割り当てをモノラル モニターに複製するときに、適切なイメージを使用するように指定します。

FlipStereoTemporaryMono メンバーと FlipStereoPreferRight メンバーの両方を同時に設定することはできません。

その他の要件については、「解説」セクションを参照してください。

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

[in] SharedPrimaryTransition

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

ドライバーが共有マネージド プライマリ割り当てとの間で切り替えを行っていることを指定します。

このメンバーは、次のいずれかの遷移が発生した場合に設定されます。

  • 現在のプライマリ割り当ては共有プライマリ割り当てではありませんが、新しい割り当ては です。
  • 現在のプライマリ割り当ては共有プライマリ割り当てですが、新しい割り当てはではありません。
SharedPrimaryTransition が設定されている場合、ディスプレイ ミニポート ドライバーは、ハードウェアがプライマリと共有のプライマリ割り当ての間でシームレスに切り替えることができることを検証する必要があり、シームレスな切り替えを行うために必要なハードウェア プログラミングを実行する必要があります。

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

[in] IndependentFlipExclusive

Windows 10 以降でサポートされます。

IndependentFlipExlusive を設定すると、反転は独立したフリップ排他モードで行われます。 フロント バッファーにはディスプレイ ハードウェア (DWM ではなく) のみがアクセスされ、カーネル モード ドライバーは垂直同期関連の最適化を適用できます。

[in] MoveFlip

Windows 10 以降でサポートされます。

MoveFlip が設定されると、ドライバーには、前のフリップから保存された状態を使用して新しいスキャンアウト要求を構成するように通知されます。

[in] Reserved

このメンバーは予約済みであり、0 に設定する必要があります。 このメンバーを 0 に設定することは、32 ビット Value メンバーの残りの 23 ビット (0xFFFFFF00) ゼロに設定することと同じです。

Value

操作の種類を識別する 32 ビット値を保持できる、DXGK_SETVIDPNSOURCEADDRESS_FLAGSに含まれる共用体内のメンバー。

注釈

FlipStereoFlipStereoTemporaryMono、または FlipStereoPreferRight メンバーのいずれかが設定されている場合、次の条件が適用されます。

  • DXGKARG_SETVIDPNSOURCEADDRESS構造体の hAllocation メンバーは、D3DKMT_DISPLAYMODE構造体の Flags メンバーに設定された Stereo メンバーを使用して作成された割り当てを指します。
  • DXGKARG_SETVIDPNSOURCEADDRESSPrimarySegment メンバーと PrimaryAddress メンバーは、割り当ての開始物理アドレスを指します。
  • ドライバーは、DXGK_SETVIDPNSOURCEADDRESS_FLAGS構造体の FlipImmediate メンバーと FlipOnNextVSync メンバーの設定を優先します。
Windows 8以降、ディスプレイ ミニポート ドライバーは、SharedPrimaryTransition メンバーが pSetVidPnSourceAddressフラグで設定されている場合、STATUS_INVALID_PARAMETERを返す DxgkDdiSetVidPnSourceAddress -> 関数の呼び出しに失敗する可能性があります。 ただし、ユーザー モード ドライバーの CheckDirectFlipSupport 関数の実装またはデスクトップ ウィンドウ マネージャー (DWM) にエラーがない限り、このようなエラーは発生しません。 このようなエラーが発生した場合、オペレーティング システムはコンポジション モードにシームレスにフェールバックされず、プレゼンテーションが正しくありません。

要件

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

こちらもご覧ください

D3DKMT_DISPLAYMODE

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_SETVIDPNSOURCEADDRESS_FLAGS

DxgkDdiSetVidPnSourceAddress

DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay