Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
svpscmap.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* svpscmap.h */
4 /* */
5 /* The FreeType PostScript charmap service (specification). */
6 /* */
7 /* Copyright 2003, 2006, 2009, 2012 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 
18 
19 #ifndef __SVPSCMAP_H__
20 #define __SVPSCMAP_H__
21 
22 #include FT_INTERNAL_OBJECTS_H
23 
24 
26 
27 
28 #define FT_SERVICE_ID_POSTSCRIPT_CMAPS "postscript-cmaps"
29 
30 
31  /*
32  * Adobe glyph name to unicode value.
33  */
34  typedef FT_UInt32
35  (*PS_Unicode_ValueFunc)( const char* glyph_name );
36 
37  /*
38  * Macintosh name id to glyph name. NULL if invalid index.
39  */
40  typedef const char*
41  (*PS_Macintosh_NameFunc)( FT_UInt name_index );
42 
43  /*
44  * Adobe standard string ID to glyph name. NULL if invalid index.
45  */
46  typedef const char*
47  (*PS_Adobe_Std_StringsFunc)( FT_UInt string_index );
48 
49 
50  /*
51  * Simple unicode -> glyph index charmap built from font glyph names
52  * table.
53  */
54  typedef struct PS_UniMap_
55  {
56  FT_UInt32 unicode; /* bit 31 set: is glyph variant */
58 
59  } PS_UniMap;
60 
61 
62  typedef struct PS_UnicodesRec_* PS_Unicodes;
63 
64  typedef struct PS_UnicodesRec_
65  {
69 
71 
72 
73  /*
74  * A function which returns a glyph name for a given index. Returns
75  * NULL if invalid index.
76  */
77  typedef const char*
78  (*PS_GetGlyphNameFunc)( FT_Pointer data,
79  FT_UInt string_index );
80 
81  /*
82  * A function used to release the glyph name returned by
83  * PS_GetGlyphNameFunc, when needed
84  */
85  typedef void
87  const char* name );
88 
89  typedef FT_Error
91  PS_Unicodes unicodes,
92  FT_UInt num_glyphs,
93  PS_GetGlyphNameFunc get_glyph_name,
94  PS_FreeGlyphNameFunc free_glyph_name,
95  FT_Pointer glyph_data );
96 
97  typedef FT_UInt
98  (*PS_Unicodes_CharIndexFunc)( PS_Unicodes unicodes,
100 
101  typedef FT_UInt32
102  (*PS_Unicodes_CharNextFunc)( PS_Unicodes unicodes,
103  FT_UInt32 *unicode );
104 
105 
106  FT_DEFINE_SERVICE( PsCMaps )
107  {
108  PS_Unicode_ValueFunc unicode_value;
109 
110  PS_Unicodes_InitFunc unicodes_init;
111  PS_Unicodes_CharIndexFunc unicodes_char_index;
112  PS_Unicodes_CharNextFunc unicodes_char_next;
113 
114  PS_Macintosh_NameFunc macintosh_name;
115  PS_Adobe_Std_StringsFunc adobe_std_strings;
116  const unsigned short* adobe_std_encoding;
117  const unsigned short* adobe_expert_encoding;
118  };
119 
120 
121 #ifndef FT_CONFIG_OPTION_PIC
122 
123 #define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \
124  unicode_value_, \
125  unicodes_init_, \
126  unicodes_char_index_, \
127  unicodes_char_next_, \
128  macintosh_name_, \
129  adobe_std_strings_, \
130  adobe_std_encoding_, \
131  adobe_expert_encoding_ ) \
132  static const FT_Service_PsCMapsRec class_ = \
133  { \
134  unicode_value_, unicodes_init_, \
135  unicodes_char_index_, unicodes_char_next_, macintosh_name_, \
136  adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_ \
137  };
138 
139 #else /* FT_CONFIG_OPTION_PIC */
140 
141 #define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \
142  unicode_value_, \
143  unicodes_init_, \
144  unicodes_char_index_, \
145  unicodes_char_next_, \
146  macintosh_name_, \
147  adobe_std_strings_, \
148  adobe_std_encoding_, \
149  adobe_expert_encoding_ ) \
150  void \
151  FT_Init_Class_ ## class_( FT_Library library, \
152  FT_Service_PsCMapsRec* clazz ) \
153  { \
154  FT_UNUSED( library ); \
155  \
156  clazz->unicode_value = unicode_value_; \
157  clazz->unicodes_init = unicodes_init_; \
158  clazz->unicodes_char_index = unicodes_char_index_; \
159  clazz->unicodes_char_next = unicodes_char_next_; \
160  clazz->macintosh_name = macintosh_name_; \
161  clazz->adobe_std_strings = adobe_std_strings_; \
162  clazz->adobe_std_encoding = adobe_std_encoding_; \
163  clazz->adobe_expert_encoding = adobe_expert_encoding_; \
164  }
165 
166 #endif /* FT_CONFIG_OPTION_PIC */
167 
168  /* */
169 
170 
172 
173 
174 #endif /* __SVPSCMAP_H__ */
175 
176 
177 /* END */
int FT_Error
Definition: fttypes.h:296
#define FT_END_HEADER
Definition: ftheader.h:54
struct PS_UniMap_ PS_UniMap
unsigned int FT_UInt32
Definition: ftconfig.h:133
typedef void(APIENTRY *GLDEBUGPROCARB)(GLenum source
FT_CMapRec cmap
Definition: svpscmap.h:66
struct PS_UnicodesRec_ * PS_Unicodes
Definition: svpscmap.h:62
struct PS_UnicodesRec_ PS_UnicodesRec
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
PS_UniMap * maps
Definition: svpscmap.h:68
const char *(* PS_GetGlyphNameFunc)(FT_Pointer data, FT_UInt string_index)
Definition: svpscmap.h:78
FT_UInt glyph_index
Definition: svpscmap.h:57
GLsizei GLsizei GLenum GLenum const GLvoid * data
const char *(* PS_Macintosh_NameFunc)(FT_UInt name_index)
Definition: svpscmap.h:41
void * FT_Pointer
Definition: fttypes.h:307
void(* PS_FreeGlyphNameFunc)(FT_Pointer data, const char *name)
Definition: svpscmap.h:86
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
GLuint const GLchar * name
const char *(* PS_Adobe_Std_StringsFunc)(FT_UInt string_index)
Definition: svpscmap.h:47
FT_UInt32(* PS_Unicodes_CharNextFunc)(PS_Unicodes unicodes, FT_UInt32 *unicode)
Definition: svpscmap.h:102
FT_Error(* PS_Unicodes_InitFunc)(FT_Memory memory, PS_Unicodes unicodes, FT_UInt num_glyphs, PS_GetGlyphNameFunc get_glyph_name, PS_FreeGlyphNameFunc free_glyph_name, FT_Pointer glyph_data)
Definition: svpscmap.h:90
unsigned int FT_UInt
Definition: fttypes.h:227
FT_UInt32 unicode
Definition: svpscmap.h:56
FT_UInt32(* PS_Unicode_ValueFunc)(const char *glyph_name)
Definition: svpscmap.h:35
FT_UInt num_maps
Definition: svpscmap.h:67
FT_DEFINE_SERVICE(PsCMaps)
Definition: svpscmap.h:106
FT_UInt(* PS_Unicodes_CharIndexFunc)(PS_Unicodes unicodes, FT_UInt32 unicode)
Definition: svpscmap.h:98