misc/libfreetype/include/freetype/internal/services/svcid.h
branchwebgl
changeset 9521 8054d9d775fd
parent 9282 92af50454cf2
parent 9519 b8b5c82eb61b
child 9950 2759212a27de
equal deleted inserted replaced
9282:92af50454cf2 9521:8054d9d775fd
     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 */