PageRenderTime 305ms CodeModel.GetById 161ms app.highlight 4ms RepoModel.GetById 137ms app.codeStats 0ms

/src/compiler/android-ndk/jni/freetype/include/freetype/internal/services/svmm.h

http://ftk.googlecode.com/
C++ Header | 104 lines | 53 code | 27 blank | 24 comment | 0 complexity | 8fcf8b43ebecbae3894a0ce85ed2e161 MD5 | raw file
  1/***************************************************************************/
  2/*                                                                         */
  3/*  svmm.h                                                                 */
  4/*                                                                         */
  5/*    The FreeType Multiple Masters and GX var services (specification).   */
  6/*                                                                         */
  7/*  Copyright 2003, 2004 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
 25FT_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
 37
 38  typedef FT_Error
 39  (*FT_Get_MM_Func)( FT_Face           face,
 40                     FT_Multi_Master*  master );
 41
 42  typedef FT_Error
 43  (*FT_Get_MM_Var_Func)( FT_Face      face,
 44                         FT_MM_Var*  *master );
 45
 46  typedef FT_Error
 47  (*FT_Set_MM_Design_Func)( FT_Face   face,
 48                            FT_UInt   num_coords,
 49                            FT_Long*  coords );
 50
 51  typedef FT_Error
 52  (*FT_Set_Var_Design_Func)( FT_Face    face,
 53                             FT_UInt    num_coords,
 54                             FT_Fixed*  coords );
 55
 56  typedef FT_Error
 57  (*FT_Set_MM_Blend_Func)( FT_Face   face,
 58                           FT_UInt   num_coords,
 59                           FT_Long*  coords );
 60
 61
 62  FT_DEFINE_SERVICE( MultiMasters )
 63  {
 64    FT_Get_MM_Func          get_mm;
 65    FT_Set_MM_Design_Func   set_mm_design;
 66    FT_Set_MM_Blend_Func    set_mm_blend;
 67    FT_Get_MM_Var_Func      get_mm_var;
 68    FT_Set_Var_Design_Func  set_var_design;
 69  };
 70
 71#ifndef FT_CONFIG_OPTION_PIC
 72
 73#define FT_DEFINE_SERVICE_MULTIMASTERSREC(class_, get_mm_, set_mm_design_,   \
 74        set_mm_blend_, get_mm_var_, set_var_design_)                         \
 75  static const FT_Service_MultiMastersRec class_ =                           \
 76  {                                                                          \
 77    get_mm_, set_mm_design_, set_mm_blend_, get_mm_var_, set_var_design_     \
 78  };
 79
 80#else /* FT_CONFIG_OPTION_PIC */ 
 81
 82#define FT_DEFINE_SERVICE_MULTIMASTERSREC(class_, get_mm_, set_mm_design_,   \
 83        set_mm_blend_, get_mm_var_, set_var_design_)                         \
 84  void                                                                       \
 85  FT_Init_Class_##class_( FT_Service_MultiMastersRec*  clazz )               \
 86  {                                                                          \
 87    clazz->get_mm = get_mm_;                                                 \
 88    clazz->set_mm_design = set_mm_design_;                                   \
 89    clazz->set_mm_blend = set_mm_blend_;                                     \
 90    clazz->get_mm_var = get_mm_var_;                                         \
 91    clazz->set_var_design = set_var_design_;                                 \
 92  } 
 93
 94#endif /* FT_CONFIG_OPTION_PIC */ 
 95
 96  /* */
 97
 98
 99FT_END_HEADER
100
101#endif /* __SVMM_H__ */
102
103
104/* END */