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

📄 libmng_hlapi.c

📁 Linux下的基于X11的图形开发环境。
💻 C
📖 第 1 页 / 共 5 页
字号:
  pData->iFramecount           = 0;  pData->iPlaytime             = 0;  pData->iSimplicity           = 0;  pData->iAlphadepth           = 16;   /* assume the worst! */  pData->iImagelevel           = 0;    /* no image encountered */  pData->iMagnify              = 0;    /* 1-to-1 display */  pData->iOffsetx              = 0;    /* no offsets */  pData->iOffsety              = 0;  pData->iCanvaswidth          = 0;    /* let the app decide during processheader */  pData->iCanvasheight         = 0;                                       /* so far, so good */  pData->iErrorcode            = MNG_NOERROR;  pData->iSeverity             = 0;  pData->iErrorx1              = 0;  pData->iErrorx2              = 0;  pData->zErrortext            = MNG_NULL;#if defined(MNG_SUPPORT_READ) || defined(MNG_SUPPORT_WRITE)                                       /* let's assume the best scenario */  pData->bPreDraft48           = MNG_FALSE;                                       /* the unknown chunk */  pData->iChunkname            = MNG_UINT_HUH;  pData->iChunkseq             = 0;  pData->pFirstchunk           = MNG_NULL;  pData->pLastchunk            = MNG_NULL;                                       /* nothing processed yet */  pData->bHasheader            = MNG_FALSE;  pData->bHasMHDR              = MNG_FALSE;  pData->bHasIHDR              = MNG_FALSE;  pData->bHasBASI              = MNG_FALSE;  pData->bHasDHDR              = MNG_FALSE;#ifdef MNG_INCLUDE_JNG  pData->bHasJHDR              = MNG_FALSE;  pData->bHasJSEP              = MNG_FALSE;  pData->bHasJDAA              = MNG_FALSE;  pData->bHasJDAT              = MNG_FALSE;#endif  pData->bHasPLTE              = MNG_FALSE;  pData->bHasTRNS              = MNG_FALSE;  pData->bHasGAMA              = MNG_FALSE;  pData->bHasCHRM              = MNG_FALSE;  pData->bHasSRGB              = MNG_FALSE;  pData->bHasICCP              = MNG_FALSE;  pData->bHasBKGD              = MNG_FALSE;  pData->bHasIDAT              = MNG_FALSE;  pData->bHasSAVE              = MNG_FALSE;  pData->bHasBACK              = MNG_FALSE;  pData->bHasFRAM              = MNG_FALSE;  pData->bHasTERM              = MNG_FALSE;  pData->bHasLOOP              = MNG_FALSE;                                       /* there's no global stuff yet either */  pData->bHasglobalPLTE        = MNG_FALSE;  pData->bHasglobalTRNS        = MNG_FALSE;  pData->bHasglobalGAMA        = MNG_FALSE;  pData->bHasglobalCHRM        = MNG_FALSE;  pData->bHasglobalSRGB        = MNG_FALSE;  pData->bHasglobalICCP        = MNG_FALSE;  pData->iDatawidth            = 0;    /* no IHDR/BASI/DHDR done yet */  pData->iDataheight           = 0;  pData->iBitdepth             = 0;  pData->iColortype            = 0;  pData->iCompression          = 0;  pData->iFilter               = 0;  pData->iInterlace            = 0;#ifdef MNG_INCLUDE_JNG  pData->iJHDRcolortype        = 0;    /* no JHDR data */  pData->iJHDRimgbitdepth      = 0;  pData->iJHDRimgcompression   = 0;  pData->iJHDRimginterlace     = 0;  pData->iJHDRalphabitdepth    = 0;  pData->iJHDRalphacompression = 0;  pData->iJHDRalphafilter      = 0;  pData->iJHDRalphainterlace   = 0;#endif#endif /* MNG_SUPPORT_READ || MNG_SUPPORT_WRITE */#ifdef MNG_SUPPORT_READ                /* no reading done */  pData->bReading              = MNG_FALSE;  pData->bHavesig              = MNG_FALSE;  pData->bEOF                  = MNG_FALSE;  pData->iReadbufsize          = 0;  pData->pReadbuf              = MNG_NULL;  pData->iLargebufsize         = 0;  pData->pLargebuf             = MNG_NULL;  pData->iSuspendtime          = 0;  pData->bSuspended            = MNG_FALSE;  pData->iSuspendpoint         = 0;  pData->pSuspendbufnext       = pData->pSuspendbuf;  pData->iSuspendbufleft       = 0;#endif /* MNG_SUPPORT_READ */#ifdef MNG_SUPPORT_WRITE               /* no creating/writing done */  pData->bCreating             = MNG_FALSE;  pData->bWriting              = MNG_FALSE;  pData->iFirstchunkadded      = 0;  pData->iWritebufsize         = 0;  pData->pWritebuf             = MNG_NULL;#endif /* MNG_SUPPORT_WRITE */#ifdef MNG_SUPPORT_DISPLAY             /* done nuttin' yet */  pData->bDisplaying           = MNG_FALSE;  pData->iFrameseq             = 0;  pData->iLayerseq             = 0;  pData->iFrametime            = 0;  pData->iRequestframe         = 0;  pData->iRequestlayer         = 0;  pData->iRequesttime          = 0;  pData->bSearching            = MNG_FALSE;  pData->bRestorebkgd          = MNG_FALSE;  pData->iRuntime              = 0;  pData->iSynctime             = 0;  pData->iStarttime            = 0;  pData->iEndtime              = 0;  pData->bRunning              = MNG_FALSE;  pData->bTimerset             = MNG_FALSE;  pData->iBreakpoint           = 0;  pData->bSectionwait          = MNG_FALSE;  pData->bFreezing             = MNG_FALSE;  pData->bResetting            = MNG_FALSE;  pData->bNeedrefresh          = MNG_FALSE;                                       /* these don't exist yet */  pData->pCurrentobj           = MNG_NULL;  pData->pCurraniobj           = MNG_NULL;  pData->pTermaniobj           = MNG_NULL;  pData->pLastclone            = MNG_NULL;  pData->pStoreobj             = MNG_NULL;  pData->pStorebuf             = MNG_NULL;  pData->pRetrieveobj          = MNG_NULL;                                       /* no saved data ! */  pData->pSavedata             = MNG_NULL;                                       /* TODO: remove in 1.0.0 !!! */  pData->bEMNGMAhack           = MNG_FALSE;  pData->iUpdateleft           = 0;    /* no region updated yet */  pData->iUpdateright          = 0;  pData->iUpdatetop            = 0;  pData->iUpdatebottom         = 0;  pData->iPass                 = -1;   /* interlacing stuff and temp buffers */  pData->iRow                  = 0;  pData->iRowinc               = 1;  pData->iCol                  = 0;  pData->iColinc               = 1;  pData->iRowsamples           = 0;  pData->iSamplemul            = 0;  pData->iSampleofs            = 0;  pData->iSamplediv            = 0;  pData->iRowsize              = 0;  pData->iRowmax               = 0;  pData->iFilterofs            = 0;  pData->iPixelofs             = 1;  pData->iLevel0               = 0;  pData->iLevel1               = 0;  pData->iLevel2               = 0;  pData->iLevel3               = 0;  pData->pWorkrow              = MNG_NULL;  pData->pPrevrow              = MNG_NULL;  pData->pRGBArow              = 0;  pData->bIsRGBA16             = MNG_TRUE;  pData->bIsOpaque             = MNG_TRUE;  pData->iFilterbpp            = 1;  pData->iSourcel              = 0;    /* always initialized just before */  pData->iSourcer              = 0;    /* compositing the next layer */  pData->iSourcet              = 0;  pData->iSourceb              = 0;  pData->iDestl                = 0;  pData->iDestr                = 0;  pData->iDestt                = 0;  pData->iDestb                = 0;                                       /* lists are empty */  pData->pFirstimgobj          = MNG_NULL;  pData->pLastimgobj           = MNG_NULL;  pData->pFirstaniobj          = MNG_NULL;  pData->pLastaniobj           = MNG_NULL;                                       /* no processing callbacks */  pData->fDisplayrow           = MNG_NULL;  pData->fRestbkgdrow          = MNG_NULL;  pData->fCorrectrow           = MNG_NULL;  pData->fRetrieverow          = MNG_NULL;  pData->fStorerow             = MNG_NULL;  pData->fProcessrow           = MNG_NULL;  pData->fDifferrow            = MNG_NULL;  pData->fInitrowproc          = MNG_NULL;  pData->iPLTEcount            = 0;    /* no PLTE data */  pData->iDEFIobjectid         = 0;    /* no DEFI data */  pData->bDEFIhasdonotshow     = MNG_FALSE;  pData->iDEFIdonotshow        = 0;  pData->bDEFIhasconcrete      = MNG_FALSE;  pData->iDEFIconcrete         = 0;  pData->bDEFIhasloca          = MNG_FALSE;  pData->iDEFIlocax            = 0;  pData->iDEFIlocay            = 0;  pData->bDEFIhasclip          = MNG_FALSE;  pData->iDEFIclipl            = 0;  pData->iDEFIclipr            = 0;  pData->iDEFIclipt            = 0;  pData->iDEFIclipb            = 0;  pData->iBACKred              = 0;    /* no BACK data */  pData->iBACKgreen            = 0;  pData->iBACKblue             = 0;  pData->iBACKmandatory        = 0;  pData->iBACKimageid          = 0;  pData->iBACKtile             = 0;  pData->iFRAMmode             = 1;     /* default global FRAM variables */  pData->iFRAMdelay            = 1;  pData->iFRAMtimeout          = 0x7fffffffl;  pData->bFRAMclipping         = MNG_FALSE;  pData->iFRAMclipl            = 0;  pData->iFRAMclipr            = 0;  pData->iFRAMclipt            = 0;  pData->iFRAMclipb            = 0;  pData->iFramemode            = 1;     /* again for the current frame */  pData->iFramedelay           = 1;  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;    /* no SHOW data */  pData->iSHOWfromid           = 0;  pData->iSHOWtoid             = 0;  pData->iSHOWnextid           = 0;  pData->iSHOWskip             = 0;  pData->iGlobalPLTEcount      = 0;    /* no global PLTE data */  pData->iGlobalTRNSrawlen     = 0;    /* no global tRNS data */  pData->iGlobalGamma          = 0;    /* no global gAMA data */  pData->iGlobalWhitepointx    = 0;    /* no 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;    /* no global sRGB data */  pData->iGlobalProfilesize    = 0;    /* no global iCCP data */  pData->pGlobalProfile        = MNG_NULL;  pData->iGlobalBKGDred        = 0;    /* no global bKGD data */  pData->iGlobalBKGDgreen      = 0;  pData->iGlobalBKGDblue       = 0;                                       /* no 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;#endif#ifdef MNG_INCLUDE_ZLIB  pData->bInflating            = 0;    /* no inflating or deflating */  pData->bDeflating            = 0;    /* going on at the moment */#endif#ifdef MNG_SUPPORT_DISPLAY             /* reset object 0 */  mng_reset_objzero (pData);#endif#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_RESET, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_cleanup (mng_handle* hHandle){  mng_datap pData;                     /* local vars */#ifndef MNG_INTERNAL_MEMMNGMT  mng_memfree fFree;#endif#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)*hHandle), MNG_FN_CLEANUP, MNG_LC_START)#endif  MNG_VALIDHANDLE (*hHandle)           /* check validity handle */  pData = ((mng_datap)(*hHandle));     /* and address main structure */  mng_reset (*hHandle);                /* do an implicit reset to cleanup most stuff */#ifdef MNG_SUPPORT_DISPLAY             /* drop object 0 */  free_imageobject (pData, (mng_imagep)pData->pObjzero);#endif#if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_INCLUDE_LCMS)  if (pData->hProf2)                   /* output profile defined ? */    mnglcms_freeprofile (pData->hProf2);  if (pData->hProf3)                   /* sRGB profile defined ? */    mnglcms_freeprofile (pData->hProf3);#endif /* MNG_SUPPORT_DISPLAY && MNG_INCLUDE_LCMS */#ifdef MNG_INCLUDE_ZLIB  mngzlib_cleanup (pData);             /* cleanup zlib stuff */#endif#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)*hHandle), MNG_FN_CLEANUP, MNG_LC_CLEANUP)#endif  pData->iMagic = 0;                   /* invalidate the actual memory */#ifdef MNG_INTERNAL_MEMMNGMT  free ((void *)*hHandle);             /* cleanup the data-structure */#else  fFree = ((mng_datap)*hHandle)->fMemfree;  fFree ((mng_ptr)*hHandle, sizeof (mng_data));#endif  *hHandle = 0;                        /* wipe pointer to inhibit future use */  return MNG_NOERROR;                  /* and we're done */}/* ************************************************************************** */#ifdef MNG_SUPPORT_READmng_retcode MNG_DECL mng_read (mng_handle hHandle)

⌨️ 快捷键说明

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