Sync with trunk r47367
[reactos.git] / lib / 3rdparty / freetype / include / freetype / internal / services / svpsinfo.h
index 63f5db9..91ba91e 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    The FreeType PostScript info service (specification).                */
 /*                                                                         */
-/*  Copyright 2003, 2004 by                                                */
+/*  Copyright 2003, 2004, 2009 by                                          */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -33,6 +33,10 @@ FT_BEGIN_HEADER
   (*PS_GetFontInfoFunc)( FT_Face          face,
                          PS_FontInfoRec*  afont_info );
 
+  typedef FT_Error
+  (*PS_GetFontExtraFunc)( FT_Face           face,
+                          PS_FontExtraRec*  afont_extra );
+
   typedef FT_Int
   (*PS_HasGlyphNamesFunc)( FT_Face   face );
 
@@ -44,10 +48,38 @@ FT_BEGIN_HEADER
   FT_DEFINE_SERVICE( PsInfo )
   {
     PS_GetFontInfoFunc     ps_get_font_info;
+    PS_GetFontExtraFunc    ps_get_font_extra;
     PS_HasGlyphNamesFunc   ps_has_glyph_names;
     PS_GetFontPrivateFunc  ps_get_font_private;
   };
 
+#ifndef FT_CONFIG_OPTION_PIC
+
+#define FT_DEFINE_SERVICE_PSINFOREC(class_, get_font_info_,      \
+        ps_get_font_extra_, has_glyph_names_, get_font_private_) \
+  static const FT_Service_PsInfoRec class_ =                     \
+  {                                                              \
+    get_font_info_, ps_get_font_extra_, has_glyph_names_,        \
+    get_font_private_                                            \
+  };
+
+#else /* FT_CONFIG_OPTION_PIC */ 
+
+#define FT_DEFINE_SERVICE_PSINFOREC(class_, get_font_info_,      \
+        ps_get_font_extra_, has_glyph_names_, get_font_private_) \
+  void                                                           \
+  FT_Init_Class_##class_( FT_Library library,                    \
+                          FT_Service_PsInfoRec*  clazz)          \
+  {                                                              \
+    FT_UNUSED(library);                                          \
+    clazz->ps_get_font_info = get_font_info_;                    \
+    clazz->ps_get_font_extra = ps_get_font_extra_;               \
+    clazz->ps_has_glyph_names = has_glyph_names_;                \
+    clazz->ps_get_font_private = get_font_private_;              \
+  } 
+
+#endif /* FT_CONFIG_OPTION_PIC */ 
+
   /* */