/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. #ifndef __SVMM_H__
  18. #define __SVMM_H__
  19. #include FT_INTERNAL_SERVICE_H
  20. FT_BEGIN_HEADER
  21. /*
  22. * A service used to manage multiple-masters data in a given face.
  23. *
  24. * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
  25. *
  26. */
  27. #define FT_SERVICE_ID_MULTI_MASTERS "multi-masters"
  28. typedef FT_Error
  29. (*FT_Get_MM_Func)( FT_Face face,
  30. FT_Multi_Master* master );
  31. typedef FT_Error
  32. (*FT_Get_MM_Var_Func)( FT_Face face,
  33. FT_MM_Var* *master );
  34. typedef FT_Error
  35. (*FT_Set_MM_Design_Func)( FT_Face face,
  36. FT_UInt num_coords,
  37. FT_Long* coords );
  38. typedef FT_Error
  39. (*FT_Set_Var_Design_Func)( FT_Face face,
  40. FT_UInt num_coords,
  41. FT_Fixed* coords );
  42. typedef FT_Error
  43. (*FT_Set_MM_Blend_Func)( FT_Face face,
  44. FT_UInt num_coords,
  45. FT_Long* coords );
  46. FT_DEFINE_SERVICE( MultiMasters )
  47. {
  48. FT_Get_MM_Func get_mm;
  49. FT_Set_MM_Design_Func set_mm_design;
  50. FT_Set_MM_Blend_Func set_mm_blend;
  51. FT_Get_MM_Var_Func get_mm_var;
  52. FT_Set_Var_Design_Func set_var_design;
  53. };
  54. #ifndef FT_CONFIG_OPTION_PIC
  55. #define FT_DEFINE_SERVICE_MULTIMASTERSREC(class_, get_mm_, set_mm_design_, \
  56. set_mm_blend_, get_mm_var_, set_var_design_) \
  57. static const FT_Service_MultiMastersRec class_ = \
  58. { \
  59. get_mm_, set_mm_design_, set_mm_blend_, get_mm_var_, set_var_design_ \
  60. };
  61. #else /* FT_CONFIG_OPTION_PIC */
  62. #define FT_DEFINE_SERVICE_MULTIMASTERSREC(class_, get_mm_, set_mm_design_, \
  63. set_mm_blend_, get_mm_var_, set_var_design_) \
  64. void \
  65. FT_Init_Class_##class_( FT_Service_MultiMastersRec* clazz ) \
  66. { \
  67. clazz->get_mm = get_mm_; \
  68. clazz->set_mm_design = set_mm_design_; \
  69. clazz->set_mm_blend = set_mm_blend_; \
  70. clazz->get_mm_var = get_mm_var_; \
  71. clazz->set_var_design = set_var_design_; \
  72. }
  73. #endif /* FT_CONFIG_OPTION_PIC */
  74. /* */
  75. FT_END_HEADER
  76. #endif /* __SVMM_H__ */
  77. /* END */