if pred - ps
Start eines if bool - ps... else - ps... endif – ps-Block mit der Bedingung, die aus dem Inhalt des Prädikatregisters übernommen wird.
Syntax
| wenn [ ! ] pred.replicateSwizzle |
|---|
Hierbei gilt:
- [!] ist ein optionaler NOT-Modifizierer. Dadurch wird der Wert im Prädikatregister verändert.
- pred ist das Prädikatregister.
- replicateSwizzle ist eine einzelne Komponente, die in alle vier Komponenten kopiert (oder repliziert) wird (swizzled). Gültige Komponenten sind: [ x, y, z, w ] oder [ r, g, b, a ] .
Hinweise
| Pixel-Shaderversionen | 1_1 | 1_2 | 1 _ 3 | 1_4 | 2 _ 0 | 2 _ x | 2 _ sw | 3 _ 0 | 3 _ sw |
|---|---|---|---|---|---|---|---|---|---|
| if _ pred | x | x | x | x |
Diese Anweisung wird verwendet, um einen Codeblock basierend auf einem Kanal des Prädikatregisters zu überspringen. Jeder if _ pred-Block muss mit einer else-Anweisung enden: ps oder endif - ps.
Es gelten folgende Beschränkungen:
, _ wenn vordefinierte Blöcke geschachtelt werden können. Dies zählt zur gesamten dynamischen Schachtelungstiefe zusammen mit if _ comp-Blöcken.
Ein , wenn ein pred-Block einen Schleifenblock nicht umschließen kann. Er sollte sich entweder vollständig darin oder _ umschließen.