IDirect3DDevice9::SetSoftwareVertexProcessing
このメソッドを使用して、ソフトウェア頂点処理とハードウェア頂点処理を切り替えます。
HRESULT
SetSoftwareVertexProcessing(
BOOL bSoftware
);
パラメータ
- bSoftware
TRUE の場合、ソフトウェア頂点処理を指定し、FALSE の場合、ハードウェア頂点処理を指定します。
戻り値
メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、D3DERR_INVALIDCALL を返します。
解説
モード変更時の制限は、次のとおりです :
- D3DCREATE_SOFTWARE_VERTEXPROCESSING を使用してデバイスを作成した場合、頂点処理はソフトウェアで実行され、変更できません。
- D3DCREATE_HARDWARE_VERTEXPROCESSING を使用してデバイスを作成した場合、頂点処理はハードウェアで実行され、変更できません。
- D3DCREATE_MIXED_VERTEXPROCESSING を使用してデバイスを作成した場合、頂点処理は既定でハードウェアで実行されます。IDirect3DDevice9::SetSoftwareVertexProcessing を使用して処理をソフトウェアに切り替えたり、さらにハードウェアに戻したりすることができます。
混合モード デバイスを作成して、ソフトウェア頂点処理とハードウェア頂点処理の両方を使用することができます。DirectX 8.x でこれら 2 つの頂点処理モード間で切り替えるには、レンダリング ステート D3DRS_SOFTWAREVERTEXPROCESSING および適切な DWORD 引数を使用して IDirect3DDevice8::SetRenderState を使用します。レンダリング ステート方法の欠点は、ステート ブロックのセマンティクスの定義が困難なことでした。また、アプリケーションやランタイムでは、ステート ブロックの再生と記録中に余分な作業や注意が必要でした。
Direct3D 9 では、代わりに SetSoftwareVertexProcessing を使用します。この新しい API は StateBlocks により記録されません。
要件
ヘッダー: D3D9.h 宣言