Hallo,
ich versuche ab und zu diverse Grafikanimationen zu verstehen. Dabei stoße ich immer wieder auf Code, wo Bits verschoben werden, wobei ich allerdings nicht verstehe, was man damit bezweckt.
Wenn ich ein Beispiel hernehme, das dieses gewisse rotierende Etwas erzeugt
..dann kann man im Code eine Funktion erkennen, die so aussieht:
void refresh1 () {
int i,j; /* macro-bloc */
int ii,jj; /* dans bloc (interpolation) */
int a,ai, z,zi; /* 8-8 (fixed-point = lsb) (/pixel)*/
int a0,a0i, z0,z0i;
int a1,a1i, z1,z1i;
int a2,a3,z2,z3;
word *tmp,*tmp1;
for (j=0; j<H/8; j++)
for (i=0; i<W/8; i++)
{
a0=ikse[j][i];
a1=ikse[j][i+1];
a2=ikse[j+1][i];
a3=ikse[j+1][i+1];
z0=igrek[j][i] ;
z1=igrek[j][i+1] ;
z2=igrek[j+1][i] ;
z3=igrek[j+1][i+1] ;
a0i=( a2 - a0) /8;
z0i=( z2 - z0) /8;
a1i=( a3 - a1) /8;
z1i=( z3 - z1) /8;
tmp1= (word *)buffer + i*8 + (j*8)*W ;
for (jj=8; jj; jj--)
{
tmp=tmp1+=W;
a=a0;
z=z0;
ai = (a1-a0) >>3;
zi = (z1-z0) >>3;
for (ii=8; ii; ii--)
{
* ( tmp++ ) = * ( texture1 +
( ((a>>8)&255) |
((z) & (255<<8))
)
) ;
a+=ai;
z+=zi;
}
a0+=a0i;
z0+=z0i;
a1+=a1i;
z1+=z1i;
}
}
}
In der letzten for Schleife werden ständig Bits verschoben, aber in welchen Bereichen, speziell bei Grafiken, wendet man so etwas an, und was tun diese Verschiebungen?
Markus.
--
http://www.apostrophitis.at
http://www.pithax.net
Wenn ich ein toller Programmierer währe, könnte ich vieleicht sogar Packete nach einem gewissen Standart kompelieren...
Vieleicht progge ich aber auch eine tolle Gallerie, die dann hoffentlich funzt.
http://www.apostrophitis.at
http://www.pithax.net
Wenn ich ein toller Programmierer währe, könnte ich vieleicht sogar Packete nach einem gewissen Standart kompelieren...
Vieleicht progge ich aber auch eine tolle Gallerie, die dann hoffentlich funzt.