次の方法で共有


ブール型定数レジスタ

このレジスタは、静的フロー制御命令 (たとえば、if bool - ps - else - ps - endif - ps) で使われるビットの集合です。ビットは 16 個あるので、シェーダーには 16 の独立した分岐条件を設定できます。これらは、defb - ps または SetPixelShaderConstantB を使用して設定できます。

Direct3D 8 と Direct3D 9 では、シェーダー定数の動作は異なります。

  • Direct3D 9 の場合、defx を使って設定された定数は、シェーダー定数領域に割り当てます。defx で宣言された定数の有効期間は、そのシェーダーの実行のみに限定されます。反対に、APIs SetXXXShaderConstantX API を使って設定された定数は、定数をグローバル領域で初期化します。グローバル領域の定数は、SetxxxShaderConstants が呼び出されるまで、シェーダーから見えるローカル領域にコピーされません。
  • Direct3D 8 の場合、defx または API を使って設定された定数は、どちらもシェーダー定数領域に割り当てます。シェーダーが実行されるたびに、定数の設定に使われた手法にかかわらず、現在のシェーダーが定数を使用します。
ピクセル シェーダーのバージョン 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
ブール型定数レジスタ x x x