📄 libmng.h
字号:
/* * 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 * *//* * - added processterm callback * *//* * 1.0.2 - 06/25/2001 - G.Juyn * *//* * - added late binding errorcode (not used internally) * *//* * - 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.5 - 07/04/2002 - G.Juyn * *//* * - added errorcode for extreme chunk-sizes * *//* * 1.0.5 - 08/07/2002 - G.Juyn * *//* * - added test-option for PNG filter method 193 (=no filter) * *//* * 1.0.5 - 08/15/2002 - G.Juyn * *//* * - completed PROM support * *//* * - completed delta-image support * *//* * 1.0.5 - 08/19/2002 - G.Juyn * *//* * - added HLAPI function to copy chunks * *//* * 1.0.5 - 09/14/2002 - G.Juyn * *//* * - added event handling for dynamic MNG * *//* * - added 'supports' call to check function availability * *//* * 1.0.5 - 09/15/2002 - G.Juyn * *//* * - fixed LOOP iteration=0 special case * *//* * 1.0.5 - 09/20/2002 - G.Juyn * *//* * - added support for PAST * *//* * 1.0.5 - 09/22/2002 - G.Juyn * *//* * - added bgrx8 canvas (filler byte) * *//* * 1.0.5 - 10/07/2002 - G.Juyn * *//* * - added check for TERM placement during create/write * *//* * - added beta version function & constant * *//* * 1.0.5 - 11/07/2002 - G.Juyn * *//* * - added support to get totals after mng_read() * *//* * * *//* * 1.0.6 - 07/07/2003 - G. Randers-Pehrson * *//* * - added support for reducing the footprint of libmng * *//* * by macros that optionally skip unused chunks, remove * *//* * 16-bit sample support, remove Delta support, and * *//* * remove JNG support, to accomodate Mozilla/Firebird. * *//* * 1.0.6 - 07/14/2003 - G. Randers-Pehrson * *//* * - further optional removal of unused functions * *//* * * *//* * 1.0.7 - 11/27/2003 - R.A * *//* * - added CANVAS_RGB565 and CANVAS_BGR565 * *//* * 1.0.7 - 12/06/2003 - R.A * *//* * - added CANVAS_RGBA565 and CANVAS_BGRA565 * *//* * 1.0.7 - 01/25/2004 - J.S * *//* * - added premultiplied alpha canvas' for RGBA, ARGB, ABGR * *//* * 1.0.7 - 03/07/2004 - G. Randers-Pehrson * *//* * - put gamma, cms-related declarations inside #ifdef * *//* * 1.0.7 - 03/10/2004 - G.R-P * *//* * - added conditionals around openstream/closestream * *//* * * *//* * 1.0.8 - 04/02/2004 - G.Juyn * *//* * - added CRC existence & checking flags * *//* * 1.0.8 - 04/12/2004 - G.Juyn * *//* * - added data-push mechanisms for specialized decoders * *//* * 1.0.8 - 06/05/2004 - G.R-P * *//* * - define MNG_INCLUDE_ZLIB when MNG_USE_ZLIB_CRC is defined * *//* * * *//* * 1.0.9 - 10/03/2004 - G.Juyn * *//* * - added function to retrieve current FRAM delay * *//* * 1.0.9 - 10/14/2004 - G.Juyn * *//* * - added bgr565_a8 canvas-style (thanks to J. Elvander) * *//* * 1.0.9 - 10/17/2004 - G.Juyn * *//* * - fixed PPLT getchunk/putchunk routines * *//* * * *//* ************************************************************************** */#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)#pragma option -A /* force ANSI-C */#endif#ifndef _libmng_h_#define _libmng_h_/* ************************************************************************** */#include "libmng_conf.h" /* user-specific configuration options *//* ************************************************************************** */#define MNG_CHECK_BAD_ICCP /* let's catch that sucker !!! */#ifdef MNG_SUPPORT_READ /* dependencies based on user-configuration */#define MNG_INCLUDE_READ_PROCS#endif#ifdef MNG_SUPPORT_WRITE#define MNG_INCLUDE_WRITE_PROCS#endif#ifdef MNG_USE_ZLIB_CRC#define MNG_INCLUDE_ZLIB#endif#ifdef MNG_SUPPORT_DISPLAY#define MNG_INCLUDE_FILTERS#define MNG_INCLUDE_INTERLACE#define MNG_INCLUDE_OBJECTS#define MNG_INCLUDE_DISPLAY_PROCS#define MNG_INCLUDE_TIMING_PROCS#define MNG_INCLUDE_ZLIB#endif#ifdef MNG_STORE_CHUNKS#define MNG_INCLUDE_ZLIB#endif#ifdef MNG_SUPPORT_IJG6B#define MNG_INCLUDE_JNG#define MNG_INCLUDE_IJG6B#define MNG_USE_SETJMP#endif#ifdef MNG_INCLUDE_JNG#if defined(MNG_SUPPORT_DISPLAY) || defined(MNG_ACCESS_CHUNKS)#define MNG_INCLUDE_JNG_READ#endif#if defined(MNG_SUPPORT_WRITE) || defined(MNG_ACCESS_CHUNKS)#define MNG_INCLUDE_JNG_WRITE#endif#endif#ifdef MNG_FULL_CMS#define MNG_INCLUDE_LCMS#endif#ifdef MNG_AUTO_DITHER#define MNG_INCLUDE_DITHERING#endif#ifdef MNG_SUPPORT_TRACE#define MNG_INCLUDE_TRACE_PROCS#ifdef MNG_TRACE_TELLTALE#define MNG_INCLUDE_TRACE_STRINGS#endif#endif#ifdef MNG_ERROR_TELLTALE#define MNG_INCLUDE_ERROR_STRINGS#endif#ifdef MNG_OPTIMIZE_CHUNKINITFREE#ifndef MNG_OPTIMIZE_CHUNKACCESS#define MNG_OPTIMIZE_CHUNKACCESS#endif#else#ifdef MNG_OPTIMIZE_CHUNKACCESS#undef MNG_OPTIMIZE_CHUNKACCESS#endif#endif/* ************************************************************************** */#include "libmng_types.h" /* platform-specific definitions and other assorted stuff *//* ************************************************************************** */#ifdef __cplusplusextern "C" {#endif/* ************************************************************************** *//* * * *//* * Versioning control * *//* * * *//* * version_so and version_dll will NOT reflect version_major; * *//* * these will only change for binary incompatible changes (which will * *//* * hopefully never occur) * *//* * note: they will be set to 1 on the first public release !!! * *//* * * *//* * first public release: * *//* * #define MNG_VERSION_TEXT "1.0.0" * *//* * #define MNG_VERSION_SO 1 eg. libmng.so.1 * *//* * #define MNG_VERSION_DLL 1 eg. libmng.dll * *//* * #define MNG_VERSION_MAJOR 1 * *//* * #define MNG_VERSION_MINOR 0 * *//* * #define MNG_VERSION_RELEASE 0 * *//* * * *//* * bug fix & cosmetics : * *//* * #define MNG_VERSION_TEXT "1.0.1" * *//* * #define MNG_VERSION_SO 1 eg. libmng.so.1 * *//* * #define MNG_VERSION_DLL 1 eg. libmng.dll * *//* * #define MNG_VERSION_MAJOR 1 * *//* * #define MNG_VERSION_MINOR 0 * *//* * #define MNG_VERSION_RELEASE 1 * *//* * * *//* * feature change : * *//* * #define MNG_VERSION_TEXT "1.2.0" * *//* * #define MNG_VERSION_SO 1 eg. libmng.so.1 * *//* * #define MNG_VERSION_DLL 1 eg. libmng.dll * *//* * #define MNG_VERSION_MAJOR 1 * *//* * #define MNG_VERSION_MINOR 2 * *//* * #define MNG_VERSION_RELEASE 0 * *//* * * *//* * major rewrite (still binary compatible) : * *//* * #define MNG_VERSION_TEXT "2.0.0" * *//* * #define MNG_VERSION_SO 1 eg. libmng.so.1 * *//* * #define MNG_VERSION_DLL 1 eg. libmng.dll * *//* * #define MNG_VERSION_MAJOR 2 * *//* * #define MNG_VERSION_MINOR 0 * *//* * #define MNG_VERSION_RELEASE 0 * *//* * * *//* * binary incompatible change: * *//* * #define MNG_VERSION_TEXT "13.0.0" * *//* * #define MNG_VERSION_SO 2 eg. libmng.so.2 * *//* * #define MNG_VERSION_DLL 2 eg. libmng2.dll * *//* * #define MNG_VERSION_MAJOR 13 * *//* * #define MNG_VERSION_MINOR 0 * *//* * #define MNG_VERSION_RELEASE 0 * */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -