source: trunk/poppler/freetype-2.1.10/include/freetype/ftsnames.h @ 2

Last change on this file since 2 was 2, checked in by Eugene Romanenko, 15 years ago

First import

File size: 9.6 KB
Line 
1/***************************************************************************/
2/*                                                                         */
3/*  ftsnames.h                                                             */
4/*                                                                         */
5/*    Simple interface to access SFNT name tables (which are used          */
6/*    to hold font names, copyright info, notices, etc.) (specification).  */
7/*                                                                         */
8/*    This is _not_ used to retrieve glyph names!                          */
9/*                                                                         */
10/*  Copyright 1996-2001, 2002, 2003 by                                     */
11/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
12/*                                                                         */
13/*  This file is part of the FreeType project, and may only be used,       */
14/*  modified, and distributed under the terms of the FreeType project      */
15/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
16/*  this file you indicate that you have read the license and              */
17/*  understand and accept it fully.                                        */
18/*                                                                         */
19/***************************************************************************/
20
21
22#ifndef __FT_SFNT_NAMES_H__
23#define __FT_SFNT_NAMES_H__
24
25
26#include <ft2build.h>
27#include FT_FREETYPE_H
28
29#ifdef FREETYPE_H
30#error "freetype.h of FreeType 1 has been loaded!"
31#error "Please fix the directory search order for header files"
32#error "so that freetype.h of FreeType 2 is found first."
33#endif
34
35
36FT_BEGIN_HEADER
37
38
39  /*************************************************************************/
40  /*                                                                       */
41  /* <Section>                                                             */
42  /*    sfnt_names                                                         */
43  /*                                                                       */
44  /* <Title>                                                               */
45  /*    SFNT Names                                                         */
46  /*                                                                       */
47  /* <Abstract>                                                            */
48  /*    Access the names embedded in TrueType and OpenType files.          */
49  /*                                                                       */
50  /* <Description>                                                         */
51  /*    The TrueType and OpenType specification allow the inclusion of     */
52  /*    a special `names table' in font files.  This table contains        */
53  /*    textual (and internationalized) information regarding the font,    */
54  /*    like family name, copyright, version, etc.                         */
55  /*                                                                       */
56  /*    The definitions below are used to access them if available.        */
57  /*                                                                       */
58  /*    Note that this has nothing to do with glyph names!                 */
59  /*                                                                       */
60  /*************************************************************************/
61
62
63  /*************************************************************************/
64  /*                                                                       */
65  /* <Struct>                                                              */
66  /*    FT_SfntName                                                        */
67  /*                                                                       */
68  /* <Description>                                                         */
69  /*    A structure used to model an SFNT `name' table entry.              */
70  /*                                                                       */
71  /* <Fields>                                                              */
72  /*    platform_id :: The platform ID for `string'.                       */
73  /*                                                                       */
74  /*    encoding_id :: The encoding ID for `string'.                       */
75  /*                                                                       */
76  /*    language_id :: The language ID for `string'.                       */
77  /*                                                                       */
78  /*    name_id     :: An identifier for `string'.                         */
79  /*                                                                       */
80  /*    string      :: The `name' string.  Note that its format differs    */
81  /*                   depending on the (platform,encoding) pair. It can   */
82  /*                   be a Pascal String, a UTF-16 one, etc..             */
83  /*                                                                       */
84  /*                   Generally speaking, the string is not               */
85  /*                   zero-terminated. Please refer to the TrueType       */
86  /*                   specification for details..                         */
87  /*                                                                       */
88  /*    string_len  :: The length of `string' in bytes.                    */
89  /*                                                                       */
90  /* <Note>                                                                */
91  /*    Possible values for `platform_id', `encoding_id', `language_id',   */
92  /*    and `name_id' are given in the file `ttnameid.h'.  For details     */
93  /*    please refer to the TrueType or OpenType specification.            */
94  /*                                                                       */
95  typedef struct  FT_SfntName_
96  {
97    FT_UShort  platform_id;
98    FT_UShort  encoding_id;
99    FT_UShort  language_id;
100    FT_UShort  name_id;
101
102    FT_Byte*   string;      /* this string is *not* null-terminated! */
103    FT_UInt    string_len;  /* in bytes */
104
105  } FT_SfntName;
106
107
108  /*************************************************************************/
109  /*                                                                       */
110  /* <Function>                                                            */
111  /*    FT_Get_Sfnt_Name_Count                                             */
112  /*                                                                       */
113  /* <Description>                                                         */
114  /*    Retrieves the number of name strings in the SFNT `name' table.     */
115  /*                                                                       */
116  /* <Input>                                                               */
117  /*    face :: A handle to the source face.                               */
118  /*                                                                       */
119  /* <Return>                                                              */
120  /*    The number of strings in the `name' table.                         */
121  /*                                                                       */
122  FT_EXPORT( FT_UInt )
123  FT_Get_Sfnt_Name_Count( FT_Face  face );
124
125
126  /*************************************************************************/
127  /*                                                                       */
128  /* <Function>                                                            */
129  /*    FT_Get_Sfnt_Name                                                   */
130  /*                                                                       */
131  /* <Description>                                                         */
132  /*    Retrieves a string of the SFNT `name' table for a given index.     */
133  /*                                                                       */
134  /* <Input>                                                               */
135  /*    face  :: A handle to the source face.                              */
136  /*                                                                       */
137  /*    idx   :: The index of the `name' string.                           */
138  /*                                                                       */
139  /* <Output>                                                              */
140  /*    aname :: The indexed FT_SfntName structure.                        */
141  /*                                                                       */
142  /* <Return>                                                              */
143  /*    FreeType error code.  0 means success.                             */
144  /*                                                                       */
145  /* <Note>                                                                */
146  /*    The `string' array returned in the `aname' structure is not        */
147  /*    null-terminated.                                                   */
148  /*                                                                       */
149  /*    Use FT_Get_Sfnt_Name_Count() to get the total number of available  */
150  /*    `name' table entries, then do a loop until you get the right       */
151  /*    platform, encoding, and name ID.                                   */
152  /*                                                                       */
153  FT_EXPORT( FT_Error )
154  FT_Get_Sfnt_Name( FT_Face       face,
155                    FT_UInt       idx,
156                    FT_SfntName  *aname );
157
158
159  /* */
160
161
162FT_END_HEADER
163
164#endif /* __FT_SFNT_NAMES_H__ */
165
166
167/* END */
Note: See TracBrowser for help on using the repository browser.