IDirect3DDevice9::SetSoftwareVertexProcessing メソッド
IDirect3DDevice9::SetSoftwareVertexProcessing メソッド
このメソッドは、頂点処理をソフトウェアとハードウェアで切り替えるために使う。
構文
HRESULT SetSoftwareVertexProcessing(
BOOL bSoftware
);
パラメータ
- bSoftware
[in] ソフトウェア頂点処理を指定するには TRUE、ハードウェア頂点処理を指定するには FALSE を指定する。
戻り値
成功した場合は、D3D_OK を返す。
失敗した場合は、D3DERR_INVALIDCALL を返す。
注意
モードの変更には次のような制限がある。
- D3DCREATE_SOFTWARE_VERTEXPROCESSING でデバイスを作成した場合、頂点処理はソフトウェアで処理される。これを変更することはできない。
- D3DCREATE_HARDWARE_VERTEXPROCESSING でデバイスを作成した場合、頂点処理はハードウェアで処理される。これを変更することはできない。
- D3DCREATE_MIXED_VERTEXPROCESSING でデバイスを作成した場合、デフォルトでは頂点処理はハードウェアで処理される。処理をソフトウェアに変更したりハードウェアに戻したりするには、IDirect3DDevice9::SetSoftwareVertexProcessing を使う。
アプリケーションは、ソフトウェア頂点処理とハードウェア頂点処理の両方に使えるミックス モードのデバイスを作成できる。Microsoft® DirectX® 8.x で頂点処理モードを切り替えるには、レンダリング ステート D3DRS_SOFTWAREVERTEXPROCESSING と適切な DWORD 引数を指定して IDirect3DDevice8::SetRenderState を使う。レンダリング ステートを使う方法には、ステート ブロックのセマンティクスを定義することが難しいという欠点がある。アプリケーションとランタイムでは、余分な処理を実行しなければならず、またステート ブロックの記録および再生中には注意が必要である。
DirectX 9.0 では、代わりに SetSoftwareVertexProcessing を使う。この新しいアプリケーション プログラミング インターフェイス (API) はステート ブロックによって記録されない。
参照