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 ブロックを囲む必要があります。