tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ttcmap.h (3727B)


      1 /****************************************************************************
      2 *
      3 * ttcmap.h
      4 *
      5 *   TrueType character mapping table (cmap) support (specification).
      6 *
      7 * Copyright (C) 2002-2025 by
      8 * David Turner, Robert Wilhelm, and Werner Lemberg.
      9 *
     10 * This file is part of the FreeType project, and may only be used,
     11 * modified, and distributed under the terms of the FreeType project
     12 * license, LICENSE.TXT.  By continuing to use, modify, or distribute
     13 * this file you indicate that you have read the license and
     14 * understand and accept it fully.
     15 *
     16 */
     17 
     18 
     19 #ifndef TTCMAP_H_
     20 #define TTCMAP_H_
     21 
     22 
     23 #include <freetype/internal/tttypes.h>
     24 #include <freetype/internal/ftvalid.h>
     25 #include <freetype/internal/services/svttcmap.h>
     26 
     27 FT_BEGIN_HEADER
     28 
     29 
     30 #define TT_CMAP_FLAG_UNSORTED     1
     31 #define TT_CMAP_FLAG_OVERLAPPING  2
     32 
     33  typedef struct  TT_CMapRec_
     34  {
     35    FT_CMapRec  cmap;
     36    FT_Byte*    data;           /* pointer to in-memory cmap table */
     37    FT_Int      flags;          /* for format 4 only               */
     38 
     39  } TT_CMapRec, *TT_CMap;
     40 
     41  typedef const struct TT_CMap_ClassRec_*  TT_CMap_Class;
     42 
     43 
     44  typedef FT_Error
     45  (*TT_CMap_ValidateFunc)( FT_Byte*      data,
     46                           FT_Validator  valid );
     47 
     48  typedef struct  TT_CMap_ClassRec_
     49  {
     50    FT_CMap_ClassRec      clazz;
     51    FT_UInt               format;
     52    TT_CMap_ValidateFunc  validate;
     53    TT_CMap_Info_GetFunc  get_cmap_info;
     54 
     55  } TT_CMap_ClassRec;
     56 
     57 
     58 #define FT_DEFINE_TT_CMAP( class_,             \
     59                           size_,              \
     60                           init_,              \
     61                           done_,              \
     62                           char_index_,        \
     63                           char_next_,         \
     64                           char_var_index_,    \
     65                           char_var_default_,  \
     66                           variant_list_,      \
     67                           charvariant_list_,  \
     68                           variantchar_list_,  \
     69                           format_,            \
     70                           validate_,          \
     71                           get_cmap_info_ )    \
     72  FT_CALLBACK_TABLE_DEF                        \
     73  const TT_CMap_ClassRec  class_ =             \
     74  {                                            \
     75    { size_,                                   \
     76      init_,                                   \
     77      done_,                                   \
     78      char_index_,                             \
     79      char_next_,                              \
     80      char_var_index_,                         \
     81      char_var_default_,                       \
     82      variant_list_,                           \
     83      charvariant_list_,                       \
     84      variantchar_list_                        \
     85    },                                         \
     86                                               \
     87    format_,                                   \
     88    validate_,                                 \
     89    get_cmap_info_                             \
     90  };
     91 
     92 
     93 #undef  TTCMAPCITEM
     94 #define TTCMAPCITEM( a )  FT_CALLBACK_TABLE  const TT_CMap_ClassRec  a;
     95 #include "ttcmapc.h"
     96 
     97 
     98  typedef struct  TT_ValidatorRec_
     99  {
    100    FT_ValidatorRec  validator;
    101    FT_UInt          num_glyphs;
    102 
    103  } TT_ValidatorRec, *TT_Validator;
    104 
    105 
    106 #define TT_VALIDATOR( x )          ( (TT_Validator)( x ) )
    107 #define TT_VALID_GLYPH_COUNT( x )  TT_VALIDATOR( x )->num_glyphs
    108 
    109 
    110  FT_CALLBACK_TABLE const TT_CMap_ClassRec  tt_cmap_unicode_class_rec;
    111 
    112  FT_LOCAL( FT_Error )
    113  tt_face_build_cmaps( TT_Face  face );
    114 
    115  /* used in tt-cmaps service */
    116  FT_LOCAL( FT_Error )
    117  tt_get_cmap_info( FT_CharMap    charmap,
    118                    TT_CMapInfo  *cmap_info );
    119 
    120 
    121 FT_END_HEADER
    122 
    123 #endif /* TTCMAP_H_ */
    124 
    125 
    126 /* END */