1 /***************************************************************************/
   2 /*                                                                         */
   3 /*  afshaper.h                                                             */
   4 /*                                                                         */
   5 /*    HarfBuzz interface for accessing OpenType features (specification).  */
   6 /*                                                                         */
   7 /*  Copyright 2013-2018 by                                                 */
   8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
   9 /*                                                                         */
  10 /*  This file is part of the FreeType project, and may only be used,       */
  11 /*  modified, and distributed under the terms of the FreeType project      */
  12 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
  13 /*  this file you indicate that you have read the license and              */
  14 /*  understand and accept it fully.                                        */
  15 /*                                                                         */
  16 /***************************************************************************/
  17 
  18 
  19 #ifndef AFSHAPER_H_
  20 #define AFSHAPER_H_
  21 
  22 
  23 #include <ft2build.h>
  24 #include FT_FREETYPE_H
  25 
  26 
  27 #ifdef FT_CONFIG_OPTION_USE_HARFBUZZ
  28 
  29 #include <hb.h>
  30 #include <hb-ot.h>
  31 #include <hb-ft.h>
  32 
  33 #endif
  34 
  35 
  36 FT_BEGIN_HEADER
  37 
  38   FT_Error
  39   af_shaper_get_coverage( AF_FaceGlobals  globals,
  40                           AF_StyleClass   style_class,
  41                           FT_UShort*      gstyles,
  42                           FT_Bool         default_script );
  43 
  44 
  45   void*
  46   af_shaper_buf_create( FT_Face  face );
  47 
  48   void
  49   af_shaper_buf_destroy( FT_Face  face,
  50                          void*    buf );
  51 
  52   const char*
  53   af_shaper_get_cluster( const char*      p,
  54                          AF_StyleMetrics  metrics,
  55                          void*            buf_,
  56                          unsigned int*    count );
  57 
  58   FT_ULong
  59   af_shaper_get_elem( AF_StyleMetrics  metrics,
  60                       void*            buf_,
  61                       unsigned int     idx,
  62                       FT_Long*         x_advance,
  63                       FT_Long*         y_offset );
  64 
  65  /* */
  66 
  67 FT_END_HEADER
  68 
  69 #endif /* AFSHAPER_H_ */
  70 
  71 
  72 /* END */