svpsinfo.h

Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  svpsinfo.h                                                             */
00004 /*                                                                         */
00005 /*    The FreeType PostScript info service (specification).                */
00006 /*                                                                         */
00007 /*  Copyright 2003, 2004, 2009 by                                          */
00008 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
00009 /*                                                                         */
00010 /*  This file is part of the FreeType project, and may only be used,       */
00011 /*  modified, and distributed under the terms of the FreeType project      */
00012 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
00013 /*  this file you indicate that you have read the license and              */
00014 /*  understand and accept it fully.                                        */
00015 /*                                                                         */
00016 /***************************************************************************/
00017 
00018 
00019 #ifndef __SVPSINFO_H__
00020 #define __SVPSINFO_H__
00021 
00022 #include FT_INTERNAL_SERVICE_H
00023 #include FT_INTERNAL_TYPE1_TYPES_H
00024 
00025 
00026 FT_BEGIN_HEADER
00027 
00028 
00029 #define FT_SERVICE_ID_POSTSCRIPT_INFO  "postscript-info"
00030 
00031 
00032   typedef FT_Error
00033   (*PS_GetFontInfoFunc)( FT_Face          face,
00034                          PS_FontInfoRec*  afont_info );
00035 
00036   typedef FT_Error
00037   (*PS_GetFontExtraFunc)( FT_Face           face,
00038                           PS_FontExtraRec*  afont_extra );
00039 
00040   typedef FT_Int
00041   (*PS_HasGlyphNamesFunc)( FT_Face   face );
00042 
00043   typedef FT_Error
00044   (*PS_GetFontPrivateFunc)( FT_Face         face,
00045                             PS_PrivateRec*  afont_private );
00046 
00047 
00048   FT_DEFINE_SERVICE( PsInfo )
00049   {
00050     PS_GetFontInfoFunc     ps_get_font_info;
00051     PS_GetFontExtraFunc    ps_get_font_extra;
00052     PS_HasGlyphNamesFunc   ps_has_glyph_names;
00053     PS_GetFontPrivateFunc  ps_get_font_private;
00054   };
00055 
00056 #ifndef FT_CONFIG_OPTION_PIC
00057 
00058 #define FT_DEFINE_SERVICE_PSINFOREC(class_, get_font_info_,      \
00059         ps_get_font_extra_, has_glyph_names_, get_font_private_) \
00060   static const FT_Service_PsInfoRec class_ =                     \
00061   {                                                              \
00062     get_font_info_, ps_get_font_extra_, has_glyph_names_,        \
00063     get_font_private_                                            \
00064   };
00065 
00066 #else /* FT_CONFIG_OPTION_PIC */ 
00067 
00068 #define FT_DEFINE_SERVICE_PSINFOREC(class_, get_font_info_,      \
00069         ps_get_font_extra_, has_glyph_names_, get_font_private_) \
00070   void                                                           \
00071   FT_Init_Class_##class_( FT_Library library,                    \
00072                           FT_Service_PsInfoRec*  clazz)          \
00073   {                                                              \
00074     FT_UNUSED(library);                                          \
00075     clazz->ps_get_font_info = get_font_info_;                    \
00076     clazz->ps_get_font_extra = ps_get_font_extra_;               \
00077     clazz->ps_has_glyph_names = has_glyph_names_;                \
00078     clazz->ps_get_font_private = get_font_private_;              \
00079   } 
00080 
00081 #endif /* FT_CONFIG_OPTION_PIC */ 
00082 
00083   /* */
00084 
00085 
00086 FT_END_HEADER
00087 
00088 
00089 #endif /* __SVPSINFO_H__ */
00090 
00091 
00092 /* END */

Generated on Tue Jul 5 14:13:40 2011 for ROOT_528-00b_version by  doxygen 1.5.1