整数型定数レジスタ
整数型定数レジスタは、loop - ps および rep - ps でのみ使用されます。
これらは、defi - ps または SetPixelShaderConstantI を使用して設定できます。
loop - ps 命令の引数として使用する場合
- .x は反復カウントです (rep - ps ではこの要素のみが使われます)。
- .y はループ カウンターの初期値です。
- .z はループ カウンターの増分ステップです。
ピクセル シェーダーのバージョン | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
整数型定数レジスタ | x | x | x |
Direct3D 8 と Direct3D 9 では、シェーダー定数の動作は異なります。
- Direct3D 9 の場合、defx を使って設定された定数は、シェーダー定数領域に割り当てます。defx で宣言された定数の有効期間は、そのシェーダーの実行のみに限定されます。反対に、APIs SetXXXShaderConstantX API を使って設定された定数は、定数をグローバル領域で初期化します。グローバル領域の定数は、SetxxxShaderConstants が呼び出されるまで、シェーダーから見えるローカル領域にコピーされません。
- Direct3D 8 の場合、defx または API を使って設定された定数は、どちらもシェーダー定数領域に割り当てます。シェーダーが実行されるたびに、定数の設定に使われた手法にかかわらず、現在のシェーダーが定数を使用します。