次の方法で共有


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 宣言

関連項目

IDirect3DDevice9::GetSoftwareVertexProcessing