Home | History | Annotate | Download | only in cff
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  cf2ft.h                                                                */
      4 /*                                                                         */
      5 /*    FreeType Glue Component to Adobe's Interpreter (specification).      */
      6 /*                                                                         */
      7 /*  Copyright 2013 Adobe Systems Incorporated.                             */
      8 /*                                                                         */
      9 /*  This software, and all works of authorship, whether in source or       */
     10 /*  object code form as indicated by the copyright notice(s) included      */
     11 /*  herein (collectively, the "Work") is made available, and may only be   */
     12 /*  used, modified, and distributed under the FreeType Project License,    */
     13 /*  LICENSE.TXT.  Additionally, subject to the terms and conditions of the */
     14 /*  FreeType Project License, each contributor to the Work hereby grants   */
     15 /*  to any individual or legal entity exercising permissions granted by    */
     16 /*  the FreeType Project License and this section (hereafter, "You" or     */
     17 /*  "Your") a perpetual, worldwide, non-exclusive, no-charge,              */
     18 /*  royalty-free, irrevocable (except as stated in this section) patent    */
     19 /*  license to make, have made, use, offer to sell, sell, import, and      */
     20 /*  otherwise transfer the Work, where such license applies only to those  */
     21 /*  patent claims licensable by such contributor that are necessarily      */
     22 /*  infringed by their contribution(s) alone or by combination of their    */
     23 /*  contribution(s) with the Work to which such contribution(s) was        */
     24 /*  submitted.  If You institute patent litigation against any entity      */
     25 /*  (including a cross-claim or counterclaim in a lawsuit) alleging that   */
     26 /*  the Work or a contribution incorporated within the Work constitutes    */
     27 /*  direct or contributory patent infringement, then any patent licenses   */
     28 /*  granted to You under this License for that Work shall terminate as of  */
     29 /*  the date such litigation is filed.                                     */
     30 /*                                                                         */
     31 /*  By using, modifying, or distributing the Work you indicate that you    */
     32 /*  have read and understood the terms and conditions of the               */
     33 /*  FreeType Project License as well as those provided in this section,    */
     34 /*  and you accept them fully.                                             */
     35 /*                                                                         */
     36 /***************************************************************************/
     37 
     38 
     39 #ifndef __CF2FT_H__
     40 #define __CF2FT_H__
     41 
     42 
     43 #include "cf2types.h"
     44 
     45 
     46   /* TODO: disable asserts for now */
     47 #define CF2_NDEBUG
     48 
     49 
     50 #include FT_SYSTEM_H
     51 
     52 #include "cf2glue.h"
     53 #include "cffgload.h"    /* for CFF_Decoder */
     54 
     55 
     56 FT_BEGIN_HEADER
     57 
     58 
     59   FT_LOCAL( FT_Error )
     60   cf2_decoder_parse_charstrings( CFF_Decoder*  decoder,
     61                                  FT_Byte*      charstring_base,
     62                                  FT_ULong      charstring_len );
     63 
     64   FT_LOCAL( CFF_SubFont )
     65   cf2_getSubfont( CFF_Decoder*  decoder );
     66 
     67 
     68   FT_LOCAL( CF2_Fixed )
     69   cf2_getPpemY( CFF_Decoder*  decoder );
     70   FT_LOCAL( CF2_Fixed )
     71   cf2_getStdVW( CFF_Decoder*  decoder );
     72   FT_LOCAL( CF2_Fixed )
     73   cf2_getStdHW( CFF_Decoder*  decoder );
     74 
     75   FT_LOCAL( void )
     76   cf2_getBlueMetrics( CFF_Decoder*  decoder,
     77                       CF2_Fixed*    blueScale,
     78                       CF2_Fixed*    blueShift,
     79                       CF2_Fixed*    blueFuzz );
     80   FT_LOCAL( void )
     81   cf2_getBlueValues( CFF_Decoder*  decoder,
     82                      size_t*       count,
     83                      FT_Pos*      *data );
     84   FT_LOCAL( void )
     85   cf2_getOtherBlues( CFF_Decoder*  decoder,
     86                      size_t*       count,
     87                      FT_Pos*      *data );
     88   FT_LOCAL( void )
     89   cf2_getFamilyBlues( CFF_Decoder*  decoder,
     90                       size_t*       count,
     91                       FT_Pos*      *data );
     92   FT_LOCAL( void )
     93   cf2_getFamilyOtherBlues( CFF_Decoder*  decoder,
     94                            size_t*       count,
     95                            FT_Pos*      *data );
     96 
     97   FT_LOCAL( CF2_Int )
     98   cf2_getLanguageGroup( CFF_Decoder*  decoder );
     99 
    100   FT_LOCAL( CF2_Int )
    101   cf2_initGlobalRegionBuffer( CFF_Decoder*  decoder,
    102                               CF2_UInt      idx,
    103                               CF2_Buffer    buf );
    104   FT_LOCAL( FT_Error )
    105   cf2_getSeacComponent( CFF_Decoder*  decoder,
    106                         CF2_UInt      code,
    107                         CF2_Buffer    buf );
    108   FT_LOCAL( void )
    109   cf2_freeSeacComponent( CFF_Decoder*  decoder,
    110                          CF2_Buffer    buf );
    111   FT_LOCAL( CF2_Int )
    112   cf2_initLocalRegionBuffer( CFF_Decoder*  decoder,
    113                              CF2_UInt      idx,
    114                              CF2_Buffer    buf );
    115 
    116   FT_LOCAL( CF2_Fixed )
    117   cf2_getDefaultWidthX( CFF_Decoder*  decoder );
    118   FT_LOCAL( CF2_Fixed )
    119   cf2_getNominalWidthX( CFF_Decoder*  decoder );
    120 
    121 
    122   /*
    123    * FreeType client outline
    124    *
    125    * process output from the charstring interpreter
    126    */
    127   typedef struct  CF2_OutlineRec_
    128   {
    129     CF2_OutlineCallbacksRec  root;        /* base class must be first */
    130     CFF_Decoder*             decoder;
    131 
    132   } CF2_OutlineRec, *CF2_Outline;
    133 
    134 
    135   FT_LOCAL( void )
    136   cf2_outline_reset( CF2_Outline  outline );
    137   FT_LOCAL( void )
    138   cf2_outline_close( CF2_Outline  outline );
    139 
    140 
    141 FT_END_HEADER
    142 
    143 
    144 #endif /* __CF2FT_H__ */
    145 
    146 
    147 /* END */
    148