次の方法で共有


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

pfnSetDisplayPrivateDriverFormatCb 関数は、ビデオ存在ソースのプライベート形式属性を変更します。

構文

PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;

HRESULT Pfnd3dddiSetdisplayprivatedriverformatcb(
  HANDLE hDevice,
  const D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT *unnamedParam2
)
{...}

パラメーター

hDevice

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

unnamedParam2

pData [in]

ビデオの現在のソースの書式設定方法を説明する D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT 構造体へのポインター。

戻り値

pfnSetDisplayPrivateDriverFormatCb 、次のいずれかの値が返されます。

リターン コード 形容
S_OK ビデオの現在のソースが正常に変更されました。
E_INVALIDARG パラメーターが検証され、正しくないと判断されました。
E_FAIL pfnSetDisplayPrivateDriverFormatCb は、ビデオの現在のソースのプライベート形式の属性を変更できませんでした。

この関数は、他の HRESULT 値を返す場合もあります。

備考

ビデオの現在のソースのプライベート形式の属性を変更すると、共有 GDI プライマリ サーフェスが全画面表示 DirectX アプリケーションに最適でないプライベート形式である場合に反転の変更を作成する全画面表示 DirectX アプリケーションに対応するのに役立ちます。 たとえば、ディスプレイ ミニポート ドライバーは常に、GDI 共有プライマリ サーフェスを非スウィズルとして作成するとします。 ただし、パフォーマンス上の理由から、ユーザー モード ディスプレイ ドライバーでは、全画面表示の反転チェーン内のすべてのサーフェスがスウィズルされている必要があります。 その後、ユーザー モードのディスプレイ ドライバーは、バック バッファーをスウィズルとして作成し、pfnSetDisplayPrivateDriverFormatCb 呼び出して、共有 GDI プライマリ サーフェスをスウィズルに変更できます。

pfnSetDisplayPrivateDriverFormatCb 呼び出しが失敗した場合、ユーザー モードのディスプレイ ドライバーは、ビデオの現在のソースのプライベート形式属性を変更せずに続行する必要があります。 前の例では、ドライバーは共有プライマリをスウィズル解除のままにして、バック バッファーをスウィズルするか、ドライバーでバック バッファーをスウィズルされていない形式に変更できます。

pfnSetDisplayModeCb 関数の呼び出しからユーザー モード ディスプレイ ドライバーがD3DDDIERR_INCOMPATIBLEPRIVATEFORMAT エラーを受け取った場合、ドライバーは次のいずれかを実行できます。

  • プライマリ サーフェスのプライベート形式属性を変更し、pfnSetDisplayModeCb 再度呼び出
  • pfnSetDisplayPrivateDriverFormatCb 呼び出し、ビデオの現在のソースのプライベート形式属性の変更を試みます。 その後、pfnSetDisplayModeCb を再度呼び出すことができます。
ユーザー モード ディスプレイ ドライバーは、D3DDDIARG_CREATEDEVICE 構造体の Version メンバーがドライバーの CreateDevice 関数の呼び出しで (hDevice パラメーターで指定された) ディスプレイ デバイスが作成されたときに 7 より大きい値に設定されている場合にのみ、pfnSetDisplayPrivateDriverFormatCb を呼び出すことができます。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb