111
|
1 void
|
|
2 f (n, ppt, xrot)
|
|
3 {
|
|
4 int tileWidth;
|
|
5 int nlwSrc;
|
|
6 int srcx;
|
|
7 int v3, v4;
|
|
8 register unsigned long ca1, cx1, ca2, cx2;
|
|
9 unsigned long *pSrcLine;
|
|
10 register unsigned long *pDst;
|
|
11 register unsigned long *pSrc;
|
|
12 register unsigned long b, tmp;
|
|
13 unsigned long tileEndMask;
|
|
14 int v1, v2;
|
|
15 int tileEndPart;
|
|
16 int needFirst;
|
|
17 tileEndPart = 0;
|
|
18 v1 = tileEndPart << 5;
|
|
19 v2 = 32 - v1;
|
|
20 while (n--)
|
|
21 {
|
|
22 if ((srcx = (ppt - xrot) % tileWidth) < 0)
|
|
23 if (needFirst)
|
|
24 if (nlwSrc == 1)
|
|
25 {
|
|
26 tmp = b;
|
|
27 if (tileEndPart)
|
|
28 b = (*pSrc & tileEndMask) | (*pSrcLine >> v1);
|
|
29 }
|
|
30 if (tileEndPart)
|
|
31 b = (tmp << v1) | (b >> v2);
|
|
32 if (v4 != 32)
|
|
33 *pDst = (*pDst & ((tmp << v3) | (b >> v4) & ca1 ^ cx1)
|
|
34 ^ (((tmp << v3) | (b >> v4)) & ca2 ^ cx2));
|
|
35 *pDst = *pDst & tmp;
|
|
36 }
|
|
37 }
|