1 /****************************************************************************
   2  *
   3  * cffotypes.h
   4  *
   5  *   Basic OpenType/CFF object type definitions (specification).
   6  *
   7  * Copyright (C) 2017-2020 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 CFFOTYPES_H_
  20 #define CFFOTYPES_H_
  21 
  22 #include <ft2build.h>
  23 #include FT_INTERNAL_OBJECTS_H
  24 #include FT_INTERNAL_CFF_TYPES_H
  25 #include FT_INTERNAL_TRUETYPE_TYPES_H
  26 #include FT_SERVICE_POSTSCRIPT_CMAPS_H
  27 #include FT_INTERNAL_POSTSCRIPT_HINTS_H
  28 
  29 
  30 FT_BEGIN_HEADER
  31 
  32 
  33   typedef TT_Face  CFF_Face;
  34 
  35 
  36   /**************************************************************************
  37    *
  38    * @type:
  39    *   CFF_Size
  40    *
  41    * @description:
  42    *   A handle to an OpenType size object.
  43    */
  44   typedef struct  CFF_SizeRec_
  45   {
  46     FT_SizeRec  root;
  47     FT_ULong    strike_index;    /* 0xFFFFFFFF to indicate invalid */
  48 
  49   } CFF_SizeRec, *CFF_Size;
  50 
  51 
  52   /**************************************************************************
  53    *
  54    * @type:
  55    *   CFF_GlyphSlot
  56    *
  57    * @description:
  58    *   A handle to an OpenType glyph slot object.
  59    */
  60   typedef struct  CFF_GlyphSlotRec_
  61   {
  62     FT_GlyphSlotRec  root;
  63 
  64     FT_Bool  hint;
  65     FT_Bool  scaled;
  66 
  67     FT_Fixed  x_scale;
  68     FT_Fixed  y_scale;
  69 
  70   } CFF_GlyphSlotRec, *CFF_GlyphSlot;
  71 
  72 
  73   /**************************************************************************
  74    *
  75    * @type:
  76    *   CFF_Internal
  77    *
  78    * @description:
  79    *   The interface to the 'internal' field of `FT_Size`.
  80    */
  81   typedef struct  CFF_InternalRec_
  82   {
  83     PSH_Globals  topfont;
  84     PSH_Globals  subfonts[CFF_MAX_CID_FONTS];
  85 
  86   } CFF_InternalRec, *CFF_Internal;
  87 
  88 
  89   /**************************************************************************
  90    *
  91    * Subglyph transformation record.
  92    */
  93   typedef struct  CFF_Transform_
  94   {
  95     FT_Fixed    xx, xy;     /* transformation matrix coefficients */
  96     FT_Fixed    yx, yy;
  97     FT_F26Dot6  ox, oy;     /* offsets                            */
  98 
  99   } CFF_Transform;
 100 
 101 
 102 FT_END_HEADER
 103 
 104 
 105 #endif /* CFFOTYPES_H_ */
 106 
 107 
 108 /* END */