src/java.desktop/share/native/libfreetype/include/freetype/internal/ftrfork.h
author prr
Thu, 09 May 2019 16:09:39 -0700
changeset 54876 da3834261f0c
parent 49234 3375a8039fde
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: 49234
diff changeset
     1
/****************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
     2
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
     3
 * ftrfork.h
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
     4
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
     5
 *   Embedded resource forks accessor (specification).
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
     6
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
     7
 * Copyright (C) 2004-2019 by
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
     8
 * Masatake YAMATO and Redhat K.K.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
     9
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
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: 49234
diff changeset
    11
 * modified, and distributed under the terms of the FreeType project
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    12
 * license, LICENSE.TXT.  By continuing to use, modify, or distribute
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    13
 * this file you indicate that you have read the license and
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    14
 * understand and accept it fully.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    15
 *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    16
 */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    17
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    18
/****************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    19
 * Development of the code in this file is support of
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    20
 * Information-technology Promotion Agency, Japan.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    21
 */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    22
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    23
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    24
#ifndef FTRFORK_H_
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    25
#define FTRFORK_H_
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    26
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    27
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    28
#include <ft2build.h>
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    29
#include FT_INTERNAL_OBJECTS_H
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    30
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    31
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    32
FT_BEGIN_HEADER
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    33
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    34
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    35
  /* Number of guessing rules supported in `FT_Raccess_Guess'.            */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    36
  /* Don't forget to increment the number if you add a new guessing rule. */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    37
#define FT_RACCESS_N_RULES  9
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    38
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
  /* A structure to describe a reference in a resource by its resource ID */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    41
  /* and internal offset.  The `POST' resource expects to be concatenated */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    42
  /* by the order of resource IDs instead of its appearance in the file.  */
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
  typedef struct  FT_RFork_Ref_
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    45
  {
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    46
    FT_Short  res_id;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    47
    FT_Long   offset;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    48
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    49
  } FT_RFork_Ref;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    50
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    51
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    52
#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    53
  typedef FT_Error
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    54
  (*ft_raccess_guess_func)( FT_Library  library,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    55
                            FT_Stream   stream,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    56
                            char       *base_file_name,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    57
                            char      **result_file_name,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    58
                            FT_Long    *result_offset );
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    59
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    60
  typedef enum  FT_RFork_Rule_ {
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    61
    FT_RFork_Rule_invalid = -2,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    62
    FT_RFork_Rule_uknown, /* -1 */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    63
    FT_RFork_Rule_apple_double,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    64
    FT_RFork_Rule_apple_single,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    65
    FT_RFork_Rule_darwin_ufs_export,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    66
    FT_RFork_Rule_darwin_newvfs,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    67
    FT_RFork_Rule_darwin_hfsplus,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    68
    FT_RFork_Rule_vfat,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    69
    FT_RFork_Rule_linux_cap,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    70
    FT_RFork_Rule_linux_double,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    71
    FT_RFork_Rule_linux_netatalk
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    72
  } FT_RFork_Rule;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    73
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    74
  /* For fast translation between rule index and rule type,
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    75
   * the macros FT_RFORK_xxx should be kept consistent with the
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    76
   * raccess_guess_funcs table
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    77
   */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    78
  typedef struct ft_raccess_guess_rec_ {
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    79
    ft_raccess_guess_func  func;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    80
    FT_RFork_Rule          type;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    81
  } ft_raccess_guess_rec;
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    82
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    83
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    84
#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type )  \
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    85
          static const type name[] = {
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    86
#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix )  \
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    87
          { raccess_guess_ ## func_suffix,                           \
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    88
            FT_RFork_Rule_ ## type_suffix },
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    89
  /* this array is a storage, thus a final `;' is needed */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    90
#define CONST_FT_RFORK_RULE_ARRAY_END  };
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    91
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    92
#endif /* FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    93
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
    94
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    95
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    96
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    97
   * @function:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    98
   *   FT_Raccess_Guess
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
    99
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   100
   * @description:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   101
   *   Guess a file name and offset where the actual resource fork is stored.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   102
   *   The macro FT_RACCESS_N_RULES holds the number of guessing rules; the
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   103
   *   guessed result for the Nth rule is represented as a triplet: a new
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   104
   *   file name (new_names[N]), a file offset (offsets[N]), and an error
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   105
   *   code (errors[N]).
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   106
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   107
   * @input:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   108
   *   library ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   109
   *     A FreeType library instance.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   110
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   111
   *   stream ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   112
   *     A file stream containing the resource fork.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   113
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   114
   *   base_name ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   115
   *     The (base) file name of the resource fork used for some guessing
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   116
   *     rules.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   117
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   118
   * @output:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   119
   *   new_names ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   120
   *     An array of guessed file names in which the resource forks may
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   121
   *     exist.  If 'new_names[N]' is `NULL`, the guessed file name is equal
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   122
   *     to `base_name`.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   123
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   124
   *   offsets ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   125
   *     An array of guessed file offsets.  'offsets[N]' holds the file
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   126
   *     offset of the possible start of the resource fork in file
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   127
   *     'new_names[N]'.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   128
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   129
   *   errors ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   130
   *     An array of FreeType error codes.  'errors[N]' is the error code of
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   131
   *     Nth guessing rule function.  If 'errors[N]' is not FT_Err_Ok,
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   132
   *     'new_names[N]' and 'offsets[N]' are meaningless.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   133
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   134
  FT_BASE( void )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   135
  FT_Raccess_Guess( FT_Library  library,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   136
                    FT_Stream   stream,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   137
                    char*       base_name,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   138
                    char**      new_names,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   139
                    FT_Long*    offsets,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   140
                    FT_Error*   errors );
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
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   143
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   144
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   145
   * @function:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   146
   *   FT_Raccess_Get_HeaderInfo
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   147
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   148
   * @description:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   149
   *   Get the information from the header of resource fork.  The information
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   150
   *   includes the file offset where the resource map starts, and the file
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   151
   *   offset where the resource data starts.  `FT_Raccess_Get_DataOffsets`
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   152
   *   requires these two data.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   153
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   154
   * @input:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   155
   *   library ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   156
   *     A FreeType library instance.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   157
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   158
   *   stream ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   159
   *     A file stream containing the resource fork.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   160
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   161
   *   rfork_offset ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   162
   *     The file offset where the resource fork starts.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   163
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   164
   * @output:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   165
   *   map_offset ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   166
   *     The file offset where the resource map starts.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   167
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   168
   *   rdata_pos ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   169
   *     The file offset where the resource data starts.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   170
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   171
   * @return:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   172
   *   FreeType error code.  FT_Err_Ok means success.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   173
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   174
  FT_BASE( FT_Error )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   175
  FT_Raccess_Get_HeaderInfo( FT_Library  library,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   176
                             FT_Stream   stream,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   177
                             FT_Long     rfork_offset,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   178
                             FT_Long    *map_offset,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   179
                             FT_Long    *rdata_pos );
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   180
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   181
54876
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   182
  /**************************************************************************
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   183
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   184
   * @function:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   185
   *   FT_Raccess_Get_DataOffsets
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   186
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   187
   * @description:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   188
   *   Get the data offsets for a tag in a resource fork.  Offsets are stored
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   189
   *   in an array because, in some cases, resources in a resource fork have
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   190
   *   the same tag.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   191
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   192
   * @input:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   193
   *   library ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   194
   *     A FreeType library instance.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   195
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   196
   *   stream ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   197
   *     A file stream containing the resource fork.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   198
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   199
   *   map_offset ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   200
   *     The file offset where the resource map starts.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   201
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   202
   *   rdata_pos ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   203
   *     The file offset where the resource data starts.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   204
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   205
   *   tag ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   206
   *     The resource tag.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   207
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   208
   *   sort_by_res_id ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   209
   *     A Boolean to sort the fragmented resource by their ids.  The
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   210
   *     fragmented resources for 'POST' resource should be sorted to restore
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   211
   *     Type1 font properly.  For 'sfnt' resources, sorting may induce a
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   212
   *     different order of the faces in comparison to that by QuickDraw API.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   213
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   214
   * @output:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   215
   *   offsets ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   216
   *     The stream offsets for the resource data specified by 'tag'.  This
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   217
   *     array is allocated by the function, so you have to call @ft_mem_free
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   218
   *     after use.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   219
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   220
   *   count ::
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   221
   *     The length of offsets array.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   222
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   223
   * @return:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   224
   *   FreeType error code.  FT_Err_Ok means success.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   225
   *
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   226
   * @note:
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   227
   *   Normally you should use `FT_Raccess_Get_HeaderInfo` to get the value
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   228
   *   for `map_offset` and `rdata_pos`.
da3834261f0c 8222362: Upgrade to Freetype 2.10.0
prr
parents: 49234
diff changeset
   229
   */
49234
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   230
  FT_BASE( FT_Error )
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   231
  FT_Raccess_Get_DataOffsets( FT_Library  library,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   232
                              FT_Stream   stream,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   233
                              FT_Long     map_offset,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   234
                              FT_Long     rdata_pos,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   235
                              FT_Long     tag,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   236
                              FT_Bool     sort_by_res_id,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   237
                              FT_Long   **offsets,
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   238
                              FT_Long    *count );
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
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   241
FT_END_HEADER
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
#endif /* FTRFORK_H_ */
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
3375a8039fde 8193017: Import freetype sources into OpenJDK source tree
prr
parents:
diff changeset
   246
/* END */