Microsoft DirectX 8.0 (Visual Basic) |
頂点シェーダを作成し、作成が成功した場合は、そのシェーダをカレント シェーダとして設定する。
object.CreateVertexShader( _ DeclarationTokenArray As Long, _ FunctionTokenArray As Any, _ retHandle As Long, _ Usage As Long)
このパラメータに ByVal 0 以外の値を設定すると、シェーダはプログラム可能になる。
失敗した場合はエラーが発生し、Err.Number に次のいずれかの値が設定される。
D3DERR_INVALIDCALL |
D3DERR_OUTOFVIDEOMEMORY |
E_OUTOFMEMORY |
エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。
頂点シェーダは、シェーダの宣言と機能を指定する 2 つのトークン配列によって定義される。トークン配列は、1 つ以上の Long トークンで構成されており、配列の末尾は特殊なトークン値 &HFFFFFFFF で示される。
シェーダの宣言はシェーダの静的な外部インターフェイスを定義しており、頂点レジスタ入力に対するストリーム データのバインドや、シェーダの定数メモリにロードされる値などが含まれる。シェーダの機能では、シェーダがデバイスにバインドされている間に各頂点に対する処理のために実行される命令の配列として、シェーダの動作が定義されている。機能の配列を指定しないでシェーダを作成すると、そのシェーダがカレント シェーダのときには、固定機能の頂点処理が適用される。
宣言のトークン配列を生成するために使用する定数の定義については、d3dshader.bas を参照すること。
Direct3DDevice8.DeleteVertexShader、D3DX8.AssembleShader、D3DX8.AssembleShaderFromFile、D3DX8.DeclaratorFromFVF