Bonjour,
Je n'ai pas lu le tuto, mais � la lecture du code, je pense que :
screen est un tableau de hauteurPixel lignes, chaque ligne ayant largeurPixel colonnes et chaque colonne ayant nbCouleurs canaux de couleurs.
Cela doit ressembler � quelque chose comme �a :
float screen[hauteurPixel*largeurPixel*nbCouleurs];
Les trois boucles for it�rent :
1 2 3 4 5 6
| for(unsigned long j=0; j< hauteurPixel; ++j)
{ // pour chaque ligne
for(unsigned long i=0; i< largeurPixel; ++i)
{ // pour chaque colonne
for(unsigned int k=0; k < nbCouleurs; ++k)
{// pour chaque canal de couleur |
Le premier canal [k=0] de la premi�re colonne [i=0] de la premi�re ligne [j=0] est screen[0]
Le second canal [k=1] de la premi�re colonne [i=0] de la premi�re ligne [j=0] est screen[1]
...
Le dernier canal [k=nbCouleurs-1] de la premi�re colonne [i=0] de la premi�re ligne [j=0] est screen[nbCouleurs-1]
Le premier canal [k=0] de la seconde colonne [i=1] de la premi�re ligne [j=0] est screen[nbCouleurs + 0]
Le second canal [k=1] de la seconde colonne [i=1] de la premi�re ligne [j=0] est screen[nbCouleurs + 1]
...
Le dernier canal [k=nbCouleurs-1] de la seconde colonne [i=1] de la premi�re ligne [j=0] est screen[nbCouleurs + nbCouleurs-1]
Pour synth�tiser, quand on a parcouru i colonnes en entier, on a parcouru i*nbCouleurs entr�es de screen.
De la m�me fa�on, quand on a parcouru j lignes en entier, on a parcouru (en rempla�ant i par largeurPixel) : largeurPixel * nbCouleurs entr�es de screen.
Donc � un moment (j,i,k) donn�e, on a parcouru :
j * (largeurPixel* nbCouleurs ) + i * nbCouleurs + k
Ce qu'il factorise en :
nbCouleurs * (j*largeurPixel + i) + k
Partager