PageRenderTime 22ms CodeModel.GetById 12ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/src/freetype/include/freetype/ftsnames.h

https://bitbucket.org/cabalistic/ogredeps/
C++ Header | 200 lines | 29 code | 27 blank | 144 comment | 0 complexity | 9e68a1e32230a2f7710ea95fb931ff08 MD5 | raw file
  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, 2006, 2009, 2010 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 specifications 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  /*    See also @TT_PLATFORM_XXX, @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX,       */
 96  /*    @TT_ISO_ID_XXX, and @TT_MS_ID_XXX.                                 */
 97  /*                                                                       */
 98  typedef struct  FT_SfntName_
 99  {
100    FT_UShort  platform_id;
101    FT_UShort  encoding_id;
102    FT_UShort  language_id;
103    FT_UShort  name_id;
104
105    FT_Byte*   string;      /* this string is *not* null-terminated! */
106    FT_UInt    string_len;  /* in bytes */
107
108  } FT_SfntName;
109
110
111  /*************************************************************************/
112  /*                                                                       */
113  /* <Function>                                                            */
114  /*    FT_Get_Sfnt_Name_Count                                             */
115  /*                                                                       */
116  /* <Description>                                                         */
117  /*    Retrieve the number of name strings in the SFNT `name' table.      */
118  /*                                                                       */
119  /* <Input>                                                               */
120  /*    face :: A handle to the source face.                               */
121  /*                                                                       */
122  /* <Return>                                                              */
123  /*    The number of strings in the `name' table.                         */
124  /*                                                                       */
125  FT_EXPORT( FT_UInt )
126  FT_Get_Sfnt_Name_Count( FT_Face  face );
127
128
129  /*************************************************************************/
130  /*                                                                       */
131  /* <Function>                                                            */
132  /*    FT_Get_Sfnt_Name                                                   */
133  /*                                                                       */
134  /* <Description>                                                         */
135  /*    Retrieve a string of the SFNT `name' table for a given index.      */
136  /*                                                                       */
137  /* <Input>                                                               */
138  /*    face  :: A handle to the source face.                              */
139  /*                                                                       */
140  /*    idx   :: The index of the `name' string.                           */
141  /*                                                                       */
142  /* <Output>                                                              */
143  /*    aname :: The indexed @FT_SfntName structure.                       */
144  /*                                                                       */
145  /* <Return>                                                              */
146  /*    FreeType error code.  0~means success.                             */
147  /*                                                                       */
148  /* <Note>                                                                */
149  /*    The `string' array returned in the `aname' structure is not        */
150  /*    null-terminated.  The application should deallocate it if it is no */
151  /*    longer in use.                                                     */
152  /*                                                                       */
153  /*    Use @FT_Get_Sfnt_Name_Count to get the total number of available   */
154  /*    `name' table entries, then do a loop until you get the right       */
155  /*    platform, encoding, and name ID.                                   */
156  /*                                                                       */
157  FT_EXPORT( FT_Error )
158  FT_Get_Sfnt_Name( FT_Face       face,
159                    FT_UInt       idx,
160                    FT_SfntName  *aname );
161
162
163  /***************************************************************************
164   *
165   * @constant:
166   *   FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY
167   *
168   * @description:
169   *   A constant used as the tag of @FT_Parameter structures to make
170   *   FT_Open_Face() ignore preferred family subfamily names in `name'
171   *   table since OpenType version 1.4.  For backwards compatibility with
172   *   legacy systems which has 4-face-per-family restriction.
173   *
174   */
175#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY  FT_MAKE_TAG( 'i', 'g', 'p', 'f' )
176
177
178  /***************************************************************************
179   *
180   * @constant:
181   *   FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY
182   *
183   * @description:
184   *   A constant used as the tag of @FT_Parameter structures to make
185   *   FT_Open_Face() ignore preferred subfamily names in `name' table since
186   *   OpenType version 1.4.  For backwards compatibility with legacy
187   *   systems which has 4-face-per-family restriction.
188   *
189   */
190#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY  FT_MAKE_TAG( 'i', 'g', 'p', 's' )
191
192  /* */
193
194
195FT_END_HEADER
196
197#endif /* __FT_SFNT_NAMES_H__ */
198
199
200/* END */