Home | History | Annotate | Download | only in internal
      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 */
    109