次の方法で共有


PFND3DDDI_CHECKDIRECTFLIPSUPPORT コールバック関数 (d3dumddi.h)

デスクトップ ウィンドウ マネージャー (DWM) によって呼び出され、ユーザー モード ドライバーが Direct Flip 操作をサポートしていることを確認します。この操作では、アプリケーションのマネージド プライマリ割り当てと DWM のマネージド プライマリ割り当ての間でビデオ メモリがシームレスに反転されます。

構文

PFND3DDDI_CHECKDIRECTFLIPSUPPORT Pfnd3dddiCheckdirectflipsupport;

HRESULT Pfnd3dddiCheckdirectflipsupport(
  HANDLE hDevice,
  D3DDDIARG_CHECKDIRECTFLIPSUPPORT *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。

unnamedParam2

pData [in, out]

操作のパラメーターを定義する D3DDDIARG_CHECKDIRECTFLIPSUPPORT 構造体へのポインター。

戻り値

操作が正常に実行されない場合は、S_OKまたは適切なエラー結果を返します。

備考

この関数は、DWM が Direct Flip スワップチェーンへの提示を試みる前に、少なくとも 1 回呼び出されます。 また、各モードの変更が発生した後、または DWM が何らかの理由で独自のスワップチェーンを再作成した後にも呼び出されます。

ユーザー モード ドライバーは、アプリケーションと DWM のマネージド プライマリ割り当てに、次の互換性のあるリソースがあることを確認する必要があります。

  • ステレオ リソース。
  • 複数のサンプルアンチ エイリアシング (MSAA) 形式。
  • スウィズル形式。 スウィズルを VSync 間隔ごとにのみ変更できる場合は、D3DDDI_CHECK_DIRECT_FLIP_FLAGS 構造体の CheckDirectFlipFlags メンバーに値が D3D11_1DDI_CHECK_DIRECT_FLIP_IMMEDIATEされていないことを確認します。
  • 両方のマネージド プライマリ割り当ては、D3DDDI_ALLOCATIONINFO 構造体の同じ VidPnSourceId 値を使用して作成する必要があります。
  • ディスプレイ アダプターの構成がリンクされています。
ユーザー モード ドライバーでは、これらの検証を実行するカーネル モード ドライバーを呼び出す必要があります。 これを行うには、pfnEscapeCb コールバック関数を呼び出し、DxgkCbGetHandleData 関数を呼び出して、カーネル モード ドライバーのリソース割り当てデータにアクセスします。

DWM は通常、可能な限り最高の Microsoft Direct3D 機能レベルを使用して独自のデバイスを作成するため、ハードウェアがバージョン 9.3 より大きい Direct3D デバイス ドライバー インターフェイス (DDI) をサポートしている場合、DWM はこの関数を呼び出しません。 ただし、Microsoft Direct3D 9 ドライバーでは、Direct Flip ユーザー エクスペリエンスを有効にするには、この関数を実装する必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 8
サポートされる最小サーバー Windows Server 2012
ターゲット プラットフォーム デスクトップ
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

D3DDDI_CHECK_DIRECT_FLIP_FLAGS

D3DDDI_DEVICEFUNCS