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

📄 libmng_hlapi.c

📁 Linux下的基于X11的图形开发环境。
💻 C
📖 第 1 页 / 共 5 页
字号:
  pData->iFrametimeout         = 0x7fffffffl;  pData->bFrameclipping        = MNG_FALSE;  pData->iFrameclipl           = 0;  pData->iFrameclipr           = 0;  pData->iFrameclipt           = 0;  pData->iFrameclipb           = 0;  pData->iNextdelay            = 1;  pData->iSHOWmode             = 0;    /* reset SHOW data */  pData->iSHOWfromid           = 0;  pData->iSHOWtoid             = 0;  pData->iSHOWnextid           = 0;  pData->iSHOWskip             = 0;  pData->iGlobalPLTEcount      = 0;    /* reset global PLTE data */  pData->iGlobalTRNSrawlen     = 0;    /* reset global tRNS data */  pData->iGlobalGamma          = 0;    /* reset global gAMA data */  pData->iGlobalWhitepointx    = 0;    /* reset global cHRM data */  pData->iGlobalWhitepointy    = 0;  pData->iGlobalPrimaryredx    = 0;  pData->iGlobalPrimaryredy    = 0;  pData->iGlobalPrimarygreenx  = 0;  pData->iGlobalPrimarygreeny  = 0;  pData->iGlobalPrimarybluex   = 0;  pData->iGlobalPrimarybluey   = 0;  pData->iGlobalRendintent     = 0;    /* reset global sRGB data */  if (pData->iGlobalProfilesize)       /* drop global profile (if any) */    MNG_FREE (pData, pData->pGlobalProfile, pData->iGlobalProfilesize)  pData->iGlobalProfilesize    = 0;      pData->iGlobalBKGDred        = 0;    /* reset global bKGD data */  pData->iGlobalBKGDgreen      = 0;  pData->iGlobalBKGDblue       = 0;                                       /* reset delta-image */  pData->pDeltaImage           = MNG_NULL;  pData->iDeltaImagetype       = 0;  pData->iDeltatype            = 0;  pData->iDeltaBlockwidth      = 0;  pData->iDeltaBlockheight     = 0;  pData->iDeltaBlockx          = 0;  pData->iDeltaBlocky          = 0;  pData->bDeltaimmediate       = MNG_FALSE;  return MNG_NOERROR;}#endif /* MNG_SUPPORT_DISPLAY *//* ************************************************************************** */void cleanup_errors (mng_datap pData){  pData->iErrorcode = MNG_NOERROR;  pData->iSeverity  = 0;  pData->iErrorx1   = 0;  pData->iErrorx2   = 0;  pData->zErrortext = MNG_NULL;  return;}/* ************************************************************************** *//* *                                                                        * *//* *  Versioning control                                                    * *//* *                                                                        * *//* ************************************************************************** */mng_pchar MNG_DECL mng_version_text    (void){  return MNG_VERSION_TEXT;}/* ************************************************************************** */mng_uint8 MNG_DECL mng_version_so      (void){  return MNG_VERSION_SO;}/* ************************************************************************** */mng_uint8 MNG_DECL mng_version_dll     (void){  return MNG_VERSION_DLL;}/* ************************************************************************** */mng_uint8 MNG_DECL mng_version_major   (void){  return MNG_VERSION_MAJOR;}/* ************************************************************************** */mng_uint8 MNG_DECL mng_version_minor   (void){  return MNG_VERSION_MINOR;}/* ************************************************************************** */mng_uint8 MNG_DECL mng_version_release (void){  return MNG_VERSION_RELEASE;}/* ************************************************************************** *//* *                                                                        * *//* * HLAPI routines                                                         * *//* *                                                                        * *//* ************************************************************************** */mng_handle MNG_DECL mng_initialize (mng_ptr       pUserdata,                                    mng_memalloc  fMemalloc,                                    mng_memfree   fMemfree,                                    mng_traceproc fTraceproc){  mng_datap   pData;#ifdef MNG_SUPPORT_DISPLAY  mng_retcode iRetcode;  mng_imagep  pImage;#endif#ifdef MNG_INTERNAL_MEMMNGMT           /* allocate the main datastruc */  pData = (mng_datap)calloc (1, sizeof (mng_data));#else  pData = (mng_datap)fMemalloc (sizeof (mng_data));#endif  if (!pData)    return MNG_NULL;                   /* error: out of memory?? */                                       /* validate the structure */  pData->iMagic                = MNG_MAGIC;                                       /* save userdata field */  pData->pUserdata             = pUserdata;                                       /* remember trace callback */  pData->fTraceproc            = fTraceproc;#ifdef MNG_SUPPORT_TRACE  if (mng_trace (pData, MNG_FN_INITIALIZE, MNG_LC_INITIALIZE))  {    MNG_FREEX (pData, pData, sizeof (mng_data))    return MNG_NULL;  }#endif                                       /* default canvas styles are 8-bit RGB */  pData->iCanvasstyle          = MNG_CANVAS_RGB8;  pData->iBkgdstyle            = MNG_CANVAS_RGB8;  pData->iBGred                = 0;  /* black */  pData->iBGgreen              = 0;  pData->iBGblue               = 0;  pData->bUseBKGD              = MNG_TRUE;#ifdef MNG_FULL_CMS  pData->bIssRGB               = MNG_TRUE;  pData->hProf1                = 0;    /* no profiles yet */  pData->hProf2                = 0;  pData->hProf3                = 0;  pData->hTrans                = 0;#endif  pData->dViewgamma            = 1.0;  pData->dDisplaygamma         = 2.2;  pData->dDfltimggamma         = 0.45455;                                       /* initially remember chunks */  pData->bStorechunks          = MNG_TRUE;                                       /* no breaks at section-borders */  pData->bSectionbreaks        = MNG_FALSE;                                       /* initially cache playback info */  pData->bCacheplayback        = MNG_TRUE;                                       /* progressive refresh for large images */  pData->bDoProgressive        = MNG_TRUE;                                       /* normal animation-speed ! */  pData->iSpeed                = mng_st_normal;                                       /* initial image limits */  pData->iMaxwidth             = 10000;  pData->iMaxheight            = 10000;#ifdef MNG_INTERNAL_MEMMNGMT           /* internal management */  pData->fMemalloc             = MNG_NULL;  pData->fMemfree              = MNG_NULL;#else                                  /* keep callbacks */  pData->fMemalloc             = fMemalloc;  pData->fMemfree              = fMemfree;#endif                                       /* no value (yet) */  pData->fOpenstream           = MNG_NULL;  pData->fClosestream          = MNG_NULL;  pData->fReaddata             = MNG_NULL;  pData->fWritedata            = MNG_NULL;  pData->fErrorproc            = MNG_NULL;  pData->fProcessheader        = MNG_NULL;  pData->fProcesstext          = MNG_NULL;  pData->fProcesssave          = MNG_NULL;  pData->fProcessseek          = MNG_NULL;  pData->fProcessneed          = MNG_NULL;  pData->fProcessmend          = MNG_NULL;  pData->fProcessunknown       = MNG_NULL;  pData->fProcessterm          = MNG_NULL;  pData->fGetcanvasline        = MNG_NULL;  pData->fGetbkgdline          = MNG_NULL;  pData->fGetalphaline         = MNG_NULL;  pData->fRefresh              = MNG_NULL;  pData->fGettickcount         = MNG_NULL;  pData->fSettimer             = MNG_NULL;  pData->fProcessgamma         = MNG_NULL;  pData->fProcesschroma        = MNG_NULL;  pData->fProcesssrgb          = MNG_NULL;  pData->fProcessiccp          = MNG_NULL;  pData->fProcessarow          = MNG_NULL;#if defined(MNG_SUPPORT_DISPLAY) && (defined(MNG_GAMMA_ONLY) || defined(MNG_FULL_CMS))  pData->dLastgamma            = 0;    /* lookup table needs first-time calc */#endif#ifdef MNG_SUPPORT_DISPLAY             /* create object 0 */  iRetcode = create_imageobject (pData, 0, MNG_TRUE, MNG_TRUE, MNG_TRUE,                                 0, 0, 0, 0, 0, 0, 0, 0, 0, MNG_FALSE,                                 0, 0, 0, 0, &pImage);  if (iRetcode)                        /* on error drop out */  {    MNG_FREEX (pData, pData, sizeof (mng_data))    return MNG_NULL;  }  pData->pObjzero = pImage;#endif#if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_INCLUDE_LCMS)  mnglcms_initlibrary ();              /* init lcms particulairs */#endif#ifdef MNG_SUPPORT_READ  pData->bSuspensionmode       = MNG_FALSE;  pData->iSuspendbufsize       = 0;  pData->pSuspendbuf           = MNG_NULL;  pData->pSuspendbufnext       = MNG_NULL;  pData->iSuspendbufleft       = 0;  pData->iChunklen             = 0;  pData->pReadbufnext          = MNG_NULL;#endif#ifdef MNG_INCLUDE_ZLIB  mngzlib_initialize (pData);          /* initialize zlib structures and such */                                       /* default zlib compression parameters */  pData->iZlevel               = MNG_ZLIB_LEVEL;  pData->iZmethod              = MNG_ZLIB_METHOD;  pData->iZwindowbits          = MNG_ZLIB_WINDOWBITS;  pData->iZmemlevel            = MNG_ZLIB_MEMLEVEL;  pData->iZstrategy            = MNG_ZLIB_STRATEGY;                                       /* default maximum IDAT data size */  pData->iMaxIDAT              = MNG_MAX_IDAT_SIZE;#endif#ifdef MNG_INCLUDE_JNG                 /* default IJG compression parameters */  pData->eJPEGdctmethod        = MNG_JPEG_DCT;  pData->iJPEGquality          = MNG_JPEG_QUALITY;  pData->iJPEGsmoothing        = MNG_JPEG_SMOOTHING;  pData->bJPEGcompressprogr    = MNG_JPEG_PROGRESSIVE;  pData->bJPEGcompressopt      = MNG_JPEG_OPTIMIZED;                                       /* default maximum JDAT data size */  pData->iMaxJDAT              = MNG_MAX_JDAT_SIZE;#endif  mng_reset ((mng_handle)pData);#ifdef MNG_SUPPORT_TRACE  if (mng_trace (pData, MNG_FN_INITIALIZE, MNG_LC_END))  {    MNG_FREEX (pData, pData, sizeof (mng_data))    return MNG_NULL;  }#endif  return (mng_handle)pData;            /* if we get here, we're in business */}/* ************************************************************************** */mng_retcode MNG_DECL mng_reset (mng_handle hHandle){  mng_datap pData;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_RESET, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)            /* check validity handle */  pData = ((mng_datap)(hHandle));      /* address main structure */#ifdef MNG_SUPPORT_DISPLAY  mng_drop_savedata (pData);           /* cleanup saved-data from SAVE/SEEK */#endif#if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_FULL_CMS)  mng_clear_cms (pData);               /* cleanup left-over cms stuff if any */#endif#ifdef MNG_INCLUDE_JNG  mngjpeg_cleanup (pData);             /* cleanup jpeg stuff */#endif#ifdef MNG_INCLUDE_ZLIB  if (pData->bInflating)               /* if we've been inflating */  {#ifdef MNG_INCLUDE_DISPLAY_PROCS    cleanup_rowproc (pData);           /* cleanup row-processing, */#endif    mngzlib_inflatefree (pData);       /* cleanup inflate! */  }#endif /* MNG_INCLUDE_ZLIB */#ifdef MNG_SUPPORT_READ  if ((pData->bReading) && (!pData->bEOF))    process_eof (pData);               /* cleanup app streaming */                                       /* cleanup default read buffers */  MNG_FREE (pData, pData->pReadbuf,    pData->iReadbufsize)  MNG_FREE (pData, pData->pLargebuf,   pData->iLargebufsize)  MNG_FREE (pData, pData->pSuspendbuf, pData->iSuspendbufsize)#endif#ifdef MNG_SUPPORT_WRITE               /* cleanup default write buffer */  MNG_FREE (pData, pData->pWritebuf, pData->iWritebufsize)#endif#if defined(MNG_SUPPORT_READ) || defined(MNG_SUPPORT_WRITE)  mng_drop_chunks  (pData);            /* drop stored chunks (if any) */#endif#ifdef MNG_SUPPORT_DISPLAY  mng_drop_objects (pData, MNG_TRUE);  /* drop stored objects (if any) */  if (pData->iGlobalProfilesize)       /* drop global profile (if any) */    MNG_FREEX (pData, pData->pGlobalProfile, pData->iGlobalProfilesize)#endif  pData->eSigtype              = mng_it_unknown;  pData->eImagetype            = mng_it_unknown;  pData->iWidth                = 0;    /* these are unknown yet */  pData->iHeight               = 0;  pData->iTicks                = 0;  pData->iLayercount           = 0;

⌨️ 快捷键说明

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