vrshoot

annotate libs/ft2static/freetype/internal/services/svmm.h @ 0:b2f14e535253

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 01 Feb 2014 19:58:19 +0200
parents
children
rev   line source
nuclear@0 1 /***************************************************************************/
nuclear@0 2 /* */
nuclear@0 3 /* svmm.h */
nuclear@0 4 /* */
nuclear@0 5 /* The FreeType Multiple Masters and GX var services (specification). */
nuclear@0 6 /* */
nuclear@0 7 /* Copyright 2003, 2004 by */
nuclear@0 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
nuclear@0 9 /* */
nuclear@0 10 /* This file is part of the FreeType project, and may only be used, */
nuclear@0 11 /* modified, and distributed under the terms of the FreeType project */
nuclear@0 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
nuclear@0 13 /* this file you indicate that you have read the license and */
nuclear@0 14 /* understand and accept it fully. */
nuclear@0 15 /* */
nuclear@0 16 /***************************************************************************/
nuclear@0 17
nuclear@0 18
nuclear@0 19 #ifndef __SVMM_H__
nuclear@0 20 #define __SVMM_H__
nuclear@0 21
nuclear@0 22 #include FT_INTERNAL_SERVICE_H
nuclear@0 23
nuclear@0 24
nuclear@0 25 FT_BEGIN_HEADER
nuclear@0 26
nuclear@0 27
nuclear@0 28 /*
nuclear@0 29 * A service used to manage multiple-masters data in a given face.
nuclear@0 30 *
nuclear@0 31 * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
nuclear@0 32 *
nuclear@0 33 */
nuclear@0 34
nuclear@0 35 #define FT_SERVICE_ID_MULTI_MASTERS "multi-masters"
nuclear@0 36
nuclear@0 37
nuclear@0 38 typedef FT_Error
nuclear@0 39 (*FT_Get_MM_Func)( FT_Face face,
nuclear@0 40 FT_Multi_Master* master );
nuclear@0 41
nuclear@0 42 typedef FT_Error
nuclear@0 43 (*FT_Get_MM_Var_Func)( FT_Face face,
nuclear@0 44 FT_MM_Var* *master );
nuclear@0 45
nuclear@0 46 typedef FT_Error
nuclear@0 47 (*FT_Set_MM_Design_Func)( FT_Face face,
nuclear@0 48 FT_UInt num_coords,
nuclear@0 49 FT_Long* coords );
nuclear@0 50
nuclear@0 51 typedef FT_Error
nuclear@0 52 (*FT_Set_Var_Design_Func)( FT_Face face,
nuclear@0 53 FT_UInt num_coords,
nuclear@0 54 FT_Fixed* coords );
nuclear@0 55
nuclear@0 56 typedef FT_Error
nuclear@0 57 (*FT_Set_MM_Blend_Func)( FT_Face face,
nuclear@0 58 FT_UInt num_coords,
nuclear@0 59 FT_Long* coords );
nuclear@0 60
nuclear@0 61
nuclear@0 62 FT_DEFINE_SERVICE( MultiMasters )
nuclear@0 63 {
nuclear@0 64 FT_Get_MM_Func get_mm;
nuclear@0 65 FT_Set_MM_Design_Func set_mm_design;
nuclear@0 66 FT_Set_MM_Blend_Func set_mm_blend;
nuclear@0 67 FT_Get_MM_Var_Func get_mm_var;
nuclear@0 68 FT_Set_Var_Design_Func set_var_design;
nuclear@0 69 };
nuclear@0 70
nuclear@0 71 #ifndef FT_CONFIG_OPTION_PIC
nuclear@0 72
nuclear@0 73 #define FT_DEFINE_SERVICE_MULTIMASTERSREC(class_, get_mm_, set_mm_design_, \
nuclear@0 74 set_mm_blend_, get_mm_var_, set_var_design_) \
nuclear@0 75 static const FT_Service_MultiMastersRec class_ = \
nuclear@0 76 { \
nuclear@0 77 get_mm_, set_mm_design_, set_mm_blend_, get_mm_var_, set_var_design_ \
nuclear@0 78 };
nuclear@0 79
nuclear@0 80 #else /* FT_CONFIG_OPTION_PIC */
nuclear@0 81
nuclear@0 82 #define FT_DEFINE_SERVICE_MULTIMASTERSREC(class_, get_mm_, set_mm_design_, \
nuclear@0 83 set_mm_blend_, get_mm_var_, set_var_design_) \
nuclear@0 84 void \
nuclear@0 85 FT_Init_Class_##class_( FT_Service_MultiMastersRec* clazz ) \
nuclear@0 86 { \
nuclear@0 87 clazz->get_mm = get_mm_; \
nuclear@0 88 clazz->set_mm_design = set_mm_design_; \
nuclear@0 89 clazz->set_mm_blend = set_mm_blend_; \
nuclear@0 90 clazz->get_mm_var = get_mm_var_; \
nuclear@0 91 clazz->set_var_design = set_var_design_; \
nuclear@0 92 }
nuclear@0 93
nuclear@0 94 #endif /* FT_CONFIG_OPTION_PIC */
nuclear@0 95
nuclear@0 96 /* */
nuclear@0 97
nuclear@0 98
nuclear@0 99 FT_END_HEADER
nuclear@0 100
nuclear@0 101 #endif /* __SVMM_H__ */
nuclear@0 102
nuclear@0 103
nuclear@0 104 /* END */