#ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */
/* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C *compilerforcorrectcompilation.Thefollowingheaderfilesarerequiredby *thestandard.Ifyourcompilerdoesn'tprovidetheseheaderfiles,orthey *donotmatchthestandard,youwillneedtoprovide/improvethem.
*/ #include <limits.h> #include <stddef.h>
/* Library header files. These header files are all defined by ISOC90; libpng *expectsconformantimplementations,however,anISOC90conformantsystemneed *notprovidetheseheaderfilesifthefunctionalitycannotbeimplemented. *Inthiscaseitwillbenecessarytodisabletherelevantpartsoflibpngin *thebuildofpnglibconf.h. * *Priorto1.6.0string.hwasincludedhere;theAPIchangesin1.6.0tonot *includethisunnecessaryheaderfile.
*/
#ifdef PNG_STDIO_SUPPORTED /* Required for the definition of FILE: */ # include <stdio.h> #endif
#ifdef PNG_SETJMP_SUPPORTED /* Required for the definition of jmp_buf and the declaration of longjmp: */ # include <setjmp.h> #endif
#ifdef PNG_CONVERT_tIME_SUPPORTED /* Required for struct tm: */ # include <time.h> #endif
#endif/* PNG_BUILDING_SYMBOL_TABLE */
/* Prior to 1.6.0, it was possible to turn off 'const' in declarations, *usingPNG_NO_CONST.Thisisnolongersupported.
*/ #define PNG_CONST const/* backward compatibility only */
/* This controls optimization of the reading of 16-bit and 32-bit *valuesfromPNGfiles.Itcanbesetonaper-app-filebasis:it *justchangeswhetheramacroisusedwhenthefunctioniscalled. *Thelibrarybuildersetsthedefault;ifreadfunctionsarenot *builtintothelibrarythemacroimplementationisforcedon.
*/ #ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED # define PNG_USE_READ_MACROS #endif #if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) # if PNG_DEFAULT_READ_MACROS # define PNG_USE_READ_MACROS # endif #endif
/* COMPILER SPECIFIC OPTIONS. * *Theseoptionsareprovidedsothatavarietyofdifficultcompilers *canbeused.Somearefixedatbuildtime(e.g.PNG_API_RULE *below)butstillhavecompilerspecificimplementations,others *maybechangedonaper-filebasiswhencompilingagainstlibpng.
*/
/* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect *againstlegacy(preISOC90)compilersthatdidnotunderstandfunction *prototypes.[Deprecated.]
*/ #ifndef PNGARG # define PNGARG(arglist) arglist #endif
/* System specific discovery. *========================== *ThiscodeisusedatbuildtimetofindPNG_IMPEXP,theAPIsettings *andPNG_EXPORT_TYPE(),itmayalsosetamacrotoindicatetheDLL *importprocessingispossible.OnWindowssystemsitalsosets *compiler-specificmacrostothevaluesrequiredtochangethecalling *conventionsofthevariousfunctions.
*/ #ifdefined(_WIN32) || defined(__WIN32__) || defined(__NT__) || \ defined(__CYGWIN__) /* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or *MinGWonanyarchitecturecurrentlysupportedbyWindows.Alsoincludes *Watcombuildsbuttheseneedspecialtreatmentbecausetheyarenot *compatiblewithGCCorVisualCbecauseofdifferentcallingconventions.
*/ # if PNG_API_RULE == 2 /* If this line results in an error, either because __watcall is not *understoodorbecauseofaredefinejustbelowyoucannotuse*this* *buildofthelibrarywiththecompileryouareusing.*This*buildwas *buildusingWatcomandapplicationsmustalsobebuiltusingWatcom!
*/ # define PNGCAPI __watcall # endif
# ifdefined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) # define PNGCAPI __cdecl # if PNG_API_RULE == 1 /* If this line results in an error __stdcall is not understood and *PNG_API_RULEshouldnothavebeensetto'1'.
*/ # define PNGAPI __stdcall # endif # else /* An older compiler, or one not detected (erroneously) above, *ifnecessaryoverrideonthecommandlinetogetthecorrect *variantsforthecompiler.
*/ # ifndef PNGCAPI # define PNGCAPI _cdecl # endif # if PNG_API_RULE == 1 && !defined(PNGAPI) # define PNGAPI _stdcall # endif # endif /* compiler/api */
/* NOTE: PNGCBAPI always defaults to PNGCAPI. */
# ifdefined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) # error PNG_USER_PRIVATEBUILD must be definedif PNGAPI is changed # endif
#else/* !Windows */ # if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) # define PNGAPI _System # else/* !Windows/x86 && !OS/2 */ /* Use the defaults, or define PNG*API on the command line (but *thiswillhavetobedoneforeverycompile!)
*/ # endif /* other system, !OS/2 */ #endif/* !Windows/x86 */
/* Now do all the defaulting . */ #ifndef PNGCAPI # define PNGCAPI #endif #ifndef PNGCBAPI # define PNGCBAPI PNGCAPI #endif #ifndef PNGAPI # define PNGAPI PNGCAPI #endif
/* PNG_IMPEXP may be set on the compilation system command line or (if not set) *theninaninternalheaderfilewhenbuildingthelibrary,otherwise(when *usingthelibrary)itissethere.
*/ #ifndef PNG_IMPEXP # ifdefined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) /* This forces use of a DLL, disallowing static linking */ # define PNG_IMPEXP PNG_DLL_IMPORT # endif
/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat *'attributes'asastorageclass-theattributesgoatthestartofthe *functiondefinition,andattributesarealwaysappendedregardlessofthe *compiler.Thisconsiderablysimplifiesthesemacrosbutmaycauseproblems *ifanycompilersbothneedfunctionattributesandfailtohandlethemas *astorageclass(thisisunlikely.)
*/ #ifndef PNG_FUNCTION # define PNG_FUNCTION(type, name, args, attributes) attributes type name args #endif
#ifndef PNG_EXPORT_TYPE # define PNG_EXPORT_TYPE(type) PNG_IMPEXP type #endif
/* The ordinal value is only relevant when preprocessing png.h for symbol *tableentries,sowediscardithere.Seethe.dfnfilesinthe *scriptsdirectory.
*/
/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, *somakesomethingnon-emptytosatisfytherequirement:
*/ #define PNG_EMPTY /*empty list*/
/* Support for compiler specific function attributes. These are used *sothatwherecompilersupportisavailableincorrectuseofAPI *functionsinpng.hwillgeneratecompilerwarnings. * *Addedatlibpng-1.2.41.
*/
#ifndef PNG_DEPRECATED # define PNG_DEPRECATED /* Use of this function is deprecated */ #endif #ifndef PNG_USE_RESULT # define PNG_USE_RESULT /* The result of this function must be checked */ #endif #ifndef PNG_NORETURN # define PNG_NORETURN /* This function does not return */ #endif #ifndef PNG_ALLOCATED # define PNG_ALLOCATED /* The result of the function is new memory */ #endif #ifndef PNG_PRIVATE # define PNG_PRIVATE /* This is a private libpng function */ #endif #ifndef PNG_RESTRICT # define PNG_RESTRICT /* The C99 "restrict" feature */ #endif
#ifndef PNG_FP_EXPORT /* A floating point API. */ # ifdef PNG_FLOATING_POINT_SUPPORTED # define PNG_FP_EXPORT(ordinal, type, name, args)\
PNG_EXPORT(ordinal, type, name, args); # else/* No floating point APIs */ # define PNG_FP_EXPORT(ordinal, type, name, args) # endif #endif #ifndef PNG_FIXED_EXPORT /* A fixed point API. */ # ifdef PNG_FIXED_POINT_SUPPORTED # define PNG_FIXED_EXPORT(ordinal, type, name, args)\
PNG_EXPORT(ordinal, type, name, args); # else/* No fixed point APIs */ # define PNG_FIXED_EXPORT(ordinal, type, name, args) # endif #endif
#ifndef PNG_BUILDING_SYMBOL_TABLE /* Some typedefs to get us started. These should be safe on most of the common *platforms. * *png_uint_32andpng_int_32may,currently,belargerthanrequiredtoholda *32-bitvaluehoweverthisisnotnormallyadvisable. * *png_uint_16andpng_int_16shouldalwaysbetwobytesinsize-thisis *verifiedatlibrarybuildtime. * *png_bytemustalwaysbeonebyteinsize. * *Thechecksbelowuseconstantsfromlimits.h,asdefinedbytheISOC90 *standard.
*/ #if CHAR_BIT == 8 && UCHAR_MAX == 255 typedefunsignedchar png_byte; #else # error libpng requires 8-bit bytes #endif
/* Prior to 1.6.0, it was possible to disable the use of size_t and ptrdiff_t. *From1.6.0onwards,anISOC90compiler,aswellasastandard-compliant *behaviorofsizeofandptrdiff_tarerequired. *Thelegacytypedefsareprovidedhereforbackwardscompatibility.
*/ typedef size_t png_size_t; typedef ptrdiff_t png_ptrdiff_t;
/* libpng needs to know the maximum value of 'size_t' and this controls the *definitionofpng_alloc_size_t,below.Thismaximumvalueofsize_tlimits *butdoesnotcontrolthemaximumallocationsthelibrarymakes-thereis *directapplicationcontrolofthisthroughpng_set_user_limits().
*/ #ifndef PNG_SMALL_SIZE_T /* Compiler specific tests for systems where size_t is known to be less than *32bits(someofthesesystemsmaynolongerworkbecauseofthelackof *'far'support;seeabove.)
*/ # if (defined(__TURBOC__) && !defined(__FLAT__)) ||\
(defined(_MSC_VER) && defined(MAXSEG_64K)) # define PNG_SMALL_SIZE_T # endif #endif
/* png_alloc_size_t is guaranteed to be no smaller than size_t, and no smaller *thanpng_uint_32.Castsfromsize_torpng_uint_32topng_alloc_size_tare *notnecessary;infact,itisrecommendednottousethematall,sothat *thecompilercancomplainwhensomethingturnsouttobeproblematic. * *Castsintheotherdirection(frompng_alloc_size_ttosize_tor *png_uint_32)shouldbeexplicitlyapplied;however,wedonotexpectto *encounterpracticalsituationsthatrequiresuchconversions. * *PNG_SMALL_SIZE_Tmustbedefinedifthemaximumvalueofsize_tislessthan *4294967295-i.e.lessthanthemaximumvalueofpng_uint_32.
*/ #ifdef PNG_SMALL_SIZE_T typedef png_uint_32 png_alloc_size_t; #else typedef size_t png_alloc_size_t; #endif
/* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler *implementationsofIntelCPUspecificsupportofuser-modesegmentedaddress *spaces,where16-bitpointersaddressmorethan65536bytesofmemoryusing *separate'segment'registers.Theimplementationrequirestwodifferent *typesofpointer(onlyoneofwhichincludesthesegmentvalue.) * *Ifrequiredthissupportisavailableinversion1.2oflibpngandmaybe *availableinversionsthrough1.5,althoughthecorrectnessofthecodehas *notbeenverifiedrecently.
*/
/* Typedef for floating-point numbers that are converted to fixed-point with a *multipleof100,000,e.g.,gamma
*/ typedef png_int_32 png_fixed_point;
/* Pointers to pointers to pointers; i.e., pointer to array */ typedefchar * * * png_charppp;
#ifdef PNG_STDIO_SUPPORTED /* With PNG_STDIO_SUPPORTED it was possible to use I/O streams that were *notnecessarilystdioFILEstreams,toallowbuildingWindowsapplications *beforeWin32andWindowsCEapplicationsbeforeWinCE3.0,butthatkind *ofsupporthaslongbeendiscontinued.
*/ typedef FILE * png_FILE_p; /* [Deprecated] */ #endif
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.