PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB コールバック関数 (d3dumddi.h)
pfnSetDisplayPrivateDriverFormatCb 関数は、ビデオの現在のソースの private-format 属性を変更します。
構文
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 は、ビデオの現在のソースの private-format 属性を変更できませんでした。 |
この関数は、他の HRESULT 値も返す場合があります。
注釈
ビデオの現在のソースのプライベート形式属性を変更すると、共有 GDI プライマリ サーフェスが全画面表示 DirectX アプリケーションに最適でないプライベート形式である場合に反転の変更を作成する全画面表示 DirectX アプリケーションに対応するのに役立ちます。 たとえば、ディスプレイ ミニポート ドライバーが常に GDI 共有プライマリ サーフェスを非スウィズルとして作成するとします。 ただし、パフォーマンス上の理由から、ユーザー モード ディスプレイ ドライバーでは、全画面表示の反転チェーン内のすべてのサーフェスがスウィズルされている必要があります。 その後、ユーザー モード ディスプレイ ドライバーは、バック バッファーを swizzled として作成し、 pfnSetDisplayPrivateDriverFormatCb を 呼び出して、共有 GDI プライマリ サーフェスを swizzled に変更できます。
pfnSetDisplayPrivateDriverFormatCb の呼び出しが失敗した場合、ユーザー モード ディスプレイ ドライバーは、ビデオの現在のソースのプライベート形式属性を変更せずに続行する必要があります。 前の例では、ドライバーは共有プライマリを非スウィズルのままにして、バック バッファーをスウィズルするか、ドライバーでバック バッファーをスウィズルされていない形式に変更できます。
ユーザー モード ディスプレイ ドライバーが pfnSetDisplayModeCb 関数の呼び出しからD3DDDIERR_INCOMPATIBLEPRIVATEFORMAT エラーを受け取った場合、ドライバーは次のいずれかを実行できます。
- プライマリ サーフェスの private-format 属性を変更し、 pfnSetDisplayModeCb を再度呼び出します。
- pfnSetDisplayPrivateDriverFormatCb を呼び出し、ビデオ の現在のソースの private-format 属性の変更を試みます。 その後、ドライバーは pfnSetDisplayModeCb を再度呼び出すことができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | デスクトップ |
Header | d3dumddi.h (D3dumddi.h を含む) |