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

📄 libmng_prop_xs.c

📁 Linux下的基于X11的图形开发环境。
💻 C
📖 第 1 页 / 共 5 页
字号:
/* ************************************************************************** *//* *             For conditions of distribution and use,                    * *//* *                see copyright notice in libmng.h                        * *//* ************************************************************************** *//* *                                                                        * *//* * project   : libmng                                                     * *//* * file      : libmng_prop_xs.c          copyright (c) 2000 G.Juyn        * *//* * version   : 1.0.4                                                      * *//* *                                                                        * *//* * purpose   : property get/set interface (implementation)                * *//* *                                                                        * *//* * author    : G.Juyn                                                     * *//* * web       : http://www.3-t.com                                         * *//* * email     : mailto:info@3-t.com                                        * *//* *                                                                        * *//* * comment   : implementation of the property get/set functions           * *//* *                                                                        * *//* * changes   : 0.5.1 - 05/08/2000 - G.Juyn                                * *//* *             - fixed calling convention                                 * *//* *             - changed strict-ANSI stuff                                * *//* *             0.5.1 - 05/11/2000 - G.Juyn                                * *//* *             - added set_outputprofile2 & set_srgbprofile2              * *//* *             0.5.1 - 05/12/2000 - G.Juyn                                * *//* *             - changed trace to macro for callback error-reporting      * *//* *                                                                        * *//* *             0.5.2 - 05/23/2000 - G.Juyn                                * *//* *             - changed inclusion of cms-routines                        * *//* *             0.5.2 - 05/24/2000 - G.Juyn                                * *//* *             - added support for get/set default zlib/IJG parms         * *//* *             0.5.2 - 05/31/2000 - G.Juyn                                * *//* *             - fixed up punctuation (contribution by Tim Rowley)        * *//* *             0.5.2 - 06/05/2000 - G.Juyn                                * *//* *             - added support for RGB8_A8 canvasstyle                    * *//* *                                                                        * *//* *             0.5.3 - 06/21/2000 - G.Juyn                                * *//* *             - added get/set for speedtype to facilitate testing        * *//* *             - added get for imagelevel during processtext callback     * *//* *             0.5.3 - 06/26/2000 - G.Juyn                                * *//* *             - changed userdata variable to mng_ptr                     * *//* *             0.5.3 - 06/29/2000 - G.Juyn                                * *//* *             - fixed incompatible return-types                          * *//* *                                                                        * *//* *             0.9.1 - 07/08/2000 - G.Juyn                                * *//* *             - added get routines for internal display variables        * *//* *             - added get/set routines for suspensionmode variable       * *//* *             0.9.1 - 07/15/2000 - G.Juyn                                * *//* *             - added get/set routines for sectionbreak variable         * *//* *                                                                        * *//* *             0.9.2 - 07/31/2000 - G.Juyn                                * *//* *             - added status_xxxx functions                              * *//* *             0.9.2 - 08/05/2000 - G.Juyn                                * *//* *             - changed file-prefixes                                    * *//* *                                                                        * *//* *             0.9.3 - 10/10/2000 - G.Juyn                                * *//* *             - added support for alpha-depth prediction                 * *//* *             0.9.3 - 10/16/2000 - G.Juyn                                * *//* *             - added functions to retrieve PNG/JNG specific header-info * *//* *             0.9.3 - 10/20/2000 - G.Juyn                                * *//* *             - added get/set for bKGD preference setting                * *//* *             0.9.3 - 10/21/2000 - G.Juyn                                * *//* *             - added get function for interlace/progressive display     * *//* *                                                                        * *//* *             1.0.1 - 04/21/2001 - G.Juyn (code by G.Kelly)              * *//* *             - added BGRA8 canvas with premultiplied alpha              * *//* *             1.0.1 - 05/02/2001 - G.Juyn                                * *//* *             - added "default" sRGB generation (Thanks Marti!)          * *//* *                                                                        * *//* *             1.0.2 - 06/23/2001 - G.Juyn                                * *//* *             - added optimization option for MNG-video playback         * *//* *             1.0.2 - 06/25/2001 - G.Juyn                                * *//* *             - added option to turn off progressive refresh             * *//* *                                                                        * *//* *             1.0.3 - 08/06/2001 - G.Juyn                                * *//* *             - added get function for last processed BACK chunk         * *//* *                                                                        * *//* *             1.0.4 - 06/22/2002 - G.Juyn                                * *//* *             - B495442 - invalid returnvalue in mng_get_suspensionmode  * *//* *                                                                        * *//* ************************************************************************** */#include "libmng.h"#include "libmng_data.h"#include "libmng_error.h"#include "libmng_trace.h"#ifdef __BORLANDC__#pragma hdrstop#endif#include "libmng_cms.h"#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)#pragma option -A                      /* force ANSI-C */#endif/* ************************************************************************** *//* *                                                                        * *//* *  Property set functions                                                * *//* *                                                                        * *//* ************************************************************************** */mng_retcode MNG_DECL mng_set_userdata (mng_handle hHandle,                                       mng_ptr    pUserdata){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_USERDATA, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  ((mng_datap)hHandle)->pUserdata = pUserdata;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_USERDATA, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_set_canvasstyle (mng_handle hHandle,                                          mng_uint32 iStyle){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CANVASSTYLE, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  switch (iStyle)  {    case MNG_CANVAS_RGB8    : break;    case MNG_CANVAS_RGBA8   : break;    case MNG_CANVAS_ARGB8   : break;    case MNG_CANVAS_RGB8_A8 : break;    case MNG_CANVAS_BGR8    : break;    case MNG_CANVAS_BGRA8   : break;    case MNG_CANVAS_BGRA8PM : break;    case MNG_CANVAS_ABGR8   : break;/*    case MNG_CANVAS_RGB16   : break; *//*    case MNG_CANVAS_RGBA16  : break; *//*    case MNG_CANVAS_ARGB16  : break; *//*    case MNG_CANVAS_BGR16   : break; *//*    case MNG_CANVAS_BGRA16  : break; *//*    case MNG_CANVAS_ABGR16  : break; *//*    case MNG_CANVAS_INDEX8  : break; *//*    case MNG_CANVAS_INDEXA8 : break; *//*    case MNG_CANVAS_AINDEX8 : break; *//*    case MNG_CANVAS_GRAY8   : break; *//*    case MNG_CANVAS_GRAY16  : break; *//*    case MNG_CANVAS_GRAYA8  : break; *//*    case MNG_CANVAS_GRAYA16 : break; *//*    case MNG_CANVAS_AGRAY8  : break; *//*    case MNG_CANVAS_AGRAY16 : break; *//*    case MNG_CANVAS_DX15    : break; *//*    case MNG_CANVAS_DX16    : break; */    default                 : { MNG_ERROR (((mng_datap)hHandle), MNG_INVALIDCNVSTYLE) }  }  ((mng_datap)hHandle)->iCanvasstyle = iStyle;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CANVASSTYLE, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_set_bkgdstyle (mng_handle hHandle,                                        mng_uint32 iStyle){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_BKGDSTYLE, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  switch (iStyle)                      /* alpha-modes not supported */  {    case MNG_CANVAS_RGB8    : break;    case MNG_CANVAS_BGR8    : break;/*    case MNG_CANVAS_RGB16   : break; *//*    case MNG_CANVAS_BGR16   : break; *//*    case MNG_CANVAS_INDEX8  : break; *//*    case MNG_CANVAS_GRAY8   : break; *//*    case MNG_CANVAS_GRAY16  : break; *//*    case MNG_CANVAS_DX15    : break; *//*    case MNG_CANVAS_DX16    : break; */    default                 : MNG_ERROR (((mng_datap)hHandle), MNG_INVALIDCNVSTYLE)  }  ((mng_datap)hHandle)->iBkgdstyle = iStyle;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_BKGDSTYLE, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_set_bgcolor (mng_handle hHandle,                                      mng_uint16 iRed,                                      mng_uint16 iGreen,                                      mng_uint16 iBlue){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_BGCOLOR, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  ((mng_datap)hHandle)->iBGred   = iRed;  ((mng_datap)hHandle)->iBGgreen = iGreen;  ((mng_datap)hHandle)->iBGblue  = iBlue;  ((mng_datap)hHandle)->bUseBKGD = MNG_FALSE;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_BGCOLOR, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_set_usebkgd (mng_handle hHandle,                                      mng_bool   bUseBKGD){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_USEBKGD, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  ((mng_datap)hHandle)->bUseBKGD = bUseBKGD;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_USEBKGD, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_set_storechunks (mng_handle hHandle,                                          mng_bool   bStorechunks){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_STORECHUNKS, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  ((mng_datap)hHandle)->bStorechunks = bStorechunks;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_STORECHUNKS, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_set_sectionbreaks (mng_handle hHandle,                                            mng_bool   bSectionbreaks){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SECTIONBREAKS, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  ((mng_datap)hHandle)->bSectionbreaks = bSectionbreaks;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SECTIONBREAKS, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_set_cacheplayback (mng_handle hHandle,                                            mng_bool   bCacheplayback){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CACHEPLAYBACK, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  if (((mng_datap)hHandle)->bHasheader)    MNG_ERROR (((mng_datap)hHandle), MNG_FUNCTIONINVALID)  ((mng_datap)hHandle)->bCacheplayback = bCacheplayback;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CACHEPLAYBACK, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */mng_retcode MNG_DECL mng_set_doprogressive (mng_handle hHandle,                                            mng_bool   bDoProgressive){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DOPROGRESSIVE, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  ((mng_datap)hHandle)->bDoProgressive = bDoProgressive;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DOPROGRESSIVE, MNG_LC_END)#endif  return MNG_NOERROR;}/* ************************************************************************** */#ifdef MNG_SUPPORT_DISPLAYmng_retcode MNG_DECL mng_set_srgb (mng_handle hHandle,                                   mng_bool   bIssRGB){#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGB, MNG_LC_START)#endif  MNG_VALIDHANDLE (hHandle)  ((mng_datap)hHandle)->bIssRGB = bIssRGB;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGB, MNG_LC_END)#endif  return MNG_NOERROR;}#endif /* MNG_SUPPORT_DISPLAY *//* ************************************************************************** */#ifdef MNG_SUPPORT_DISPLAYmng_retcode MNG_DECL mng_set_outputprofile (mng_handle hHandle,                                            mng_pchar  zFilename){#ifdef MNG_INCLUDE_LCMS  mng_datap pData;#endif#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTPROFILE, MNG_LC_START)#endif#ifdef MNG_INCLUDE_LCMS  MNG_VALIDHANDLE (hHandle)  pData = (mng_datap)hHandle;          /* address the structure */  if (pData->hProf2)                   /* previously defined ? */    mnglcms_freeprofile (pData->hProf2);                                       /* allocate new CMS profile handle */  pData->hProf2 = mnglcms_createfileprofile (zFilename);  if (!pData->hProf2)                  /* handle error ? */    MNG_ERRORL (pData, MNG_LCMS_NOHANDLE)#endif /* MNG_INCLUDE_LCMS */#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTPROFILE, MNG_LC_END)#endif  return MNG_NOERROR;}#endif /* MNG_SUPPORT_DISPLAY *//* ************************************************************************** */#ifdef MNG_SUPPORT_DISPLAYmng_retcode MNG_DECL mng_set_outputprofile2 (mng_handle hHandle,                                             mng_uint32 iProfilesize,                                             mng_ptr    pProfile){#ifdef MNG_INCLUDE_LCMS  mng_datap pData;#endif#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTPROFILE2, MNG_LC_START)#endif#ifdef MNG_INCLUDE_LCMS  MNG_VALIDHANDLE (hHandle)  pData = (mng_datap)hHandle;          /* address the structure */  if (pData->hProf2)                   /* previously defined ? */    mnglcms_freeprofile (pData->hProf2);                                       /* allocate new CMS profile handle */  pData->hProf2 = mnglcms_creatememprofile (iProfilesize, pProfile);  if (!pData->hProf2)                  /* handle error ? */    MNG_ERRORL (pData, MNG_LCMS_NOHANDLE)#endif /* MNG_INCLUDE_LCMS */#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTPROFILE2, MNG_LC_END)#endif  return MNG_NOERROR;}#endif /* MNG_SUPPORT_DISPLAY *//* ************************************************************************** */mng_retcode MNG_DECL mng_set_outputsrgb (mng_handle hHandle){#ifdef MNG_INCLUDE_LCMS  mng_datap pData;#endif#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTSRGB, MNG_LC_START)#endif#ifdef MNG_INCLUDE_LCMS  MNG_VALIDHANDLE (hHandle)  pData = (mng_datap)hHandle;          /* address the structure */  if (pData->hProf2)                   /* previously defined ? */    mnglcms_freeprofile (pData->hProf2);                                       /* allocate new CMS profile handle */  pData->hProf2 = mnglcms_createsrgbprofile ();  if (!pData->hProf2)                  /* handle error ? */    MNG_ERRORL (pData, MNG_LCMS_NOHANDLE)#endif /* MNG_INCLUDE_LCMS */#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTSRGB, MNG_LC_END)#endif

⌨️ 快捷键说明

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