pWorkrow = pData->pWorkrow + 1;
pWorkrow = pData->pWorkrow + pData->iPixelofs;
mng_retcode process_rgb8 (mng_datap pData){  mng_uint8p     pWorkrow;  mng_uint8p     pRGBArow;  mng_int32      iX;  mng_uint8      iR, iG, iB;  mng_imagedatap pBuf = (mng_imagedatap)pData->pStorebuf;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_PROCESS_RGB8, MNG_LC_START)#endif  if (!pBuf)                           /* no object? then use obj 0 */    pBuf = ((mng_imagep)pData->pObjzero)->pImgbuf;  pWorkrow = pData->pWorkrow + 1;      /* temporary workpointers */  pRGBArow = pData->pRGBArow;  if (pBuf->bHasTRNS)                  /* tRNS encountered ? */  {    for (iX = 0; iX < pData->iRowsamples; iX++)    {      iR = *pWorkrow;                  /* get the RGB values */      iG = *(pWorkrow+1);      iB = *(pWorkrow+2);                                       /* transparent ? */      if ((iR == pBuf->iTRNSred) && (iG == pBuf->iTRNSgreen) &&          (iB == pBuf->iTRNSblue))      {        *pRGBArow     = 0;             /* this pixel is transparent ! */        *(pRGBArow+1) = 0;        *(pRGBArow+2) = 0;        *(pRGBArow+3) = 0;      }      else      {        *pRGBArow     = iR;            /* copy the RGB values */        *(pRGBArow+1) = iG;        *(pRGBArow+2) = iB;        *(pRGBArow+3) = 0xFF;          /* this one isn't transparent */      }      pWorkrow += 3;                   /* next pixel */      pRGBArow += 4;    }    pData->bIsOpaque = MNG_FALSE;      /* it's not fully opaque */  }  else  {    for (iX = 0; iX < pData->iRowsamples; iX++)    {      *pRGBArow     = *pWorkrow;       /* copy the RGB bytes */      *(pRGBArow+1) = *(pWorkrow+1);      *(pRGBArow+2) = *(pWorkrow+2);      *(pRGBArow+3) = 0xFF;            /* no alpha; so always fully opaque */      pWorkrow += 3;                   /* next pixel */      pRGBArow += 4;    }    pData->bIsOpaque = MNG_TRUE;       /* it's fully opaque */  }#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_PROCESS_RGB8, MNG_LC_END)#endif  return MNG_NOERROR;}