GLSL ha in comune con il C tutti i costrutti di controllo eccetto lo switch-case, che non è presente.
{
/* blocco di codice */
}
if (bool condizione)
...
if (bool condizione)
{
/* istruzioni qui */
}
if (bool condizione)
{
/* se e' vero, questo */
}
else
{
/* altrimenti questo */
}
while (bool condizione)
...
do
...
while (bool condizione);
for (inizializzazione; bool condizione; incremento)
...
Le parole chiave continue e break mantengono lo stesso significato del C.
for (int i = 0; i < 5; ++i) { if (i == 3) continue; // Salta all'iterazione successiva ... if (i < 0) break; // Esce dal ciclo }
La gestione della visibilità delle variabili nei blocchi di codice è identica al C.
Esiste anche l'operatore ternario ed è esteso a tutti i tipi predefiniti e alle strutture. Come nel C, il risultato dell'operatore è uguale al secondo valore se la condizione è vera e al terzo valore se è falsa.
vec4 v = condizione ? vec4(1.0,2.0,3.0,4.0) : vec4(1.0,-1.0,0.0,1.0); float b = condizione ? v.x : v.z;
Copyright © 2011 Riccardo Monica
Eccetto ove espressamente indicato altrimenti, il contenuto di questa pagina è disponibile secondo la licenza Creative Commons Attribuzione - Condividi allo stesso modo 3.0.