Integerregister für Konstante (HLSL-PS-Referenz)
Konstanten ganzzahlige Register werden nur von der Schleife verwendet : ps und rep - ps.
Sie können mithilfe von defi - ps oder SetPixelShaderConstantIfestgelegt werden.
Bei Verwendung als Argument für die -Schleife – ps-Anweisung:
- .x ist die Iterationsanzahl. (rep – ps verwendet nur diese Komponente).
- .y ist der Anfangswert für den Schleifenzähler.
- .z ist der Schritt inkrementieren für den Schleifenzähler.
| Pixelshaderversionen | 1_1 | 1_2 | 1 _ 3 | 1_4 | 2 _ 0 | 2 _ sw | 2 _ x | 3 _ 0 | 3 _ sw |
|---|---|---|---|---|---|---|---|---|---|
| Constant Integer Register | x | x | x |
Das Verhalten von Shaderkonstanten hat sich zwischen Direct3D 8 und Direct3D 9 geändert.
- Für Direct3D 9 weisen konstanten Konstanten, die mit defx festgelegt wurden, Werte dem konstanten Shaderbereich zu. Die Lebensdauer einer Konstanten, die mit defx deklariert wurde, ist auf die Ausführung dieses Shaders beschränkt. Umgekehrt initialisieren Konstanten, die mithilfe der APIs SetXXXShaderConstantX festgelegt werden, Konstanten im globalen Raum. Konstanten im globalen Raum werden erst in den lokalen Bereich kopiert (für den Shader sichtbar), wenn SetxxxShaderConstants aufgerufen wird.
- Für Direct3D 8 weisen konstanten Konstanten, die mit defx oder den APIs festgelegt wurden, dem Konstantenbereich des Shaders Werte zu. Jedes Mal, wenn der Shader ausgeführt wird, werden die Konstanten vom aktuellen Shader verwendet, unabhängig von der Technik, mit der sie festgelegt werden.