Viewing file: pr64829.c (1.16 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do compile } */
typedef unsigned char Uint8; typedef int Sint32; typedef unsigned int Uint32;
typedef union RMColorDataRef { Uint8* data8; } RMColorDataRef;
typedef struct RMColorData { Uint32 dataCount; RMColorDataRef dataRef; } RMColorData;
typedef struct RMColorTable { Uint8 dataCompsOut; RMColorDataRef dataRef; } RMColorTable;
int fail ( const RMColorData * pInColor, RMColorData * pOutColor, const RMColorTable * pColorTable ) { Uint32 comp; Uint8 nCompOut;
Sint32 result;
Uint32 interpFrac1, interpFrac2, interpFrac3; Sint32 val0, val1, val2, val3;
Uint8 * pOut;
const Uint8 * pClutData; const Uint8 * pCornerPoint0;
Uint8 lastOut[((8) > (4) ? (8) : (4))];
pOut = pOutColor->dataRef.data8; pClutData = pColorTable->dataRef.data8;
nCompOut = pColorTable->dataCompsOut;
pCornerPoint0 = pClutData;
for (comp = 0; comp < nCompOut; comp++) { val0 = *pCornerPoint0++;
result = val0 << 4;
result += (val1 - val0) * interpFrac1; result += (val2 - val1) * interpFrac2; result += (val3 - val2) * interpFrac3;
*pOut++ = lastOut[comp] = (Uint8)(result >> 4); }
return (0); }
|