Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /*  ftcid.c                                                                */
  4. /*                                                                         */
  5. /*    FreeType API for accessing CID font information.                     */
  6. /*                                                                         */
  7. /*  Copyright 2007, 2009, 2013 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. #include <ft2build.h>
  19. #include FT_CID_H
  20. #include FT_INTERNAL_OBJECTS_H
  21. #include FT_SERVICE_CID_H
  22.  
  23.  
  24.   /* documentation is in ftcid.h */
  25.  
  26.   FT_EXPORT_DEF( FT_Error )
  27.   FT_Get_CID_Registry_Ordering_Supplement( FT_Face       face,
  28.                                            const char*  *registry,
  29.                                            const char*  *ordering,
  30.                                            FT_Int       *supplement)
  31.   {
  32.     FT_Error     error;
  33.     const char*  r = NULL;
  34.     const char*  o = NULL;
  35.     FT_Int       s = 0;
  36.  
  37.  
  38.     error = FT_ERR( Invalid_Argument );
  39.  
  40.     if ( face )
  41.     {
  42.       FT_Service_CID  service;
  43.  
  44.  
  45.       FT_FACE_FIND_SERVICE( face, service, CID );
  46.  
  47.       if ( service && service->get_ros )
  48.         error = service->get_ros( face, &r, &o, &s );
  49.     }
  50.  
  51.     if ( registry )
  52.       *registry = r;
  53.  
  54.     if ( ordering )
  55.       *ordering = o;
  56.  
  57.     if ( supplement )
  58.       *supplement = s;
  59.  
  60.     return error;
  61.   }
  62.  
  63.  
  64.   FT_EXPORT_DEF( FT_Error )
  65.   FT_Get_CID_Is_Internally_CID_Keyed( FT_Face   face,
  66.                                       FT_Bool  *is_cid )
  67.   {
  68.     FT_Error  error = FT_ERR( Invalid_Argument );
  69.     FT_Bool   ic = 0;
  70.  
  71.  
  72.     if ( face )
  73.     {
  74.       FT_Service_CID  service;
  75.  
  76.  
  77.       FT_FACE_FIND_SERVICE( face, service, CID );
  78.  
  79.       if ( service && service->get_is_cid )
  80.         error = service->get_is_cid( face, &ic);
  81.     }
  82.  
  83.     if ( is_cid )
  84.       *is_cid = ic;
  85.  
  86.     return error;
  87.   }
  88.  
  89.  
  90.   FT_EXPORT_DEF( FT_Error )
  91.   FT_Get_CID_From_Glyph_Index( FT_Face   face,
  92.                                FT_UInt   glyph_index,
  93.                                FT_UInt  *cid )
  94.   {
  95.     FT_Error  error = FT_ERR( Invalid_Argument );
  96.     FT_UInt   c = 0;
  97.  
  98.  
  99.     if ( face )
  100.     {
  101.       FT_Service_CID  service;
  102.  
  103.  
  104.       FT_FACE_FIND_SERVICE( face, service, CID );
  105.  
  106.       if ( service && service->get_cid_from_glyph_index )
  107.         error = service->get_cid_from_glyph_index( face, glyph_index, &c);
  108.     }
  109.  
  110.     if ( cid )
  111.       *cid = c;
  112.  
  113.     return error;
  114.   }
  115.  
  116.  
  117. /* END */
  118.