src/java.desktop/share/native/libfreetype/include/freetype/config/ftconfig.h
author prr
Thu, 09 May 2019 16:09:39 -0700
changeset 54876 da3834261f0c
parent 50479 70e706c85f1d
permissions -rw-r--r--
8222362: Upgrade to Freetype 2.10.0 Reviewed-by: serb, erikj
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     1
/****************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     2
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     3
 * ftconfig.h
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     4
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     5
 *   ANSI-specific configuration file (specification only).
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     6
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     7
 * Copyright (C) 1996-2019 by
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     8
 * David Turner, Robert Wilhelm, and Werner Lemberg.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
     9
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    10
 * This file is part of the FreeType project, and may only be used,
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    11
 * modified, and distributed under the terms of the FreeType project
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    12
 * license, LICENSE.TXT.  By continuing to use, modify, or distribute
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    13
 * this file you indicate that you have read the license and
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    14
 * understand and accept it fully.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    15
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    16
 */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    17
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    18
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    19
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    20
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    21
   * This header file contains a number of macro definitions that are used by
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    22
   * the rest of the engine.  Most of the macros here are automatically
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    23
   * determined at compile time, and you should not need to change it to port
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    24
   * FreeType, except to compile the library with a non-ANSI compiler.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    25
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    26
   * Note however that if some specific modifications are needed, we advise
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    27
   * you to place a modified copy in your build directory.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    28
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    29
   * The build directory is usually `builds/<system>`, and contains
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    30
   * system-specific files that are always included first when building the
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    31
   * library.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    32
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    33
   * This ANSI version should stay in `include/config/`.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    34
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    35
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    36
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    37
#ifndef FTCONFIG_H_
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    38
#define FTCONFIG_H_
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    39
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    40
#include <ft2build.h>
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    41
#include FT_CONFIG_OPTIONS_H
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    42
#include FT_CONFIG_STANDARD_LIBRARY_H
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    43
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    44
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    45
FT_BEGIN_HEADER
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    46
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    47
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    48
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    49
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    50
   *              PLATFORM-SPECIFIC CONFIGURATION MACROS
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    51
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    52
   * These macros can be toggled to suit a specific system.  The current ones
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    53
   * are defaults used to compile FreeType in an ANSI C environment (16bit
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    54
   * compilers are also supported).  Copy this file to your own
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    55
   * `builds/<system>` directory, and edit it to port the engine.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    56
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    57
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    58
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    59
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    60
  /* There are systems (like the Texas Instruments 'C54x) where a `char`  */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    61
  /* has 16~bits.  ANSI~C says that `sizeof(char)` is always~1.  Since an */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    62
  /* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which  */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    63
  /* is probably unexpected.                                              */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    64
  /*                                                                      */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    65
  /* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a     */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    66
  /* `char` type.                                                         */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    67
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    68
#ifndef FT_CHAR_BIT
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    69
#define FT_CHAR_BIT  CHAR_BIT
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    70
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    71
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    72
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    73
  /* The size of an `int` type. */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    74
#if                                 FT_UINT_MAX == 0xFFFFUL
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    75
#define FT_SIZEOF_INT  ( 16 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    76
#elif                               FT_UINT_MAX == 0xFFFFFFFFUL
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    77
#define FT_SIZEOF_INT  ( 32 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    78
#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    79
#define FT_SIZEOF_INT  ( 64 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    80
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    81
#error "Unsupported size of `int' type!"
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    82
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    83
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    84
  /* The size of a `long` type.  A five-byte `long` (as used e.g. on the */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    85
  /* DM642) is recognized but avoided.                                   */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    86
#if                                  FT_ULONG_MAX == 0xFFFFFFFFUL
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    87
#define FT_SIZEOF_LONG  ( 32 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    88
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    89
#define FT_SIZEOF_LONG  ( 32 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    90
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    91
#define FT_SIZEOF_LONG  ( 64 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    92
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    93
#error "Unsupported size of `long' type!"
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    94
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    95
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    96
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    97
  /* `FT_UNUSED` indicates that a given parameter is not used --   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
    98
  /* this is only used to get rid of unpleasant compiler warnings. */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    99
#ifndef FT_UNUSED
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   100
#define FT_UNUSED( arg )  ( (arg) = (arg) )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   101
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   102
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   103
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   104
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   105
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   106
   *                    AUTOMATIC CONFIGURATION MACROS
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   107
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   108
   * These macros are computed from the ones defined above.  Don't touch
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   109
   * their definition, unless you know precisely what you are doing.  No
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   110
   * porter should need to mess with them.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   111
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   112
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   113
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   114
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   115
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   116
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   117
   * Mac support
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   118
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   119
   *   This is the only necessary change, so it is defined here instead
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   120
   *   providing a new configuration file.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   121
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   122
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   123
  /* No Carbon frameworks for 64bit 10.4.x.                         */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   124
  /* `AvailabilityMacros.h` is available since Mac OS X 10.2,       */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   125
  /* so guess the system version by maximum errno before inclusion. */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   126
#include <errno.h>
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   127
#ifdef ECANCELED /* defined since 10.2 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   128
#include "AvailabilityMacros.h"
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   129
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   130
#if defined( __LP64__ ) && \
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   131
    ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   132
#undef FT_MACINTOSH
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   133
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   134
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   135
#elif defined( __SC__ ) || defined( __MRC__ )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   136
  /* Classic MacOS compilers */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   137
#include "ConditionalMacros.h"
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   138
#if TARGET_OS_MAC
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   139
#define FT_MACINTOSH 1
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   140
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   141
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   142
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   143
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   144
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   145
  /* Fix compiler warning with sgi compiler. */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   146
#if defined( __sgi ) && !defined( __GNUC__ )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   147
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   148
#pragma set woff 3505
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   149
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   150
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   151
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   152
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   153
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   154
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   155
   * @section:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   156
   *   basic_types
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   157
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   158
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   159
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   160
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   161
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   162
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   163
   * @type:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   164
   *   FT_Int16
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   165
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   166
   * @description:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   167
   *   A typedef for a 16bit signed integer type.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   168
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   169
  typedef signed short  FT_Int16;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   170
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   171
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   172
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   173
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   174
   * @type:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   175
   *   FT_UInt16
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   176
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   177
   * @description:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   178
   *   A typedef for a 16bit unsigned integer type.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   179
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   180
  typedef unsigned short  FT_UInt16;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   181
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   182
  /* */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   183
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   184
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   185
  /* this #if 0 ... #endif clause is for documentation purposes */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   186
#if 0
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   187
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   188
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   189
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   190
   * @type:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   191
   *   FT_Int32
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   192
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   193
   * @description:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   194
   *   A typedef for a 32bit signed integer type.  The size depends on the
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   195
   *   configuration.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   196
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   197
  typedef signed XXX  FT_Int32;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   198
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   199
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   200
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   201
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   202
   * @type:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   203
   *   FT_UInt32
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   204
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   205
   *   A typedef for a 32bit unsigned integer type.  The size depends on the
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   206
   *   configuration.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   207
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   208
  typedef unsigned XXX  FT_UInt32;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   209
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   210
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   211
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   212
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   213
   * @type:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   214
   *   FT_Int64
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   215
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   216
   *   A typedef for a 64bit signed integer type.  The size depends on the
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   217
   *   configuration.  Only defined if there is real 64bit support;
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   218
   *   otherwise, it gets emulated with a structure (if necessary).
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   219
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   220
  typedef signed XXX  FT_Int64;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   221
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   222
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   223
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   224
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   225
   * @type:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   226
   *   FT_UInt64
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   227
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   228
   *   A typedef for a 64bit unsigned integer type.  The size depends on the
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   229
   *   configuration.  Only defined if there is real 64bit support;
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   230
   *   otherwise, it gets emulated with a structure (if necessary).
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   231
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   232
  typedef unsigned XXX  FT_UInt64;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   233
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   234
  /* */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   235
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   236
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   237
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   238
#if FT_SIZEOF_INT == ( 32 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   239
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   240
  typedef signed int      FT_Int32;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   241
  typedef unsigned int    FT_UInt32;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   242
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   243
#elif FT_SIZEOF_LONG == ( 32 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   244
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   245
  typedef signed long     FT_Int32;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   246
  typedef unsigned long   FT_UInt32;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   247
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   248
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   249
#error "no 32bit type found -- please check your configuration files"
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   250
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   251
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   252
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   253
  /* look up an integer type that is at least 32~bits */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   254
#if FT_SIZEOF_INT >= ( 32 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   255
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   256
  typedef int            FT_Fast;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   257
  typedef unsigned int   FT_UFast;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   258
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   259
#elif FT_SIZEOF_LONG >= ( 32 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   260
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   261
  typedef long           FT_Fast;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   262
  typedef unsigned long  FT_UFast;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   263
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   264
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   265
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   266
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   267
  /* determine whether we have a 64-bit `int` type for platforms without */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   268
  /* Autoconf                                                            */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   269
#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   270
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   271
  /* `FT_LONG64` must be defined if a 64-bit type is available */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   272
#define FT_LONG64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   273
#define FT_INT64   long
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   274
#define FT_UINT64  unsigned long
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   275
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   276
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   277
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   278
   * A 64-bit data type may create compilation problems if you compile in
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   279
   * strict ANSI mode.  To avoid them, we disable other 64-bit data types if
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   280
   * `__STDC__` is defined.  You can however ignore this rule by defining the
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   281
   * `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   282
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   283
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   284
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   285
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   286
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   287
#define FT_LONG64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   288
#define FT_INT64   long long int
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   289
#define FT_UINT64  unsigned long long int
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   290
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   291
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   292
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   293
  /* this compiler provides the `__int64` type */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   294
#define FT_LONG64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   295
#define FT_INT64   __int64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   296
#define FT_UINT64  unsigned __int64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   297
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   298
#elif defined( __BORLANDC__ )  /* Borland C++ */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   299
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   300
  /* XXXX: We should probably check the value of `__BORLANDC__` in order */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   301
  /*       to test the compiler version.                                 */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   302
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   303
  /* this compiler provides the `__int64` type */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   304
#define FT_LONG64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   305
#define FT_INT64   __int64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   306
#define FT_UINT64  unsigned __int64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   307
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   308
#elif defined( __WATCOMC__ )   /* Watcom C++ */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   309
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   310
  /* Watcom doesn't provide 64-bit data types */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   311
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   312
#elif defined( __MWERKS__ )    /* Metrowerks CodeWarrior */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   313
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   314
#define FT_LONG64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   315
#define FT_INT64   long long int
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   316
#define FT_UINT64  unsigned long long int
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   317
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   318
#elif defined( __GNUC__ )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   319
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   320
  /* GCC provides the `long long` type */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   321
#define FT_LONG64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   322
#define FT_INT64   long long int
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   323
#define FT_UINT64  unsigned long long int
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   324
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   325
#endif /* __STDC_VERSION__ >= 199901L */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   326
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   327
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   328
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   329
#ifdef FT_LONG64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   330
  typedef FT_INT64   FT_Int64;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   331
  typedef FT_UINT64  FT_UInt64;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   332
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   333
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   334
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   335
#ifdef _WIN64
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   336
  /* only 64bit Windows uses the LLP64 data model, i.e., */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   337
  /* 32bit integers, 64bit pointers                      */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   338
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   339
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   340
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   341
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   342
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   343
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   344
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   345
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   346
   * miscellaneous
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   347
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   348
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   349
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   350
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   351
#define FT_BEGIN_STMNT  do {
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   352
#define FT_END_STMNT    } while ( 0 )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   353
#define FT_DUMMY_STMNT  FT_BEGIN_STMNT FT_END_STMNT
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   354
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   355
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   356
  /* `typeof` condition taken from gnulib's `intprops.h` header file */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   357
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 )                       || \
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   358
      ( defined( __IBMC__ ) && __IBMC__ >= 1210 &&                      \
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   359
        defined( __IBM__TYPEOF__ ) )                                 || \
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   360
      ( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   361
#define FT_TYPEOF( type )  ( __typeof__ ( type ) )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   362
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   363
#define FT_TYPEOF( type )  /* empty */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   364
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   365
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   366
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   367
  /* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define,            */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   368
  /* respectively, a function that gets used only within the scope of a  */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   369
  /* module.  Normally, both the header and source code files for such a */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   370
  /* function are within a single module directory.                      */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   371
  /*                                                                     */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   372
  /* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and      */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   373
  /* `FT_LOCAL_ARRAY_DEF`.                                               */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   374
  /*                                                                     */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   375
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   376
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   377
#define FT_LOCAL( x )      static  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   378
#define FT_LOCAL_DEF( x )  static  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   379
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   380
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   381
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   382
#ifdef __cplusplus
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   383
#define FT_LOCAL( x )      extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   384
#define FT_LOCAL_DEF( x )  extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   385
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   386
#define FT_LOCAL( x )      extern  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   387
#define FT_LOCAL_DEF( x )  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   388
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   389
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   390
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   391
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   392
#define FT_LOCAL_ARRAY( x )      extern const  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   393
#define FT_LOCAL_ARRAY_DEF( x )  const  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   394
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   395
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   396
  /* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   397
  /* functions that are used in more than a single module.  In the        */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   398
  /* current setup this implies that the declaration is in a header file  */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   399
  /* in the `include/freetype/internal` directory, and the function body  */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   400
  /* is in a file in `src/base`.                                          */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   401
  /*                                                                      */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   402
#ifndef FT_BASE
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   403
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   404
#ifdef __cplusplus
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   405
#define FT_BASE( x )  extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   406
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   407
#define FT_BASE( x )  extern  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   408
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   409
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   410
#endif /* !FT_BASE */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   411
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   412
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   413
#ifndef FT_BASE_DEF
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   414
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   415
#ifdef __cplusplus
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   416
#define FT_BASE_DEF( x )  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   417
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   418
#define FT_BASE_DEF( x )  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   419
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   420
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   421
#endif /* !FT_BASE_DEF */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   422
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   423
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   424
  /* When compiling FreeType as a DLL or DSO with hidden visibility    */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   425
  /* some systems/compilers need a special attribute in front OR after */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   426
  /* the return type of function declarations.                         */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   427
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   428
  /* Two macros are used within the FreeType source code to define     */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   429
  /* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`.      */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   430
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   431
  /* - `FT_EXPORT( return_type )`                                      */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   432
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   433
  /*   is used in a function declaration, as in                        */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   434
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   435
  /*   ```                                                             */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   436
  /*     FT_EXPORT( FT_Error )                                         */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   437
  /*     FT_Init_FreeType( FT_Library*  alibrary );                    */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   438
  /*   ```                                                             */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   439
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   440
  /* - `FT_EXPORT_DEF( return_type )`                                  */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   441
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   442
  /*   is used in a function definition, as in                         */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   443
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   444
  /*   ```                                                             */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   445
  /*     FT_EXPORT_DEF( FT_Error )                                     */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   446
  /*     FT_Init_FreeType( FT_Library*  alibrary )                     */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   447
  /*     {                                                             */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   448
  /*       ... some code ...                                           */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   449
  /*       return FT_Err_Ok;                                           */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   450
  /*     }                                                             */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   451
  /*   ```                                                             */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   452
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   453
  /* You can provide your own implementation of `FT_EXPORT` and        */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   454
  /* `FT_EXPORT_DEF` here if you want.                                 */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   455
  /*                                                                   */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   456
  /* To export a variable, use `FT_EXPORT_VAR`.                        */
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   457
  /*                                                                   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   458
#ifndef FT_EXPORT
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   459
50479
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   460
#ifdef FT2_BUILD_LIBRARY
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   461
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   462
#if defined( _WIN32 ) && defined( DLL_EXPORT )
50479
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   463
#define FT_EXPORT( x )  __declspec( dllexport )  x
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   464
#elif defined( __GNUC__ ) && __GNUC__ >= 4
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   465
#define FT_EXPORT( x )  __attribute__(( visibility( "default" ) ))  x
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   466
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   467
#define FT_EXPORT( x )  __global  x
50479
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   468
#elif defined( __cplusplus )
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   469
#define FT_EXPORT( x )  extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   470
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   471
#define FT_EXPORT( x )  extern  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   472
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   473
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   474
#else
50479
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   475
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   476
#if defined( _WIN32 ) && defined( DLL_IMPORT )
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   477
#define FT_EXPORT( x )  __declspec( dllimport )  x
50479
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   478
#elif defined( __cplusplus )
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   479
#define FT_EXPORT( x )  extern "C"  x
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   480
#else
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   481
#define FT_EXPORT( x )  extern  x
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   482
#endif
50479
70e706c85f1d 8203367: Upgrade to freetype 2.9.1
prr
parents: 49234
diff changeset
   483
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   484
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   485
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   486
#endif /* !FT_EXPORT */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   487
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   488
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   489
#ifndef FT_EXPORT_DEF
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   490
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   491
#ifdef __cplusplus
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   492
#define FT_EXPORT_DEF( x )  extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   493
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   494
#define FT_EXPORT_DEF( x )  extern  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   495
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   496
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   497
#endif /* !FT_EXPORT_DEF */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   498
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   499
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   500
#ifndef FT_EXPORT_VAR
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   501
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   502
#ifdef __cplusplus
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   503
#define FT_EXPORT_VAR( x )  extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   504
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   505
#define FT_EXPORT_VAR( x )  extern  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   506
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   507
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   508
#endif /* !FT_EXPORT_VAR */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   509
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   510
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   511
  /* The following macros are needed to compile the library with a   */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   512
  /* C++ compiler and with 16bit compilers.                          */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   513
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   514
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   515
  /* This is special.  Within C++, you must specify `extern "C"` for */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   516
  /* functions which are used via function pointers, and you also    */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   517
  /* must do that for structures which contain function pointers to  */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   518
  /* assure C linkage -- it's not possible to have (local) anonymous */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   519
  /* functions which are accessed by (global) function pointers.     */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   520
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   521
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   522
  /* FT_CALLBACK_DEF is used to _define_ a callback function,        */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   523
  /* located in the same source code file as the structure that uses */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   524
  /* it.                                                             */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   525
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   526
  /* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare   */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   527
  /* and define a callback function, respectively, in a similar way  */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   528
  /* as FT_BASE and FT_BASE_DEF work.                                */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   529
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   530
  /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   531
  /* contains pointers to callback functions.                        */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   532
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   533
  /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable   */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   534
  /* that contains pointers to callback functions.                   */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   535
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   536
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   537
  /* Some 16bit compilers have to redefine these macros to insert    */
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 50479
diff changeset
   538
  /* the infamous `_cdecl` or `__fastcall` declarations.             */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   539
  /*                                                                 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   540
#ifndef FT_CALLBACK_DEF
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   541
#ifdef __cplusplus
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   542
#define FT_CALLBACK_DEF( x )  extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   543
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   544
#define FT_CALLBACK_DEF( x )  static  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   545
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   546
#endif /* FT_CALLBACK_DEF */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   547
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   548
#ifndef FT_BASE_CALLBACK
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   549
#ifdef __cplusplus
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   550
#define FT_BASE_CALLBACK( x )      extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   551
#define FT_BASE_CALLBACK_DEF( x )  extern "C"  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   552
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   553
#define FT_BASE_CALLBACK( x )      extern  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   554
#define FT_BASE_CALLBACK_DEF( x )  x
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   555
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   556
#endif /* FT_BASE_CALLBACK */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   557
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   558
#ifndef FT_CALLBACK_TABLE
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   559
#ifdef __cplusplus
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   560
#define FT_CALLBACK_TABLE      extern "C"
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   561
#define FT_CALLBACK_TABLE_DEF  extern "C"
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   562
#else
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   563
#define FT_CALLBACK_TABLE      extern
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   564
#define FT_CALLBACK_TABLE_DEF  /* nothing */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   565
#endif
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   566
#endif /* FT_CALLBACK_TABLE */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   567
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   568
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   569
FT_END_HEADER
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   570
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   571
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   572
#endif /* FTCONFIG_H_ */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   573
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   574
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   575
/* END */