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, 2012 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 "../ftserv.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 
     50 #ifndef FT_CONFIG_OPTION_PIC
     51 
     52 #define FT_DEFINE_SERVICE_CIDREC( class_,                                   \
     53                                   get_ros_,                                 \
     54                                   get_is_cid_,                              \
     55                                   get_cid_from_glyph_index_ )               \
     56   static const FT_Service_CIDRec class_ =                                   \
     57   {                                                                         \
     58     get_ros_, get_is_cid_, get_cid_from_glyph_index_                        \
     59   };
     60 
     61 #else /* FT_CONFIG_OPTION_PIC */
     62 
     63 #define FT_DEFINE_SERVICE_CIDREC( class_,                                   \
     64                                   get_ros_,                                 \
     65                                   get_is_cid_,                              \
     66                                   get_cid_from_glyph_index_ )               \
     67   void                                                                      \
     68   FT_Init_Class_ ## class_( FT_Library          library,                    \
     69                             FT_Service_CIDRec*  clazz )                     \
     70   {                                                                         \
     71     FT_UNUSED( library );                                                   \
     72                                                                             \
     73     clazz->get_ros                  = get_ros_;                             \
     74     clazz->get_is_cid               = get_is_cid_;                          \
     75     clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_;            \
     76   }
     77 
     78 #endif /* FT_CONFIG_OPTION_PIC */
     79 
     80   /* */
     81 
     82 
     83 FT_END_HEADER
     84 
     85 
     86 #endif /* __SVCID_H__ */
     87 
     88 
     89 /* END */
     90