9 static void dispatchDecoder8(
ubyte **pFrame, 
ubyte codeType, 
ubyte **pData, 
int *pDataRemain, 
int *curXb, 
int *curYb);
 
   19         for (j = 0; j < yb; j++) {
 
   20                 for (i = 0; i < (xb / 2); i++) {
 
   21                         dispatchDecoder8(&pFrame, (*pMap) & 0xf, &pData, &dataRemain, &i, &j);
 
   23                         dispatchDecoder8(&pFrame, (*pMap) >> 4, &pData, &dataRemain, &i, &j);
 
   33 static void relClose(
int i, 
int *
x, 
int *
y)
 
   44 static void relFar(
int i, 
int sign, 
int *
x, 
int *
y)
 
   47                 *x = sign * (8 + (i % 7));
 
   50                 *x = sign * (-14 + (i - 56) % 29);
 
   51                 *y = sign *   (8 + (i - 56) / 29);
 
   57 static void copyFrame(
ubyte *pDest, 
ubyte *pSrc)
 
   61         for (i = 0; i < 8; i++) {
 
   62                 memcpy(pDest, pSrc, 8);
 
   77                 *pFrame++ = p[(mask & 
pattern) >> shift];
 
   92                 pel = p[(mask & pat0) >> shift];
 
  112                 pel = p[(mask & pat) >> shift];
 
  125         unsigned long mask = 0x00000003UL;
 
  128         unsigned long pat = (pat3 << 24) | (pat2 << 16) | (pat1 << 8) | pat0;
 
  130         for (i = 0; i < 16; i++) {
 
  131                 pFrame[i&3] = p[(pat & 
mask) >> shift];
 
  147                 *pFrame++ = p[(mask & pat) ? 1 : 0];
 
  158         while (mask != 0x10) {
 
  159                 pel = p[(mask & pat) ? 1 : 0];
 
  177         ushort pat = (pat1 << 8) | pat0;
 
  179         for (i = 0; i < 4; i++) {
 
  180                 for (j = 0; j < 4; j++) {
 
  181                         pel = p[(pat & 
mask) ? 1 : 0];
 
  190 static void dispatchDecoder8(
ubyte **pFrame, 
ubyte codeType, 
ubyte **pData, 
int *pDataRemain, 
int *curXb, 
int *curYb)
 
  208                         relFar(*(*pData)++, 1, &x, &y);
 
  209                         copyFrame(*pFrame, *pFrame + x + y*
g_width);
 
  215                         relFar(*(*pData)++, -1, &x, &y);
 
  216                         copyFrame(*pFrame, *pFrame + x + y*
g_width);
 
  222                         relClose(*(*pData)++, &x, &y);
 
  229                         x = (
signed char)*(*pData)++;
 
  230                         y = (
signed char)*(*pData)++;
 
  237                         for (i = 0; i < 2; i++) {
 
  240                                 if (++*curXb == (
g_width >> 3)) {
 
  255                                 for (i = 0; i < 8; i++) {
 
  256                                         patternRow2Pixels(*pFrame, *(*pData)++, p);
 
  260                                 for (i = 0; i < 2; i++) {
 
  261                                         patternRow2Pixels2(*pFrame, *(*pData) & 0xf, p);
 
  264                                         patternRow2Pixels2(*pFrame, *(*pData)++ >> 4, p);
 
  273                         if ( (*pData)[0] <= (*pData)[1] ) {
 
  275                                 for (i = 0; i < 4; i++) {
 
  278                                         pat[0] = *(*pData)++;
 
  279                                         pat[1] = *(*pData)++;
 
  280                                         patternQuadrant2Pixels(*pFrame, pat[0], pat[1], p);
 
  288                         } 
else if ( (*pData)[6] <= (*pData)[7] ) {
 
  290                                 for (i = 0; i < 4; i++) {
 
  296                                         pat[0] = *(*pData)++;
 
  297                                         pat[1] = *(*pData)++;
 
  298                                         patternQuadrant2Pixels(*pFrame, pat[0], pat[1], p);
 
  307                                 for (i = 0; i < 8; i++) {
 
  313                                         patternRow2Pixels(*pFrame, *(*pData)++, p);
 
  322                         if ( (*pData)[0] <= (*pData)[1] ) {
 
  323                                 if ( (*pData)[2] <= (*pData)[3] ) {
 
  329                                         for (i = 0; i < 8; i++) {
 
  330                                                 pat[0] = *(*pData)++;
 
  331                                                 pat[1] = *(*pData)++;
 
  333                                                 patternRow4Pixels(*pFrame, pat[0], pat[1], p);
 
  344                                         patternRow4Pixels2(*pFrame, *(*pData)++, p);
 
  347                                         patternRow4Pixels2(*pFrame, *(*pData)++, p);
 
  350                                         patternRow4Pixels2(*pFrame, *(*pData)++, p);
 
  353                                         patternRow4Pixels2(*pFrame, *(*pData)++, p);
 
  357                                 if ( (*pData)[2] <= (*pData)[3] ) {
 
  364                                         for (i = 0; i < 8; i++) {
 
  365                                                 pat[0] = *(*pData)++;
 
  367                                                 patternRow4Pixels2x1(*pFrame, pat[0], p);
 
  379                                         for (i = 0; i < 4; i++) {
 
  380                                                 pat[0] = *(*pData)++;
 
  381                                                 pat[1] = *(*pData)++;
 
  383                                                 patternRow4Pixels(*pFrame, pat[0], pat[1], p);
 
  386                                                 patternRow4Pixels(*pFrame, pat[0], pat[1], p);
 
  396                         if ( (*pData)[0] <= (*pData)[1] ) {
 
  397                                 for (i = 0; i < 4; i++) {
 
  402                                         pat[0] = *(*pData)++;
 
  403                                         pat[1] = *(*pData)++;
 
  404                                         pat[2] = *(*pData)++;
 
  405                                         pat[3] = *(*pData)++;
 
  407                                         patternQuadrant4Pixels(*pFrame, pat[0], pat[1], pat[2], pat[3], p);
 
  415                                 if ( (*pData)[12] <= (*pData)[13] ) {
 
  417                                         for (i = 0; i < 4; i++) {
 
  425                                                 pat[0] = *(*pData)++;
 
  426                                                 pat[1] = *(*pData)++;
 
  427                                                 pat[2] = *(*pData)++;
 
  428                                                 pat[3] = *(*pData)++;
 
  430                                                 patternQuadrant4Pixels(*pFrame, pat[0], pat[1], pat[2], pat[3], p);
 
  439                                         for (i = 0; i < 8; i++) {
 
  447                                                 pat[0] = *(*pData)++;
 
  448                                                 pat[1] = *(*pData)++;
 
  450                                                 patternRow4Pixels(*pFrame, pat[0], pat[1], p);
 
  460                         for (i = 0; i < 8; i++) {
 
  461                                 memcpy(*pFrame, *pData, 8);
 
  471                         for (i = 0; i < 4; i++) {
 
  472                                 for (j = 0; j < 2; j++) {
 
  473                                         for (k = 0; k < 4; k++) {
 
  474                                                 (*pFrame)[2*k]   = (*pData)[k];
 
  475                                                 (*pFrame)[2*k+1] = (*pData)[k];
 
  489                         for (i = 0; i < 2; i++) {
 
  490                                 for (j = 0; j < 4; j++) {
 
  491                                         for (k = 0; k < 4; k++) {
 
  492                                                 (*pFrame)[k*
g_width+j] = (*pData)[0];
 
  493                                                 (*pFrame)[k*
g_width+j+4] = (*pData)[1];
 
  506                         for (i = 0; i < 8; i++) {
 
  507                                 memset(*pFrame, **pData, 8);
 
  517                         for (i = 0; i < 8; i++) {
 
  518                                 for (j = 0; j < 8; j++) {
 
  519                                         (*pFrame)[j] = (*pData)[(i+j)&1];
 
void decodeFrame8(ubyte *pFrame, ubyte *pMap, int mapRemain, ubyte *pData, int dataRemain)
 
GLint GLint GLint GLint GLint x