jdk/src/share/native/sun/awt/libpng/pngconf.h
author malenkov
Tue, 29 Oct 2013 17:01:06 +0400
changeset 21278 ef8a3a2a72f2
parent 10576 db3409425573
permissions -rw-r--r--
8022746: List of spelling errors in API doc Reviewed-by: alexsch, smarks
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     1
/*
90ce3da70b43 Initial load
duke
parents:
diff changeset
     2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
90ce3da70b43 Initial load
duke
parents:
diff changeset
     3
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
     4
 * This code is free software; you can redistribute it and/or modify it
90ce3da70b43 Initial load
duke
parents:
diff changeset
     5
 * under the terms of the GNU General Public License version 2 only, as
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
     6
 * published by the Free Software Foundation.  Oracle designates this
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     7
 * particular file as subject to the "Classpath" exception as provided
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
     8
 * by Oracle in the LICENSE file that accompanied this code.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
     9
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    10
 * This code is distributed in the hope that it will be useful, but WITHOUT
90ce3da70b43 Initial load
duke
parents:
diff changeset
    11
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
90ce3da70b43 Initial load
duke
parents:
diff changeset
    12
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
90ce3da70b43 Initial load
duke
parents:
diff changeset
    13
 * version 2 for more details (a copy is included in the LICENSE file that
90ce3da70b43 Initial load
duke
parents:
diff changeset
    14
 * accompanied this code).
90ce3da70b43 Initial load
duke
parents:
diff changeset
    15
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    16
 * You should have received a copy of the GNU General Public License version
90ce3da70b43 Initial load
duke
parents:
diff changeset
    17
 * 2 along with this work; if not, write to the Free Software Foundation,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    18
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    19
 *
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    20
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    21
 * or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 2
diff changeset
    22
 * questions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    23
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    24
90ce3da70b43 Initial load
duke
parents:
diff changeset
    25
/* pngconf.h - machine configurable file for libpng
90ce3da70b43 Initial load
duke
parents:
diff changeset
    26
 *
90ce3da70b43 Initial load
duke
parents:
diff changeset
    27
 * This file is available under and governed by the GNU General Public
90ce3da70b43 Initial load
duke
parents:
diff changeset
    28
 * License version 2 only, as published by the Free Software Foundation.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    29
 * However, the following notice accompanied the original version of this
90ce3da70b43 Initial load
duke
parents:
diff changeset
    30
 * file and, per its terms, should not be removed:
90ce3da70b43 Initial load
duke
parents:
diff changeset
    31
 *
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    32
 * libpng version 1.5.4 - July 7, 2011
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    33
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    34
 * Copyright (c) 1998-2011 Glenn Randers-Pehrson
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    35
 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
90ce3da70b43 Initial load
duke
parents:
diff changeset
    36
 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    37
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    38
 * This code is released under the libpng license.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    39
 * For conditions of distribution and use, see the disclaimer
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    40
 * and license in png.h
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    41
 *
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    42
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    43
90ce3da70b43 Initial load
duke
parents:
diff changeset
    44
/* Any machine specific code is near the front of this file, so if you
90ce3da70b43 Initial load
duke
parents:
diff changeset
    45
 * are configuring libpng for a machine, you may want to read the section
90ce3da70b43 Initial load
duke
parents:
diff changeset
    46
 * starting here down to where it starts to typedef png_color, png_text,
90ce3da70b43 Initial load
duke
parents:
diff changeset
    47
 * and png_info.
90ce3da70b43 Initial load
duke
parents:
diff changeset
    48
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
    49
90ce3da70b43 Initial load
duke
parents:
diff changeset
    50
#ifndef PNGCONF_H
90ce3da70b43 Initial load
duke
parents:
diff changeset
    51
#define PNGCONF_H
90ce3da70b43 Initial load
duke
parents:
diff changeset
    52
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    53
#ifndef PNG_BUILDING_SYMBOL_TABLE
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    54
/* PNG_NO_LIMITS_H may be used to turn off the use of the standard C
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    55
 * definition file for  machine specific limits, this may impact the
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    56
 * correctness of the definitons below (see uses of INT_MAX).
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    57
 */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    58
#  ifndef PNG_NO_LIMITS_H
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    59
#    include <limits.h>
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    60
#  endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
    61
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    62
/* For the memory copy APIs (i.e. the standard definitions of these),
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    63
 * because this file defines png_memcpy and so on the base APIs must
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    64
 * be defined here.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    65
 */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    66
#  ifdef BSD
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    67
#    include <strings.h>
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    68
#  else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    69
#    include <string.h>
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    70
#  endif
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    71
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    72
/* For png_FILE_p - this provides the standard definition of a
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    73
 * FILE
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    74
 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    75
#  ifdef PNG_STDIO_SUPPORTED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    76
#    include <stdio.h>
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    77
#  endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
    78
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
    79
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    80
/* This controls optimization of the reading of 16 and 32 bit values
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    81
 * from PNG files.  It can be set on a per-app-file basis - it
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    82
 * just changes whether a macro is used to the function is called.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    83
 * The library builder sets the default, if read functions are not
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    84
 * built into the library the macro implementation is forced on.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    85
 */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    86
#ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    87
#  define PNG_USE_READ_MACROS
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    88
#endif
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    89
#if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    90
#  if PNG_DEFAULT_READ_MACROS
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    91
#    define PNG_USE_READ_MACROS
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    92
#  endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
    93
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
    94
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    95
/* COMPILER SPECIFIC OPTIONS.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
    96
 *
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    97
 * These options are provided so that a variety of difficult compilers
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    98
 * can be used.  Some are fixed at build time (e.g. PNG_API_RULE
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
    99
 * below) but still have compiler specific implementations, others
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   100
 * may be changed on a per-file basis when compiling against libpng.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   101
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   102
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   103
/* The PNGARG macro protects us against machines that don't have function
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   104
 * prototypes (ie K&R style headers).  If your compiler does not handle
90ce3da70b43 Initial load
duke
parents:
diff changeset
   105
 * function prototypes, define this macro and use the included ansi2knr.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   106
 * I've always been able to use _NO_PROTO as the indicator, but you may
90ce3da70b43 Initial load
duke
parents:
diff changeset
   107
 * need to drag the empty declaration out in front of here, or change the
90ce3da70b43 Initial load
duke
parents:
diff changeset
   108
 * ifdef to suit your own needs.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   109
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   110
#ifndef PNGARG
90ce3da70b43 Initial load
duke
parents:
diff changeset
   111
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   112
#  ifdef OF /* zlib prototype munger */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   113
#    define PNGARG(arglist) OF(arglist)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   114
#  else
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   115
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   116
#    ifdef _NO_PROTO
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   117
#      define PNGARG(arglist) ()
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   118
#    else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   119
#      define PNGARG(arglist) arglist
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   120
#    endif /* _NO_PROTO */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   121
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   122
#  endif /* OF */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   123
90ce3da70b43 Initial load
duke
parents:
diff changeset
   124
#endif /* PNGARG */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   125
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   126
/* Function calling conventions.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   127
 * =============================
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   128
 * Normally it is not necessary to specify to the compiler how to call
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   129
 * a function - it just does it - however on x86 systems derived from
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   130
 * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   131
 * and some others) there are multiple ways to call a function and the
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   132
 * default can be changed on the compiler command line.  For this reason
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   133
 * libpng specifies the calling convention of every exported function and
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   134
 * every function called via a user supplied function pointer.  This is
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   135
 * done in this file by defining the following macros:
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   136
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   137
 * PNGAPI    Calling convention for exported functions.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   138
 * PNGCBAPI  Calling convention for user provided (callback) functions.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   139
 * PNGCAPI   Calling convention used by the ANSI-C library (required
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   140
 *           for longjmp callbacks and sometimes used internally to
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   141
 *           specify the calling convention for zlib).
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   142
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   143
 * These macros should never be overridden.  If it is necessary to
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   144
 * change calling convention in a private build this can be done
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   145
 * by setting PNG_API_RULE (which defaults to 0) to one of the values
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   146
 * below to select the correct 'API' variants.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   147
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   148
 * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   149
 *                This is correct in every known environment.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   150
 * PNG_API_RULE=1 Use the operating system convention for PNGAPI and
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   151
 *                the 'C' calling convention (from PNGCAPI) for
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   152
 *                callbacks (PNGCBAPI).  This is no longer required
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   153
 *                in any known environment - if it has to be used
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   154
 *                please post an explanation of the problem to the
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   155
 *                libpng mailing list.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   156
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   157
 * These cases only differ if the operating system does not use the C
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   158
 * calling convention, at present this just means the above cases
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   159
 * (x86 DOS/Windows sytems) and, even then, this does not apply to
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   160
 * Cygwin running on those systems.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   161
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   162
 * Note that the value must be defined in pnglibconf.h so that what
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   163
 * the application uses to call the library matches the conventions
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   164
 * set when building the library.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   165
 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   166
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   167
/* Symbol export
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   168
 * =============
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   169
 * When building a shared library it is almost always necessary to tell
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   170
 * the compiler which symbols to export.  The png.h macro 'PNG_EXPORT'
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   171
 * is used to mark the symbols.  On some systems these symbols can be
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   172
 * extracted at link time and need no special processing by the compiler,
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   173
 * on other systems the symbols are flagged by the compiler and just
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   174
 * the declaration requires a special tag applied (unfortunately) in a
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   175
 * compiler dependent way.  Some systems can do either.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   176
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   177
 * A small number of older systems also require a symbol from a DLL to
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   178
 * be flagged to the program that calls it.  This is a problem because
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   179
 * we do not know in the header file included by application code that
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   180
 * the symbol will come from a shared library, as opposed to a statically
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   181
 * linked one.  For this reason the application must tell us by setting
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   182
 * the magic flag PNG_USE_DLL to turn on the special processing before
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   183
 * it includes png.h.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   184
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   185
 * Four additional macros are used to make this happen:
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   186
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   187
 * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   188
 *            the build or imported if PNG_USE_DLL is set - compiler
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   189
 *            and system specific.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   190
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   191
 * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   192
 *                       'type', compiler specific.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   193
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   194
 * PNG_DLL_EXPORT Set to the magic to use during a libpng build to
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   195
 *                make a symbol exported from the DLL.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   196
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   197
 * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   198
 *                from a DLL - used to define PNG_IMPEXP when
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   199
 *                PNG_USE_DLL is set.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   200
 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   201
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   202
/* System specific discovery.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   203
 * ==========================
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   204
 * This code is used at build time to find PNG_IMPEXP, the API settings
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   205
 * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   206
 * import processing is possible.  On Windows/x86 systems it also sets
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   207
 * compiler-specific macros to the values required to change the calling
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   208
 * conventions of the various functions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   209
 */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   210
#if ( defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   211
      defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) ) &&\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   212
    ( defined(_X86_) || defined(_X64_) || defined(_M_IX86) ||\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   213
      defined(_M_X64) || defined(_M_IA64) )
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   214
  /* Windows system (DOS doesn't support DLLs) running on x86/x64.  Includes
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   215
   * builds under Cygwin or MinGW.  Also includes Watcom builds but these need
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   216
   * special treatment because they are not compatible with GCC or Visual C
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   217
   * because of different calling conventions.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   218
   */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   219
#  if PNG_API_RULE == 2
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   220
    /* If this line results in an error, either because __watcall is not
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   221
     * understood or because of a redefine just below you cannot use *this*
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   222
     * build of the library with the compiler you are using.  *This* build was
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   223
     * build using Watcom and applications must also be built using Watcom!
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   224
     */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   225
#    define PNGCAPI __watcall
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   226
#  endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   227
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   228
#  if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800))
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   229
#    define PNGCAPI __cdecl
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   230
#    if PNG_API_RULE == 1
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   231
#      define PNGAPI __stdcall
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   232
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   233
#  else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   234
    /* An older compiler, or one not detected (erroneously) above,
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   235
     * if necessary override on the command line to get the correct
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   236
     * variants for the compiler.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   237
     */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   238
#    ifndef PNGCAPI
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   239
#      define PNGCAPI _cdecl
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   240
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   241
#    if PNG_API_RULE == 1 && !defined(PNGAPI)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   242
#      define PNGAPI _stdcall
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   243
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   244
#  endif /* compiler/api */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   245
  /* NOTE: PNGCBAPI always defaults to PNGCAPI. */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   246
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   247
#  if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   248
   ERROR: PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   249
#  endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   250
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   251
#  if (defined(_MSC_VER) && _MSC_VER < 800) ||\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   252
      (defined(__BORLANDC__) && __BORLANDC__ < 0x500)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   253
    /* older Borland and MSC
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   254
     * compilers used '__export' and required this to be after
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   255
     * the type.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   256
     */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   257
#    ifndef PNG_EXPORT_TYPE
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   258
#      define PNG_EXPORT_TYPE(type) type PNG_IMPEXP
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   259
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   260
#    define PNG_DLL_EXPORT __export
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   261
#  else /* newer compiler */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   262
#    define PNG_DLL_EXPORT __declspec(dllexport)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   263
#    ifndef PNG_DLL_IMPORT
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   264
#      define PNG_DLL_IMPORT __declspec(dllimport)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   265
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   266
#  endif /* compiler */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   267
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   268
#else /* !Windows/x86 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   269
#  if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   270
#    define PNGAPI _System
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   271
#  else /* !Windows/x86 && !OS/2 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   272
    /* Use the defaults, or define PNG*API on the command line (but
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   273
     * this will have to be done for every compile!)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   274
     */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   275
#  endif /* other system, !OS/2 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   276
#endif /* !Windows/x86 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   277
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   278
/* Now do all the defaulting . */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   279
#ifndef PNGCAPI
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   280
#  define PNGCAPI
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   281
#endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   282
#ifndef PNGCBAPI
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   283
#  define PNGCBAPI PNGCAPI
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   284
#endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   285
#ifndef PNGAPI
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   286
#  define PNGAPI PNGCAPI
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   287
#endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   288
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   289
/* The default for PNG_IMPEXP depends on whether the library is
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   290
 * being built or used.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   291
 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   292
#ifndef PNG_IMPEXP
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   293
#  ifdef PNGLIB_BUILD
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   294
    /* Building the library */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   295
#    if (defined(DLL_EXPORT)/*from libtool*/ ||\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   296
        defined(_WINDLL) || defined(_DLL) || defined(__DLL__) ||\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   297
        defined(_USRDLL) ||\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   298
        defined(PNG_BUILD_DLL)) && defined(PNG_DLL_EXPORT)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   299
      /* Building a DLL. */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   300
#      define PNG_IMPEXP PNG_DLL_EXPORT
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   301
#    endif /* DLL */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   302
#  else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   303
    /* Using the library */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   304
#    if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   305
      /* This forces use of a DLL, disallowing static linking */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   306
#      define PNG_IMPEXP PNG_DLL_IMPORT
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   307
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   308
#  endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   309
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   310
#  ifndef PNG_IMPEXP
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   311
#    define PNG_IMPEXP
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   312
#  endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   313
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   314
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   315
/* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   316
 * 'attributes' as a storage class - the attributes go at the start of the
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   317
 * function definition, and attributes are always appended regardless of the
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   318
 * compiler.  This considerably simplifies these macros but may cause problems
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   319
 * if any compilers both need function attributes and fail to handle them as
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   320
 * a storage class (this is unlikely.)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   321
 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   322
#ifndef PNG_FUNCTION
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   323
#  define PNG_FUNCTION(type, name, args, attributes) attributes type name args
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   324
#endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   325
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   326
#ifndef PNG_EXPORT_TYPE
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   327
#  define PNG_EXPORT_TYPE(type) PNG_IMPEXP type
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   328
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   329
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   330
   /* The ordinal value is only relevant when preprocessing png.h for symbol
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   331
    * table entries, so we discard it here.  See the .dfn files in the
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   332
    * scripts directory.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   333
    */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   334
#ifndef PNG_EXPORTA
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   335
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   336
#  define PNG_EXPORTA(ordinal, type, name, args, attributes)\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   337
      PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   338
        extern attributes)
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   339
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   340
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   341
/* ANSI-C (C90) does not permit a macro to be invoked with an empty argument,
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   342
 * so make something non-empty to satisfy the requirement:
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   343
 */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   344
#define PNG_EMPTY /*empty list*/
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   345
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   346
#define PNG_EXPORT(ordinal, type, name, args)\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   347
   PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   348
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   349
/* Use PNG_REMOVED to comment out a removed interface. */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   350
#ifndef PNG_REMOVED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   351
#  define PNG_REMOVED(ordinal, type, name, args, attributes)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   352
#endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   353
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   354
#ifndef PNG_CALLBACK
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   355
#  define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   356
#endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   357
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   358
/* Support for compiler specific function attributes.  These are used
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   359
 * so that where compiler support is available incorrect use of API
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   360
 * functions in png.h will generate compiler warnings.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   361
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   362
 * Added at libpng-1.2.41.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   363
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   364
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   365
#ifndef PNG_NO_PEDANTIC_WARNINGS
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   366
#  ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   367
#    define PNG_PEDANTIC_WARNINGS_SUPPORTED
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   368
#  endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   369
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   370
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   371
#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   372
  /* Support for compiler specific function attributes.  These are used
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   373
   * so that where compiler support is available incorrect use of API
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   374
   * functions in png.h will generate compiler warnings.  Added at libpng
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   375
   * version 1.2.41.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   376
   */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   377
#  if defined(__GNUC__)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   378
#    ifndef PNG_USE_RESULT
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   379
#      define PNG_USE_RESULT __attribute__((__warn_unused_result__))
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   380
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   381
#    ifndef PNG_NORETURN
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   382
#      define PNG_NORETURN   __attribute__((__noreturn__))
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   383
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   384
#    ifndef PNG_ALLOCATED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   385
#      define PNG_ALLOCATED  __attribute__((__malloc__))
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   386
#    endif
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   387
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   388
    /* This specifically protects structure members that should only be
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   389
     * accessed from within the library, therefore should be empty during
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   390
     * a library build.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   391
     */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   392
#    ifndef PNGLIB_BUILD
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   393
#      ifndef PNG_DEPRECATED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   394
#        define PNG_DEPRECATED __attribute__((__deprecated__))
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   395
#      endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   396
#      ifndef PNG_PRIVATE
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   397
#        if 0 /* Doesn't work so we use deprecated instead*/
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   398
#          define PNG_PRIVATE \
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   399
            __attribute__((warning("This function is not exported by libpng.")))
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   400
#        else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   401
#          define PNG_PRIVATE \
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   402
            __attribute__((__deprecated__))
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   403
#        endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   404
#      endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   405
#    endif /* PNGLIB_BUILD */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   406
#  endif /* __GNUC__ */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   407
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   408
#  if defined(_MSC_VER)  && (_MSC_VER >= 1300)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   409
#    ifndef PNG_USE_RESULT
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   410
#      define PNG_USE_RESULT /* not supported */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   411
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   412
#    ifndef PNG_NORETURN
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   413
#      define PNG_NORETURN   __declspec(noreturn)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   414
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   415
#    ifndef PNG_ALLOCATED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   416
#      if (_MSC_VER >= 1400)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   417
#        define PNG_ALLOCATED __declspec(restrict)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   418
#      endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   419
#    endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   420
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   421
    /* This specifically protects structure members that should only be
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   422
     * accessed from within the library, therefore should be empty during
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   423
     * a library build.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   424
     */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   425
#    ifndef PNGLIB_BUILD
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   426
#      ifndef PNG_DEPRECATED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   427
#        define PNG_DEPRECATED __declspec(deprecated)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   428
#      endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   429
#      ifndef PNG_PRIVATE
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   430
#        define PNG_PRIVATE __declspec(deprecated)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   431
#      endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   432
#    endif /* PNGLIB_BUILD */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   433
#  endif /* _MSC_VER */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   434
#endif /* PNG_PEDANTIC_WARNINGS */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   435
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   436
#ifndef PNG_DEPRECATED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   437
#  define PNG_DEPRECATED  /* Use of this function is deprecated */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   438
#endif
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   439
#ifndef PNG_USE_RESULT
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   440
#  define PNG_USE_RESULT  /* The result of this function must be checked */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   441
#endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   442
#ifndef PNG_NORETURN
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   443
#  define PNG_NORETURN    /* This function does not return */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   444
#endif
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   445
#ifndef PNG_ALLOCATED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   446
#  define PNG_ALLOCATED   /* The result of the function is new memory */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   447
#endif
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   448
#ifndef PNG_PRIVATE
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   449
#  define PNG_PRIVATE     /* This is a private libpng function */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   450
#endif
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   451
#ifndef PNG_FP_EXPORT     /* A floating point API. */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   452
#  ifdef PNG_FLOATING_POINT_SUPPORTED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   453
#     define PNG_FP_EXPORT(ordinal, type, name, args)\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   454
         PNG_EXPORT(ordinal, type, name, args)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   455
#  else                   /* No floating point APIs */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   456
#     define PNG_FP_EXPORT(ordinal, type, name, args)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   457
#  endif
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   458
#endif
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   459
#ifndef PNG_FIXED_EXPORT  /* A fixed point API. */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   460
#  ifdef PNG_FIXED_POINT_SUPPORTED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   461
#     define PNG_FIXED_EXPORT(ordinal, type, name, args)\
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   462
         PNG_EXPORT(ordinal, type, name, args)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   463
#  else                   /* No fixed point APIs */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   464
#     define PNG_FIXED_EXPORT(ordinal, type, name, args)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   465
#  endif
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   466
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   467
90ce3da70b43 Initial load
duke
parents:
diff changeset
   468
/* The following uses const char * instead of char * for error
90ce3da70b43 Initial load
duke
parents:
diff changeset
   469
 * and warning message functions, so some compilers won't complain.
90ce3da70b43 Initial load
duke
parents:
diff changeset
   470
 * If you do not want to use const, define PNG_NO_CONST here.
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   471
 *
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   472
 * This should not change how the APIs are called, so it can be done
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   473
 * on a per-file basis in the application.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   474
 */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   475
#ifndef PNG_CONST
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   476
#  ifndef PNG_NO_CONST
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   477
#    define PNG_CONST const
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   478
#  else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   479
#    define PNG_CONST
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   480
#  endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   481
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   482
90ce3da70b43 Initial load
duke
parents:
diff changeset
   483
/* Some typedefs to get us started.  These should be safe on most of the
90ce3da70b43 Initial load
duke
parents:
diff changeset
   484
 * common platforms.  The typedefs should be at least as large as the
90ce3da70b43 Initial load
duke
parents:
diff changeset
   485
 * numbers suggest (a png_uint_32 must be at least 32 bits long), but they
90ce3da70b43 Initial load
duke
parents:
diff changeset
   486
 * don't have to be exactly that size.  Some compilers dislike passing
90ce3da70b43 Initial load
duke
parents:
diff changeset
   487
 * unsigned shorts as function parameters, so you may be better off using
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   488
 * unsigned int for png_uint_16.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   489
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   490
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   491
#if defined(INT_MAX) && (INT_MAX > 0x7ffffffeL)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   492
typedef unsigned int png_uint_32;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   493
typedef int png_int_32;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   494
#else
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   495
typedef unsigned long png_uint_32;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   496
typedef long png_int_32;
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   497
#endif
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   498
typedef unsigned short png_uint_16;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   499
typedef short png_int_16;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   500
typedef unsigned char png_byte;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   501
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   502
#ifdef PNG_NO_SIZE_T
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   503
typedef unsigned int png_size_t;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   504
#else
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   505
typedef size_t png_size_t;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   506
#endif
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   507
#define png_sizeof(x) (sizeof (x))
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   508
90ce3da70b43 Initial load
duke
parents:
diff changeset
   509
/* The following is needed for medium model support.  It cannot be in the
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   510
 * pngpriv.h header.  Needs modification for other compilers besides
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   511
 * MSC.  Model independent support declares all arrays and pointers to be
90ce3da70b43 Initial load
duke
parents:
diff changeset
   512
 * large using the far keyword.  The zlib version used must also support
90ce3da70b43 Initial load
duke
parents:
diff changeset
   513
 * model independent data.  As of version zlib 1.0.4, the necessary changes
90ce3da70b43 Initial load
duke
parents:
diff changeset
   514
 * have been made in zlib.  The USE_FAR_KEYWORD define triggers other
90ce3da70b43 Initial load
duke
parents:
diff changeset
   515
 * changes that are needed. (Tim Wegner)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   516
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   517
90ce3da70b43 Initial load
duke
parents:
diff changeset
   518
/* Separate compiler dependencies (problem here is that zlib.h always
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   519
 * defines FAR. (SJT)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   520
 */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   521
#ifdef __BORLANDC__
90ce3da70b43 Initial load
duke
parents:
diff changeset
   522
#  if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   523
#    define LDATA 1
90ce3da70b43 Initial load
duke
parents:
diff changeset
   524
#  else
90ce3da70b43 Initial load
duke
parents:
diff changeset
   525
#    define LDATA 0
90ce3da70b43 Initial load
duke
parents:
diff changeset
   526
#  endif
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   527
  /* GRR:  why is Cygwin in here?  Cygwin is not Borland C... */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   528
#  if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   529
#    define PNG_MAX_MALLOC_64K /* only used in build */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   530
#    if (LDATA != 1)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   531
#      ifndef FAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
   532
#        define FAR __far
90ce3da70b43 Initial load
duke
parents:
diff changeset
   533
#      endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   534
#      define USE_FAR_KEYWORD
90ce3da70b43 Initial load
duke
parents:
diff changeset
   535
#    endif   /* LDATA != 1 */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   536
         /* Possibly useful for moving data out of default segment.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   537
          * Uncomment it if you want. Could also define FARDATA as
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   538
          * const if your compiler supports it. (SJT)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   539
#        define FARDATA FAR
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   540
          */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   541
#  endif  /* __WIN32__, __FLAT__, __CYGWIN__ */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   542
#endif   /* __BORLANDC__ */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   543
90ce3da70b43 Initial load
duke
parents:
diff changeset
   544
90ce3da70b43 Initial load
duke
parents:
diff changeset
   545
/* Suggest testing for specific compiler first before testing for
90ce3da70b43 Initial load
duke
parents:
diff changeset
   546
 * FAR.  The Watcom compiler defines both __MEDIUM__ and M_I86MM,
90ce3da70b43 Initial load
duke
parents:
diff changeset
   547
 * making reliance oncertain keywords suspect. (SJT)
90ce3da70b43 Initial load
duke
parents:
diff changeset
   548
 */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   549
90ce3da70b43 Initial load
duke
parents:
diff changeset
   550
/* MSC Medium model */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   551
#ifdef FAR
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   552
#  ifdef M_I86MM
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   553
#    define USE_FAR_KEYWORD
90ce3da70b43 Initial load
duke
parents:
diff changeset
   554
#    define FARDATA FAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
   555
#    include <dos.h>
90ce3da70b43 Initial load
duke
parents:
diff changeset
   556
#  endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   557
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   558
90ce3da70b43 Initial load
duke
parents:
diff changeset
   559
/* SJT: default case */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   560
#ifndef FAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
   561
#  define FAR
90ce3da70b43 Initial load
duke
parents:
diff changeset
   562
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   563
90ce3da70b43 Initial load
duke
parents:
diff changeset
   564
/* At this point FAR is always defined */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   565
#ifndef FARDATA
90ce3da70b43 Initial load
duke
parents:
diff changeset
   566
#  define FARDATA
90ce3da70b43 Initial load
duke
parents:
diff changeset
   567
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   568
90ce3da70b43 Initial load
duke
parents:
diff changeset
   569
/* Typedef for floating-point numbers that are converted
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   570
 * to fixed-point with a multiple of 100,000, e.g., gamma
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   571
 */
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   572
typedef png_int_32 png_fixed_point;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   573
90ce3da70b43 Initial load
duke
parents:
diff changeset
   574
/* Add typedefs for pointers */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   575
typedef void                      FAR * png_voidp;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   576
typedef PNG_CONST void            FAR * png_const_voidp;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   577
typedef png_byte                  FAR * png_bytep;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   578
typedef PNG_CONST png_byte        FAR * png_const_bytep;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   579
typedef png_uint_32               FAR * png_uint_32p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   580
typedef PNG_CONST png_uint_32     FAR * png_const_uint_32p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   581
typedef png_int_32                FAR * png_int_32p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   582
typedef PNG_CONST png_int_32      FAR * png_const_int_32p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   583
typedef png_uint_16               FAR * png_uint_16p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   584
typedef PNG_CONST png_uint_16     FAR * png_const_uint_16p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   585
typedef png_int_16                FAR * png_int_16p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   586
typedef PNG_CONST png_int_16      FAR * png_const_int_16p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   587
typedef char                      FAR * png_charp;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   588
typedef PNG_CONST char            FAR * png_const_charp;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   589
typedef png_fixed_point           FAR * png_fixed_point_p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   590
typedef PNG_CONST png_fixed_point FAR * png_const_fixed_point_p;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   591
typedef png_size_t                FAR * png_size_tp;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   592
typedef PNG_CONST png_size_t      FAR * png_const_size_tp;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   593
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   594
#ifdef PNG_STDIO_SUPPORTED
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   595
typedef FILE            * png_FILE_p;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   596
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   597
90ce3da70b43 Initial load
duke
parents:
diff changeset
   598
#ifdef PNG_FLOATING_POINT_SUPPORTED
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   599
typedef double           FAR * png_doublep;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   600
typedef PNG_CONST double FAR * png_const_doublep;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   601
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   602
90ce3da70b43 Initial load
duke
parents:
diff changeset
   603
/* Pointers to pointers; i.e. arrays */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   604
typedef png_byte        FAR * FAR * png_bytepp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   605
typedef png_uint_32     FAR * FAR * png_uint_32pp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   606
typedef png_int_32      FAR * FAR * png_int_32pp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   607
typedef png_uint_16     FAR * FAR * png_uint_16pp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   608
typedef png_int_16      FAR * FAR * png_int_16pp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   609
typedef PNG_CONST char  FAR * FAR * png_const_charpp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   610
typedef char            FAR * FAR * png_charpp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   611
typedef png_fixed_point FAR * FAR * png_fixed_point_pp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   612
#ifdef PNG_FLOATING_POINT_SUPPORTED
90ce3da70b43 Initial load
duke
parents:
diff changeset
   613
typedef double          FAR * FAR * png_doublepp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   614
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   615
90ce3da70b43 Initial load
duke
parents:
diff changeset
   616
/* Pointers to pointers to pointers; i.e., pointer to array */
90ce3da70b43 Initial load
duke
parents:
diff changeset
   617
typedef char            FAR * FAR * FAR * png_charppp;
90ce3da70b43 Initial load
duke
parents:
diff changeset
   618
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   619
/* png_alloc_size_t is guaranteed to be no smaller than png_size_t,
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   620
 * and no smaller than png_uint_32.  Casts from png_size_t or png_uint_32
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   621
 * to png_alloc_size_t are not necessary; in fact, it is recommended
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   622
 * not to use them at all so that the compiler can complain when something
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   623
 * turns out to be problematic.
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   624
 * Casts in the other direction (from png_alloc_size_t to png_size_t or
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   625
 * png_uint_32) should be explicitly applied; however, we do not expect
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   626
 * to encounter practical situations that require such conversions.
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   627
 */
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   628
#if defined(__TURBOC__) && !defined(__FLAT__)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   629
   typedef unsigned long png_alloc_size_t;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   630
#else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   631
#  if defined(_MSC_VER) && defined(MAXSEG_64K)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   632
     typedef unsigned long    png_alloc_size_t;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   633
#  else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   634
     /* This is an attempt to detect an old Windows system where (int) is
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   635
      * actually 16 bits, in that case png_malloc must have an argument with a
21278
ef8a3a2a72f2 8022746: List of spelling errors in API doc
malenkov
parents: 10576
diff changeset
   636
      * bigger size to accommodate the requirements of the library.
10576
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   637
      */
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   638
#    if (defined(_Windows) || defined(_WINDOWS) || defined(_WINDOWS_)) && \
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   639
        (!defined(INT_MAX) || INT_MAX <= 0x7ffffffeL)
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   640
       typedef DWORD         png_alloc_size_t;
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   641
#    else
db3409425573 7088287: libpng need to be updated.
bae
parents: 5506
diff changeset
   642
       typedef png_size_t    png_alloc_size_t;
2
90ce3da70b43 Initial load
duke
parents:
diff changeset
   643
#    endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   644
#  endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   645
#endif
90ce3da70b43 Initial load
duke
parents:
diff changeset
   646
90ce3da70b43 Initial load
duke
parents:
diff changeset
   647
#endif /* PNGCONF_H */