< prev index next >

src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svmm.h

Print this page


   1 /***************************************************************************/
   2 /*                                                                         */
   3 /*  svmm.h                                                                 */
   4 /*                                                                         */
   5 /*    The FreeType Multiple Masters and GX var services (specification).   */
   6 /*                                                                         */
   7 /*  Copyright 2003-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 SVMM_H_
  20 #define SVMM_H_
  21 
  22 #include FT_INTERNAL_SERVICE_H
  23 
  24 
  25 FT_BEGIN_HEADER
  26 
  27 
  28   /*
  29    *  A service used to manage multiple-masters data in a given face.
  30    *
  31    *  See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
  32    *
  33    */
  34 
  35 #define FT_SERVICE_ID_MULTI_MASTERS  "multi-masters"
  36 


  69 
  70   typedef FT_Error
  71   (*FT_Set_Instance_Func)( FT_Face  face,
  72                            FT_UInt  instance_index );
  73 
  74   typedef FT_Error
  75   (*FT_Get_MM_Blend_Func)( FT_Face   face,
  76                            FT_UInt   num_coords,
  77                            FT_Long*  coords );
  78 
  79   typedef FT_Error
  80   (*FT_Get_Var_Blend_Func)( FT_Face      face,
  81                             FT_UInt     *num_coords,
  82                             FT_Fixed*   *coords,
  83                             FT_Fixed*   *normalizedcoords,
  84                             FT_MM_Var*  *mm_var );
  85 
  86   typedef void
  87   (*FT_Done_Blend_Func)( FT_Face );
  88 










  89 
  90   FT_DEFINE_SERVICE( MultiMasters )
  91   {
  92     FT_Get_MM_Func          get_mm;
  93     FT_Set_MM_Design_Func   set_mm_design;
  94     FT_Set_MM_Blend_Func    set_mm_blend;
  95     FT_Get_MM_Blend_Func    get_mm_blend;
  96     FT_Get_MM_Var_Func      get_mm_var;
  97     FT_Set_Var_Design_Func  set_var_design;
  98     FT_Get_Var_Design_Func  get_var_design;
  99     FT_Set_Instance_Func    set_instance;


 100 
 101     /* for internal use; only needed for code sharing between modules */
 102     FT_Get_Var_Blend_Func   get_var_blend;
 103     FT_Done_Blend_Func      done_blend;
 104   };
 105 
 106 
 107 #ifndef FT_CONFIG_OPTION_PIC
 108 
 109 #define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_,          \
 110                                            get_mm_,         \
 111                                            set_mm_design_,  \
 112                                            set_mm_blend_,   \
 113                                            get_mm_blend_,   \
 114                                            get_mm_var_,     \
 115                                            set_var_design_, \
 116                                            get_var_design_, \
 117                                            set_instance_,   \


 118                                            get_var_blend_,  \
 119                                            done_blend_ )    \
 120   static const FT_Service_MultiMastersRec  class_ =         \
 121   {                                                         \
 122     get_mm_,                                                \
 123     set_mm_design_,                                         \
 124     set_mm_blend_,                                          \
 125     get_mm_blend_,                                          \
 126     get_mm_var_,                                            \
 127     set_var_design_,                                        \
 128     get_var_design_,                                        \
 129     set_instance_,                                          \


 130     get_var_blend_,                                         \
 131     done_blend_                                             \
 132   };
 133 
 134 #else /* FT_CONFIG_OPTION_PIC */
 135 
 136 #define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_,               \
 137                                            get_mm_,              \
 138                                            set_mm_design_,       \
 139                                            set_mm_blend_,        \
 140                                            get_mm_blend_,        \
 141                                            get_mm_var_,          \
 142                                            set_var_design_,      \
 143                                            get_var_design_,      \
 144                                            set_instance_,        \
 145                                            get_var_blend_,       \
 146                                            done_blend_ )         \
 147   void                                                           \
 148   FT_Init_Class_ ## class_( FT_Service_MultiMastersRec*  clazz ) \
 149   {                                                              \
 150     clazz->get_mm         = get_mm_;                             \
 151     clazz->set_mm_design  = set_mm_design_;                      \
 152     clazz->set_mm_blend   = set_mm_blend_;                       \
 153     clazz->get_mm_blend   = get_mm_blend_;                       \
 154     clazz->get_mm_var     = get_mm_var_;                         \
 155     clazz->set_var_design = set_var_design_;                     \
 156     clazz->get_var_design = get_var_design_;                     \
 157     clazz->set_instance   = set_instance_;                       \
 158     clazz->get_var_blend  = get_var_blend_;                      \
 159     clazz->done_blend     = done_blend_;                         \
 160   }
 161 
 162 #endif /* FT_CONFIG_OPTION_PIC */
 163 
 164   /* */
 165 
 166 
 167 FT_END_HEADER
 168 
 169 #endif /* SVMM_H_ */
 170 
 171 
 172 /* END */
   1 /****************************************************************************
   2  *
   3  * svmm.h
   4  *
   5  *   The FreeType Multiple Masters and GX var services (specification).
   6  *
   7  * Copyright (C) 2003-2019 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 SVMM_H_
  20 #define SVMM_H_
  21 
  22 #include FT_INTERNAL_SERVICE_H
  23 
  24 
  25 FT_BEGIN_HEADER
  26 
  27 
  28   /*
  29    * A service used to manage multiple-masters data in a given face.
  30    *
  31    * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
  32    *
  33    */
  34 
  35 #define FT_SERVICE_ID_MULTI_MASTERS  "multi-masters"
  36 


  69 
  70   typedef FT_Error
  71   (*FT_Set_Instance_Func)( FT_Face  face,
  72                            FT_UInt  instance_index );
  73 
  74   typedef FT_Error
  75   (*FT_Get_MM_Blend_Func)( FT_Face   face,
  76                            FT_UInt   num_coords,
  77                            FT_Long*  coords );
  78 
  79   typedef FT_Error
  80   (*FT_Get_Var_Blend_Func)( FT_Face      face,
  81                             FT_UInt     *num_coords,
  82                             FT_Fixed*   *coords,
  83                             FT_Fixed*   *normalizedcoords,
  84                             FT_MM_Var*  *mm_var );
  85 
  86   typedef void
  87   (*FT_Done_Blend_Func)( FT_Face );
  88 
  89   typedef FT_Error
  90   (*FT_Set_MM_WeightVector_Func)( FT_Face    face,
  91                                   FT_UInt    len,
  92                                   FT_Fixed*  weight_vector );
  93 
  94   typedef FT_Error
  95   (*FT_Get_MM_WeightVector_Func)( FT_Face    face,
  96                                   FT_UInt*   len,
  97                                   FT_Fixed*  weight_vector );
  98 
  99 
 100   FT_DEFINE_SERVICE( MultiMasters )
 101   {
 102     FT_Get_MM_Func               get_mm;
 103     FT_Set_MM_Design_Func        set_mm_design;
 104     FT_Set_MM_Blend_Func         set_mm_blend;
 105     FT_Get_MM_Blend_Func         get_mm_blend;
 106     FT_Get_MM_Var_Func           get_mm_var;
 107     FT_Set_Var_Design_Func       set_var_design;
 108     FT_Get_Var_Design_Func       get_var_design;
 109     FT_Set_Instance_Func         set_instance;
 110     FT_Set_MM_WeightVector_Func  set_mm_weightvector;
 111     FT_Get_MM_WeightVector_Func  get_mm_weightvector;
 112 
 113     /* for internal use; only needed for code sharing between modules */
 114     FT_Get_Var_Blend_Func  get_var_blend;
 115     FT_Done_Blend_Func     done_blend;
 116   };
 117 
 118 


 119 #define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_,            \
 120                                            get_mm_,           \
 121                                            set_mm_design_,    \
 122                                            set_mm_blend_,     \
 123                                            get_mm_blend_,     \
 124                                            get_mm_var_,       \
 125                                            set_var_design_,   \
 126                                            get_var_design_,   \
 127                                            set_instance_,     \
 128                                            set_weightvector_, \
 129                                            get_weightvector_, \
 130                                            get_var_blend_,    \
 131                                            done_blend_ )      \
 132   static const FT_Service_MultiMastersRec  class_ =           \
 133   {                                                           \
 134     get_mm_,                                                  \
 135     set_mm_design_,                                           \
 136     set_mm_blend_,                                            \
 137     get_mm_blend_,                                            \
 138     get_mm_var_,                                              \
 139     set_var_design_,                                          \
 140     get_var_design_,                                          \
 141     set_instance_,                                            \
 142     set_weightvector_,                                        \
 143     get_weightvector_,                                        \
 144     get_var_blend_,                                           \
 145     done_blend_                                               \
 146   };






























 147 
 148   /* */
 149 
 150 
 151 FT_END_HEADER
 152 
 153 #endif /* SVMM_H_ */
 154 
 155 
 156 /* END */
< prev index next >