⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libmng_zlib.c

📁 Linux下的基于X11的图形开发环境。
💻 C
📖 第 1 页 / 共 2 页
字号:
        {#ifdef MNG_INCLUDE_JNG          if (pData->bHasJHDR)         /* is JNG alpha-channel ? */          {                            /* just store in object ? */            if ((!iRslt) && (pData->fStorerow))              iRslt = ((mng_storerow)pData->fStorerow)     (pData);          }          else#endif /* MNG_INCLUDE_JNG */          {                            /* process this row */            if ((!iRslt) && (pData->fProcessrow))              iRslt = ((mng_processrow)pData->fProcessrow) (pData);                                       /* store in object ? */            if ((!iRslt) && (pData->fStorerow))              iRslt = ((mng_storerow)pData->fStorerow)     (pData);                                       /* color correction ? */            if ((!iRslt) && (pData->fCorrectrow))              iRslt = ((mng_correctrow)pData->fCorrectrow) (pData);                                       /* slap onto canvas ? */            if ((!iRslt) && (pData->fDisplayrow))            {              iRslt = ((mng_displayrow)pData->fDisplayrow) (pData);              if (!iRslt)              /* check progressive display refresh */                iRslt = display_progressive_check (pData);            }          }        }        if (iRslt)                     /* on error bail out */          MNG_ERROR (pData, iRslt);        if (!pData->fDifferrow)        /* swap row-pointers */        {          pSwap           = pData->pWorkrow;          pData->pWorkrow = pData->pPrevrow;          pData->pPrevrow = pSwap;     /* so prev points to the processed row! */        }        iRslt = next_row (pData);      /* adjust variables for next row */        if (iRslt)                     /* on error bail out */          MNG_ERROR (pData, iRslt);      }                                       /* let zlib know where to store next output */      pData->sZlib.next_out  = pData->pWorkrow;      pData->sZlib.avail_out = (uInt)(pData->iRowsize + pData->iPixelofs);    }  }                                    /* until some error or EOI */  while ((iZrslt == Z_OK) && (pData->sZlib.avail_in > 0));                                       /* on error bail out */  if ((iZrslt != Z_OK) && (iZrslt != Z_STREAM_END))    MNG_ERRORZ (pData, (mng_uint32)iZrslt)#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_INFLATEROWS, MNG_LC_END)#endif  return MNG_NOERROR;}#endif /* MNG_SUPPORT_DISPLAY *//* ************************************************************************** */mng_retcode mngzlib_inflatedata (mng_datap  pData,                                 mng_uint32 iInlen,                                 mng_uint8p pIndata){  int iZrslt;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_INFLATEDATA, MNG_LC_START)#endif                                       /* let zlib know where to get stuff */  pData->sZlib.next_in   = pIndata;  pData->sZlib.avail_in  = (uInt)iInlen;                                       /* now inflate the data in one go! */  iZrslt = inflate (&pData->sZlib, Z_FINISH);                                       /* not enough room in output-buffer ? */  if ((iZrslt == Z_BUF_ERROR) || (pData->sZlib.avail_in > 0))    return MNG_BUFOVERFLOW;                                       /* on error bail out */  if ((iZrslt != Z_OK) && (iZrslt != Z_STREAM_END))    MNG_ERRORZ (pData, (mng_uint32)iZrslt)#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_INFLATEDATA, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode mngzlib_inflatefree (mng_datap pData){  int iZrslt;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_INFLATEFREE, MNG_LC_START)#endif  pData->bInflating = MNG_FALSE;       /* stopped it */  iZrslt = inflateEnd (&pData->sZlib); /* let zlib cleanup it's own stuff */  if (iZrslt != Z_OK)                  /* on error bail out */    MNG_ERRORZ (pData, (mng_uint32)iZrslt)#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_INFLATEFREE, MNG_LC_END)#endif  return MNG_NOERROR;                  /* done */}/* ************************************************************************** */mng_retcode mngzlib_deflateinit (mng_datap pData){  int iZrslt;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_DEFLATEINIT, MNG_LC_START)#endif                                       /* initialize zlib structures and such */  iZrslt = deflateInit2 (&pData->sZlib, pData->iZlevel, pData->iZmethod,                         pData->iZwindowbits, pData->iZmemlevel,                         pData->iZstrategy);  if (iZrslt != Z_OK)                  /* on error bail out */    MNG_ERRORZ (pData, (mng_uint32)iZrslt)  pData->bDeflating      = MNG_TRUE;   /* really deflating something now */#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_DEFLATEINIT, MNG_LC_END)#endif  return MNG_NOERROR;                  /* done */}/* ************************************************************************** */mng_retcode mngzlib_deflaterows (mng_datap  pData,                                 mng_uint32 iInlen,                                 mng_uint8p pIndata){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_DEFLATEROWS, MNG_LC_START)#endif#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_DEFLATEROWS, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode mngzlib_deflatedata (mng_datap  pData,                                 mng_uint32 iInlen,                                 mng_uint8p pIndata){  int iZrslt;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_DEFLATEDATA, MNG_LC_START)#endif  pData->sZlib.next_in  = pIndata;     /* let zlib know where to get stuff */  pData->sZlib.avail_in = (uInt)iInlen;                                       /* now deflate the data in one go! */  iZrslt = deflate (&pData->sZlib, Z_FINISH);                                       /* not enough room in output-buffer ? */  if ((iZrslt == Z_BUF_ERROR) || (pData->sZlib.avail_in > 0))    return MNG_BUFOVERFLOW;                                       /* on error bail out */  if ((iZrslt != Z_OK) && (iZrslt != Z_STREAM_END))    MNG_ERRORZ (pData, (mng_uint32)iZrslt)#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_DEFLATEDATA, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode mngzlib_deflatefree (mng_datap pData){  int iZrslt;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_DEFLATEFREE, MNG_LC_START)#endif  iZrslt = deflateEnd (&pData->sZlib); /* let zlib cleanup it's own stuff */  if (iZrslt != Z_OK)                  /* on error bail out */    MNG_ERRORZ (pData, (mng_uint32)iZrslt)  pData->bDeflating = MNG_FALSE;       /* stopped it */#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_ZLIB_DEFLATEFREE, MNG_LC_END)#endif  return MNG_NOERROR;                  /* done */}/* ************************************************************************** */#endif /* MNG_INCLUDE_ZLIB *//* ************************************************************************** *//* * end of file                                                            * *//* ************************************************************************** */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -