相対アドレス指定
相対アドレス指定
[ ] 構文は、特定のシェーダ モデルで相対アドレス指定できるようなレジスタ タイプでのみ使える。サポートされている [ ] 構文の形式を次に示す。
ここで
- "R" は、相対アドレス指定できる任意のレジスタ タイプを示す。
- "A" は、他のレジスタを相対アドレス指定するインデックスとして使える任意のレジスタを示す。
- n0 - ni、m0 - mj、k は 0 以上の整数。
[ ] 構文 | 有効なインデックス | 例 |
---|---|---|
R[ A + m0 + ...+ mj ] | A + m0 + ...+ mj | c[ a0.x + 3 + 7 ] |
R[ k ] ( = Rk ) | K | c[ 10 ] ( = c10 ) |
R[ A ] | A | c[ a0.y ] |
Rk[ n0 + ...+ ni + A + m0 + ...+ mj ] | A + k + n0 + ...+ ni + m0 + ...+ mj | c8[ 3 + 2 + a0.w + 5 + 6 + 1 ] |
R[ n0 + ...+ ni + A + m0 + ...+ mj ] | A + n0 + ...+ ni + m0 + ...+ mj | c[ 2 + 1 + aL + 3 + 4 + 5 ] |
Rk[ A ] | A + k | c12[ aL ], c0[ a0.z ] |
Rk[ A + m0 + ...+ mj ] | A + k + m0 + ...+ mj | v1[ aL + 4 + 8 ] |
R[ n0 + ...+ ni + A ] | A + n0 + ...+ ni | o[ 3 + 1 + aL ] |
Rk[ n0 + ...+ ni + A ] | A + k + n0 + ...+ ni | o1[ 2 + 1 + 3 + aL ] |
レジスタは、次のバージョンで利用できる。
レジスタ タイプ | シェーダのバージョン |
---|---|
a0 | vs_1_1 以降、 |
aL | vs_2_0 以降、ps_3_0 |
cn | vs_1_1 以降、ps_3_0 |
on | vs_3_0 |