graphics

experiments with opengl3.2/ogles3.3 on linux and win7
git clone http://frotz.net/git/graphics.git
Log | Files | Refs

ftcid.c (3164B)


      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 */