1 /***************************************************************************/
   2 /*                                                                         */
   3 /*  cffotypes.h                                                            */
   4 /*                                                                         */
   5 /*    Basic OpenType/CFF object type definitions (specification).          */
   6 /*                                                                         */
   7 /*  Copyright 2017-2018 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 */