次の方法で共有


IDirect3DDevice9::ValidateDevice メソッド (d3d9.h)

現在のテクスチャ ブレンド操作と引数を 1 回のパスでレンダリングするデバイスの機能を報告します。

構文

HRESULT ValidateDevice(
  [out, retval] DWORD *pNumPasses
);

パラメーター

[out, retval] pNumPasses

型: DWORD*

マルチパス レンダリングを使用して目的の効果を完了するために必要なレンダリング パスの数を埋める DWORD 値へのポインター。

戻り値

型: HRESULT

メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合、戻り値は、D3DERR_CONFLICTINGRENDERSTATE、D3DERR_CONFLICTINGTEXTUREFILTER、D3DERR_DEVICELOST、D3DERR_DRIVERINTERNALERROR、D3DERR_TOOMANYOPERATIONS、D3DERR_UNSUPPORTEDALPHAARG、D3DERR_UNSUPPORTEDALPHAOPERATION、D3DERR_UNSUPPORTEDCOLORARG、D3DERR_UNSUPPORTEDCOLOROPERATION、D3DERR_UNSUPPORTEDFACTORVALUE、D3DERR_UNSUPPORTEDTEXTUREFILTER、D3DERR_WRONGTEXTUREFORMATのいずれかになります。

注釈

IDirect3DDevice9::ValidateDevice メソッドは、他の機能が不足している場合にのみシナリオを検証するために使用する必要があります。 たとえば、マルチステージ テクスチャリング シナリオでは、 D3DCAPS9 構造体の MaxTextureBlendStages メンバーと MaxSimultaneousTextures メンバーに対してクエリを実行して、デバイスでマルチステージ テクスチャリングが可能かどうかを判断できます。

現在のハードウェアでは、操作と引数の組み合わせがすべて実装されるとは限りません。 特定のブレンド操作を特定の引数で実行できるかどうかを判断するには、目的のブレンド操作を設定し、 IDirect3DDevice9::ValidateDevice メソッドを呼び出します。

IDirect3DDevice9::ValidateDevice メソッドは、現在のレンダリング状態、テクスチャ、およびテクスチャ ステージの状態を使用して、呼び出し時に検証を実行します。 呼び出し後にこれらの要因を変更すると、前の結果が無効になり、シーンをレンダリングする前に メソッドを再度呼び出す必要があります。

最適なパフォーマンスを得るには、初期化時 に IDirect3DDevice9::ValidateDevice を呼び出します。レンダー ループ内では使用しないでください。

現在のハードウェアでは、拡散反復値を引数または操作 (D3DTA_DIFFUSED3DTOP_BLENDDIFFUSEALPHA) として使用することはめったにサポートされません。 ほとんどのハードウェアでは、最後のテクスチャ操作ステージでのみ、反復処理された色データを導入できます。

2 番目の引数ではなく、各ステージのテクスチャ (D3DTA_TEXTURE) を最初の引数として指定してみてください。

多くのカードでは、任意のテクスチャ ステージでの拡散またはスカラー値の使用はサポートされていません。 多くの場合、これらは最初または最後のテクスチャ ブレンド ステージでのみ使用できます。

多くのカードには、アルファをカラー チャネルにレプリケートしたり、入力を反転したりする以外に、最初のテクスチャに関連付けられたブレンド ユニットがありません。 そのため、可能であれば、アプリケーションで 2 番目のテクスチャ ステージのみを使用する必要がある場合があります。 このようなハードウェアでは、最初のユニットは既定の状態であると想定され、最初の color 引数はD3DTOP_SELECTARG1操作でD3DTA_TEXTUREに設定されます。

出力アルファに対する操作が、カラー操作よりも複雑であるか、または色操作と大きく異なる場合は、サポートされる可能性が低くなります。

一部のハードウェアでは、D3DTA_TFACTORとD3DTA_DIFFUSEの同時使用はサポートされていません。

多くのカードでは、複数のテクスチャと mipmapped 三線フィルター処理の同時使用はサポートされていません。 マルチテクスチャ ブレンド操作に関係するテクスチャに対して三線フィルター処理が要求され、検証が失敗した場合は、三線フィルター処理をオフにして再検証します。 この場合は、代わりにマルチパス レンダリングを実行できます。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d9.h (D3D9.h を含む)
Library D3D9.lib

こちらもご覧ください

IDirect3DDevice9

IDirect3DDevice9::GetTextureStageState

IDirect3DDevice9::SetTextureStageState