svgldict.h revision ec0bab5697bb31ba980810145f62e3799946ec60
1/***************************************************************************/
2/*                                                                         */
3/*  svgldict.h                                                             */
4/*                                                                         */
5/*    The FreeType glyph dictionary services (specification).              */
6/*                                                                         */
7/*  Copyright 2003, 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 __SVGLDICT_H__
20#define __SVGLDICT_H__
21
22#include FT_INTERNAL_SERVICE_H
23
24
25FT_BEGIN_HEADER
26
27
28  /*
29   *  A service used to retrieve glyph names, as well as to find the
30   *  index of a given glyph name in a font.
31   *
32   */
33
34#define FT_SERVICE_ID_GLYPH_DICT  "glyph-dict"
35
36
37  typedef FT_Error
38  (*FT_GlyphDict_GetNameFunc)( FT_Face     face,
39                               FT_UInt     glyph_index,
40                               FT_Pointer  buffer,
41                               FT_UInt     buffer_max );
42
43  typedef FT_UInt
44  (*FT_GlyphDict_NameIndexFunc)( FT_Face     face,
45                                 FT_String*  glyph_name );
46
47
48  FT_DEFINE_SERVICE( GlyphDict )
49  {
50    FT_GlyphDict_GetNameFunc    get_name;
51    FT_GlyphDict_NameIndexFunc  name_index;  /* optional */
52  };
53
54
55#ifndef FT_CONFIG_OPTION_PIC
56
57#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_,                        \
58                                        get_name_,                     \
59                                        name_index_)                   \
60  static const FT_Service_GlyphDictRec  class_ =                       \
61  {                                                                    \
62    get_name_, name_index_                                             \
63  };
64
65#else /* FT_CONFIG_OPTION_PIC */
66
67#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_,                        \
68                                        get_name_,                     \
69                                        name_index_)                   \
70  void                                                                 \
71  FT_Init_Class_ ## class_( FT_Library                library,         \
72                            FT_Service_GlyphDictRec*  clazz )          \
73  {                                                                    \
74    FT_UNUSED( library );                                              \
75                                                                       \
76    clazz->get_name   = get_name_;                                     \
77    clazz->name_index = name_index_;                                   \
78  }
79
80#endif /* FT_CONFIG_OPTION_PIC */
81
82  /* */
83
84
85FT_END_HEADER
86
87
88#endif /* __SVGLDICT_H__ */
89