Home | History | Annotate | Download | only in services
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  svcid.h                                                                */
      4 /*                                                                         */
      5 /*    The FreeType CID font services (specification).                      */
      6 /*                                                                         */
      7 /*  Copyright 2007, 2009 by Derek Clegg, Michael Toftdal.                  */
      8 /*                                                                         */
      9 /*  This file is part of the FreeType project, and may only be used,       */
     10 /*  modified, and distributed under the terms of the FreeType project      */
     11 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
     12 /*  this file you indicate that you have read the license and              */
     13 /*  understand and accept it fully.                                        */
     14 /*                                                                         */
     15 /***************************************************************************/
     16 
     17 
     18 #ifndef __SVCID_H__
     19 #define __SVCID_H__
     20 
     21 #include FT_INTERNAL_SERVICE_H
     22 
     23 
     24 FT_BEGIN_HEADER
     25 
     26 
     27 #define FT_SERVICE_ID_CID  "CID"
     28 
     29   typedef FT_Error
     30   (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face       face,
     31                                                const char*  *registry,
     32                                                const char*  *ordering,
     33                                                FT_Int       *supplement );
     34   typedef FT_Error
     35   (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face   face,
     36                                          FT_Bool  *is_cid );
     37   typedef FT_Error
     38   (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face   face,
     39                                       FT_UInt   glyph_index,
     40                                       FT_UInt  *cid );
     41 
     42   FT_DEFINE_SERVICE( CID )
     43   {
     44     FT_CID_GetRegistryOrderingSupplementFunc  get_ros;
     45     FT_CID_GetIsInternallyCIDKeyedFunc        get_is_cid;
     46     FT_CID_GetCIDFromGlyphIndexFunc           get_cid_from_glyph_index;
     47   };
     48 
     49 #ifndef FT_CONFIG_OPTION_PIC
     50 
     51 #define FT_DEFINE_SERVICE_CIDREC(class_, get_ros_,                           \
     52         get_is_cid_, get_cid_from_glyph_index_ )                             \
     53   static const FT_Service_CIDRec class_ =                                    \
     54   {                                                                          \
     55     get_ros_, get_is_cid_, get_cid_from_glyph_index_                         \
     56   };
     57 
     58 #else /* FT_CONFIG_OPTION_PIC */
     59 
     60 #define FT_DEFINE_SERVICE_CIDREC(class_, get_ros_,                           \
     61         get_is_cid_, get_cid_from_glyph_index_ )                             \
     62   void                                                                       \
     63   FT_Init_Class_##class_( FT_Library library,                                \
     64                           FT_Service_CIDRec* clazz)                          \
     65   {                                                                          \
     66     FT_UNUSED(library);                                                      \
     67     clazz->get_ros = get_ros_;                                               \
     68     clazz->get_is_cid = get_is_cid_;                                         \
     69     clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_;             \
     70   }
     71 
     72 #endif /* FT_CONFIG_OPTION_PIC */
     73 
     74   /* */
     75 
     76 
     77 FT_END_HEADER
     78 
     79 
     80 #endif /* __SVCID_H__ */
     81 
     82 
     83 /* END */
     84