次の方法で共有


if pred - vs

プレディケーション レジスタの内容から取得する条件で、if pred - vs...else - vs...endif - vs ブロックを開始します。

構文

if [!]pred.replicateSwizzle

この場合

  • [!] はオプションの NOT 修飾子です。この修飾子はプレディケーション レジスタの値を変更します。
  • pred はプレディケーション レジスタ (p0) です。「プレディケーション レジスタ」を参照してください。
  • replicateSwizzle は、4 つのすべての要素にコピー (複製) される 1 つの要素です (スィズルされます)。有効なコンポーネントは次のとおりです。x、y、z、w または r、g、b、a。

解説 

頂点シェーダーのバージョン 1_1 2_0 2_x 2_sw 3_0 3_sw
if pred x x x x

この命令は、プレディケーション レジスタのチャンネルに基づいて、コードのブロックをスキップするために使います。各 if_pred ブロックは、else 命令または endif 命令で終わらなければなりません。

次のような制限があります。

if_pred ブロックはネストできます。これは、if_comp ブロックと共に動的なネストの深度の合計にカウントされます。

if_pred ブロックは、loop ブロックをまたぐことはできません。これは完全に loop ブロックの内側に置くか、または loop ブロックを囲む必要があります。