]> git.sesse.net Git - casparcg/blob - SFML-1.6/extlibs/headers/freetype/ftotval.h
(no commit message)
[casparcg] / SFML-1.6 / extlibs / headers / freetype / ftotval.h
1 /***************************************************************************/
2 /*                                                                         */
3 /*  ftotval.h                                                              */
4 /*                                                                         */
5 /*    FreeType API for validating OpenType tables (specification).         */
6 /*                                                                         */
7 /*  Copyright 2004, 2005 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 /***************************************************************************/
20 /*                                                                         */
21 /*                                                                         */
22 /* Warning: This module might be moved to a different library in the       */
23 /*          future to avoid a tight dependency between FreeType and the    */
24 /*          OpenType specification.                                        */
25 /*                                                                         */
26 /*                                                                         */
27 /***************************************************************************/
28
29
30 #ifndef __FTOTVAL_H__
31 #define __FTOTVAL_H__
32
33 #include <ft2build.h>
34 #include FT_FREETYPE_H
35
36 #ifdef FREETYPE_H
37 #error "freetype.h of FreeType 1 has been loaded!"
38 #error "Please fix the directory search order for header files"
39 #error "so that freetype.h of FreeType 2 is found first."
40 #endif
41
42
43 FT_BEGIN_HEADER
44
45
46   /*************************************************************************/
47   /*                                                                       */
48   /* <Section>                                                             */
49   /*    ot_validation                                                      */
50   /*                                                                       */
51   /* <Title>                                                               */
52   /*    OpenType Validation                                                */
53   /*                                                                       */
54   /* <Abstract>                                                            */
55   /*    An API to validate OpenType tables.                                */
56   /*                                                                       */
57   /* <Description>                                                         */
58   /*    This section contains the declaration of functions to validate     */
59   /*    some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF).               */
60   /*                                                                       */
61   /*************************************************************************/
62
63
64  /**********************************************************************
65   *
66   * @enum:
67   *    FT_VALIDATE_XXX
68   *
69   * @description:
70   *    A list of bit-field constants used with @FT_OpenType_Validate to
71   *    indicate which OpenType tables should be validated.
72   *
73   * @values:
74   *    FT_VALIDATE_BASE ::
75   *      Validate BASE table.
76   *
77   *    FT_VALIDATE_GDEF ::
78   *      Validate GDEF table.
79   *
80   *    FT_VALIDATE_GPOS ::
81   *      Validate GPOS table.
82   *
83   *    FT_VALIDATE_GSUB ::
84   *      Validate GSUB table.
85   *
86   *    FT_VALIDATE_JSTF ::
87   *      Validate JSTF table.
88   *
89   *    FT_VALIDATE_OT ::
90   *      Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF).
91   *
92   */
93 #define FT_VALIDATE_BASE  0x0100
94 #define FT_VALIDATE_GDEF  0x0200
95 #define FT_VALIDATE_GPOS  0x0400
96 #define FT_VALIDATE_GSUB  0x0800
97 #define FT_VALIDATE_JSTF  0x1000
98
99 #define FT_VALIDATE_OT  FT_VALIDATE_BASE | \
100                         FT_VALIDATE_GDEF | \
101                         FT_VALIDATE_GPOS | \
102                         FT_VALIDATE_GSUB | \
103                         FT_VALIDATE_JSTF
104
105   /* */
106
107  /**********************************************************************
108   *
109   * @function:
110   *    FT_OpenType_Validate
111   *
112   * @description:
113   *    Validate various OpenType tables to assure that all offsets and
114   *    indices are valid.  The idea is that a higher-level library which
115   *    actually does the text layout can access those tables without
116   *    error checking (which can be quite time consuming).
117   *
118   * @input:
119   *    face ::
120   *       A handle to the input face.
121   *
122   *    validation_flags ::
123   *       A bit field which specifies the tables to be validated.  See
124   *       @FT_VALIDATE_XXX for possible values.
125   *
126   * @output:
127   *    BASE_table ::
128   *       A pointer to the BASE table.
129   *
130   *    GDEF_table ::
131   *       A pointer to the GDEF table.
132   *
133   *    GPOS_table ::
134   *       A pointer to the GPOS table.
135   *
136   *    GSUB_table ::
137   *       A pointer to the GSUB table.
138   *
139   *    JSTF_table ::
140   *       A pointer to the JSTF table.
141   *
142   * @return:
143   *   FreeType error code.  0 means success.
144   *
145   * @note:
146   *   This function only works with OpenType fonts, returning an error
147   *   otherwise.
148   *
149   *   After use, the application should deallocate the five tables with
150   *   `free'.  A NULL value indicates that the table either doesn't exist
151   *   in the font, or the application hasn't asked for validation.
152   */
153   FT_EXPORT( FT_Error )
154   FT_OpenType_Validate( FT_Face    face,
155                         FT_UInt    validation_flags,
156                         FT_Bytes  *BASE_table, 
157                         FT_Bytes  *GDEF_table, 
158                         FT_Bytes  *GPOS_table, 
159                         FT_Bytes  *GSUB_table, 
160                         FT_Bytes  *JSTF_table );
161
162  /* */
163
164
165 FT_END_HEADER
166
167 #endif /* __FTOTVAL_H__ */
168
169
170 /* END */