Constant Integer Register (HLSL VS-Referenz)
Konstanten-Ganzzahlregister werden nur von schleifenbasierten Registern (vs. und rep) im Vergleich zu verwendet.
Sie können mit defi - vs oder SetVertexShaderConstantI festgelegt werden.
Bei Verwendung als Argument für die Schleife – vs-Anweisung:
- .x ist die Iterationsanzahl. (rep - vs verwendet nur diese Komponente).
- .y ist der Anfangswert für den Schleifenzähler.
- .z ist der Inkrementschritt für den Schleifenzähler.
Das Verhalten von Shaderkonst constants hat sich zwischen Direct3D 8 und Direct3D 9 geändert.
- Bei Direct3D 9 weisen konstanten Konstanten, die mit defx festgelegt wurden, Werte dem konstanten Shaderraum zu. Die Lebensdauer einer mit defx deklarierten Konstante 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 dann in den lokalen Raum kopiert (für den Shader sichtbar), wenn SetxxxShaderConstants aufgerufen wird.
- Bei Direct3D 8 weisen Konstanten, die mit defx oder den APIs festgelegt wurden, Werte dem konstanten Shaderraum 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 wurden.