Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 1
/***************************************************************************/
2
/*                                                                         */
3
/*  svpsinfo.h                                                             */
4
/*                                                                         */
5
/*    The FreeType PostScript info service (specification).                */
6
/*                                                                         */
7
/*  Copyright 2003, 2004, 2009, 2011, 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 __SVPSINFO_H__
20
#define __SVPSINFO_H__
21
 
22
#include FT_INTERNAL_SERVICE_H
23
#include FT_INTERNAL_TYPE1_TYPES_H
24
 
25
 
26
FT_BEGIN_HEADER
27
 
28
 
29
#define FT_SERVICE_ID_POSTSCRIPT_INFO  "postscript-info"
30
 
31
 
32
  typedef FT_Error
33
  (*PS_GetFontInfoFunc)( FT_Face          face,
34
                         PS_FontInfoRec*  afont_info );
35
 
36
  typedef FT_Error
37
  (*PS_GetFontExtraFunc)( FT_Face           face,
38
                          PS_FontExtraRec*  afont_extra );
39
 
40
  typedef FT_Int
41
  (*PS_HasGlyphNamesFunc)( FT_Face  face );
42
 
43
  typedef FT_Error
44
  (*PS_GetFontPrivateFunc)( FT_Face         face,
45
                            PS_PrivateRec*  afont_private );
46
 
47
  typedef FT_Long
48
  (*PS_GetFontValueFunc)( FT_Face       face,
49
                          PS_Dict_Keys  key,
50
                          FT_UInt       idx,
51
                          void         *value,
52
                          FT_Long       value_len );
53
 
54
 
55
  FT_DEFINE_SERVICE( PsInfo )
56
  {
57
    PS_GetFontInfoFunc     ps_get_font_info;
58
    PS_GetFontExtraFunc    ps_get_font_extra;
59
    PS_HasGlyphNamesFunc   ps_has_glyph_names;
60
    PS_GetFontPrivateFunc  ps_get_font_private;
61
    PS_GetFontValueFunc    ps_get_font_value;
62
  };
63
 
64
 
65
#ifndef FT_CONFIG_OPTION_PIC
66
 
67
#define FT_DEFINE_SERVICE_PSINFOREC( class_,                     \
68
                                     get_font_info_,             \
69
                                     ps_get_font_extra_,         \
70
                                     has_glyph_names_,           \
71
                                     get_font_private_,          \
72
                                     get_font_value_ )           \
73
  static const FT_Service_PsInfoRec  class_ =                    \
74
  {                                                              \
75
    get_font_info_, ps_get_font_extra_, has_glyph_names_,        \
76
    get_font_private_, get_font_value_                           \
77
  };
78
 
79
#else /* FT_CONFIG_OPTION_PIC */
80
 
81
#define FT_DEFINE_SERVICE_PSINFOREC( class_,                     \
82
                                     get_font_info_,             \
83
                                     ps_get_font_extra_,         \
84
                                     has_glyph_names_,           \
85
                                     get_font_private_,          \
86
                                     get_font_value_ )           \
87
  void                                                           \
88
  FT_Init_Class_ ## class_( FT_Library             library,      \
89
                            FT_Service_PsInfoRec*  clazz )       \
90
  {                                                              \
91
    FT_UNUSED( library );                                        \
92
                                                                 \
93
    clazz->ps_get_font_info    = get_font_info_;                 \
94
    clazz->ps_get_font_extra   = ps_get_font_extra_;             \
95
    clazz->ps_has_glyph_names  = has_glyph_names_;               \
96
    clazz->ps_get_font_private = get_font_private_;              \
97
    clazz->ps_get_font_value   = get_font_value_;                \
98
  }
99
 
100
#endif /* FT_CONFIG_OPTION_PIC */
101
 
102
  /* */
103
 
104
 
105
FT_END_HEADER
106
 
107
 
108
#endif /* __SVPSINFO_H__ */
109
 
110
 
111
/* END */