ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

svpscmap.h
Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  svpscmap.h                                                             */
00004 /*                                                                         */
00005 /*    The FreeType PostScript charmap service (specification).             */
00006 /*                                                                         */
00007 /*  Copyright 2003, 2006 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 __SVPSCMAP_H__
00020 #define __SVPSCMAP_H__
00021 
00022 #include FT_INTERNAL_OBJECTS_H
00023 
00024 
00025 FT_BEGIN_HEADER
00026 
00027 
00028 #define FT_SERVICE_ID_POSTSCRIPT_CMAPS  "postscript-cmaps"
00029 
00030 
00031   /*
00032    *  Adobe glyph name to unicode value.
00033    */
00034   typedef FT_UInt32
00035   (*PS_Unicode_ValueFunc)( const char*  glyph_name );
00036 
00037   /*
00038    *  Macintosh name id to glyph name.  NULL if invalid index.
00039    */
00040   typedef const char*
00041   (*PS_Macintosh_NameFunc)( FT_UInt  name_index );
00042 
00043   /*
00044    *  Adobe standard string ID to glyph name.  NULL if invalid index.
00045    */
00046   typedef const char*
00047   (*PS_Adobe_Std_StringsFunc)( FT_UInt  string_index );
00048 
00049 
00050   /*
00051    *  Simple unicode -> glyph index charmap built from font glyph names
00052    *  table.
00053    */
00054   typedef struct  PS_UniMap_
00055   {
00056     FT_UInt32  unicode;      /* bit 31 set: is glyph variant */
00057     FT_UInt    glyph_index;
00058 
00059   } PS_UniMap;
00060 
00061 
00062   typedef struct PS_UnicodesRec_*  PS_Unicodes;
00063 
00064   typedef struct  PS_UnicodesRec_
00065   {
00066     FT_CMapRec  cmap;
00067     FT_UInt     num_maps;
00068     PS_UniMap*  maps;
00069 
00070   } PS_UnicodesRec;
00071 
00072 
00073   /*
00074    *  A function which returns a glyph name for a given index.  Returns
00075    *  NULL if invalid index.
00076    */
00077   typedef const char*
00078   (*PS_GetGlyphNameFunc)( FT_Pointer  data,
00079                           FT_UInt     string_index );
00080 
00081   /*
00082    *  A function used to release the glyph name returned by
00083    *  PS_GetGlyphNameFunc, when needed
00084    */
00085   typedef void
00086   (*PS_FreeGlyphNameFunc)( FT_Pointer  data,
00087                            const char*  name );
00088 
00089   typedef FT_Error
00090   (*PS_Unicodes_InitFunc)( FT_Memory             memory,
00091                            PS_Unicodes           unicodes,
00092                            FT_UInt               num_glyphs,
00093                            PS_GetGlyphNameFunc   get_glyph_name,
00094                            PS_FreeGlyphNameFunc  free_glyph_name,
00095                            FT_Pointer            glyph_data );
00096 
00097   typedef FT_UInt
00098   (*PS_Unicodes_CharIndexFunc)( PS_Unicodes  unicodes,
00099                                 FT_UInt32    unicode );
00100 
00101   typedef FT_UInt32
00102   (*PS_Unicodes_CharNextFunc)( PS_Unicodes  unicodes,
00103                                FT_UInt32   *unicode );
00104 
00105 
00106   FT_DEFINE_SERVICE( PsCMaps )
00107   {
00108     PS_Unicode_ValueFunc       unicode_value;
00109 
00110     PS_Unicodes_InitFunc       unicodes_init;
00111     PS_Unicodes_CharIndexFunc  unicodes_char_index;
00112     PS_Unicodes_CharNextFunc   unicodes_char_next;
00113 
00114     PS_Macintosh_NameFunc      macintosh_name;
00115     PS_Adobe_Std_StringsFunc   adobe_std_strings;
00116     const unsigned short*      adobe_std_encoding;
00117     const unsigned short*      adobe_expert_encoding;
00118   };
00119 
00120 
00121 #ifndef FT_CONFIG_OPTION_PIC
00122 
00123 #define FT_DEFINE_SERVICE_PSCMAPSREC(class_, unicode_value_, unicodes_init_, \
00124         unicodes_char_index_, unicodes_char_next_, macintosh_name_,          \
00125         adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_)     \
00126   static const FT_Service_PsCMapsRec class_ =                                \
00127   {                                                                          \
00128     unicode_value_, unicodes_init_,                                          \
00129     unicodes_char_index_, unicodes_char_next_, macintosh_name_,              \
00130     adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_          \
00131   };
00132 
00133 #else /* FT_CONFIG_OPTION_PIC */ 
00134 
00135 #define FT_DEFINE_SERVICE_PSCMAPSREC(class_, unicode_value_, unicodes_init_, \
00136         unicodes_char_index_, unicodes_char_next_, macintosh_name_,          \
00137         adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_)     \
00138   void                                                                       \
00139   FT_Init_Class_##class_( FT_Library library,                                \
00140                           FT_Service_PsCMapsRec* clazz)                      \
00141   {                                                                          \
00142     FT_UNUSED(library);                                                      \
00143     clazz->unicode_value = unicode_value_;                                   \
00144     clazz->unicodes_init = unicodes_init_;                                   \
00145     clazz->unicodes_char_index = unicodes_char_index_;                       \
00146     clazz->unicodes_char_next = unicodes_char_next_;                         \
00147     clazz->macintosh_name = macintosh_name_;                                 \
00148     clazz->adobe_std_strings = adobe_std_strings_;                           \
00149     clazz->adobe_std_encoding = adobe_std_encoding_;                         \
00150     clazz->adobe_expert_encoding = adobe_expert_encoding_;                   \
00151   } 
00152 
00153 #endif /* FT_CONFIG_OPTION_PIC */ 
00154 
00155   /* */
00156 
00157 
00158 FT_END_HEADER
00159 
00160 
00161 #endif /* __SVPSCMAP_H__ */
00162 
00163 
00164 /* END */

Generated on Sun May 27 2012 04:33:32 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.