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) 形式。
  • スウィズル形式。 swizzle を 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
対象プラットフォーム デスクトップ
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDI_CHECK_DIRECT_FLIP_FLAGS

D3DDDI_DEVICEFUNCS