~ubuntu-branches/ubuntu/saucy/emscripten/saucy-proposed

« back to all changes in this revision

Viewing changes to tests/freetype/include/freetype/ftotval.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************/
 
2
/*                                                                         */
 
3
/*  ftotval.h                                                              */
 
4
/*                                                                         */
 
5
/*    FreeType API for validating OpenType tables (specification).         */
 
6
/*                                                                         */
 
7
/*  Copyright 2004, 2005, 2006, 2007 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, MATH).         */
 
60
  /*                                                                       */
 
61
  /*************************************************************************/
 
62
 
 
63
 
 
64
 /**********************************************************************
 
65
  *
 
66
  * @enum:
 
67
  *    FT_VALIDATE_OTXXX
 
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_MATH ::
 
90
  *      Validate MATH table.
 
91
  *
 
92
  *    FT_VALIDATE_OT ::
 
93
  *      Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).
 
94
  *
 
95
  */
 
96
#define FT_VALIDATE_BASE  0x0100
 
97
#define FT_VALIDATE_GDEF  0x0200
 
98
#define FT_VALIDATE_GPOS  0x0400
 
99
#define FT_VALIDATE_GSUB  0x0800
 
100
#define FT_VALIDATE_JSTF  0x1000
 
101
#define FT_VALIDATE_MATH  0x2000
 
102
 
 
103
#define FT_VALIDATE_OT  FT_VALIDATE_BASE | \
 
104
                        FT_VALIDATE_GDEF | \
 
105
                        FT_VALIDATE_GPOS | \
 
106
                        FT_VALIDATE_GSUB | \
 
107
                        FT_VALIDATE_JSTF | \
 
108
                        FT_VALIDATE_MATH
 
109
 
 
110
  /* */
 
111
 
 
112
 /**********************************************************************
 
113
  *
 
114
  * @function:
 
115
  *    FT_OpenType_Validate
 
116
  *
 
117
  * @description:
 
118
  *    Validate various OpenType tables to assure that all offsets and
 
119
  *    indices are valid.  The idea is that a higher-level library which
 
120
  *    actually does the text layout can access those tables without
 
121
  *    error checking (which can be quite time consuming).
 
122
  *
 
123
  * @input:
 
124
  *    face ::
 
125
  *       A handle to the input face.
 
126
  *
 
127
  *    validation_flags ::
 
128
  *       A bit field which specifies the tables to be validated.  See
 
129
  *       @FT_VALIDATE_OTXXX for possible values.
 
130
  *
 
131
  * @output:
 
132
  *    BASE_table ::
 
133
  *       A pointer to the BASE table.
 
134
  *
 
135
  *    GDEF_table ::
 
136
  *       A pointer to the GDEF table.
 
137
  *
 
138
  *    GPOS_table ::
 
139
  *       A pointer to the GPOS table.
 
140
  *
 
141
  *    GSUB_table ::
 
142
  *       A pointer to the GSUB table.
 
143
  *
 
144
  *    JSTF_table ::
 
145
  *       A pointer to the JSTF table.
 
146
  *
 
147
  * @return:
 
148
  *   FreeType error code.  0~means success.
 
149
  *
 
150
  * @note:
 
151
  *   This function only works with OpenType fonts, returning an error
 
152
  *   otherwise.
 
153
  *
 
154
  *   After use, the application should deallocate the five tables with
 
155
  *   @FT_OpenType_Free.  A NULL value indicates that the table either
 
156
  *   doesn't exist in the font, or the application hasn't asked for
 
157
  *   validation.
 
158
  */
 
159
  FT_EXPORT( FT_Error )
 
160
  FT_OpenType_Validate( FT_Face    face,
 
161
                        FT_UInt    validation_flags,
 
162
                        FT_Bytes  *BASE_table,
 
163
                        FT_Bytes  *GDEF_table,
 
164
                        FT_Bytes  *GPOS_table,
 
165
                        FT_Bytes  *GSUB_table,
 
166
                        FT_Bytes  *JSTF_table );
 
167
 
 
168
  /* */
 
169
 
 
170
 /**********************************************************************
 
171
  *
 
172
  * @function:
 
173
  *    FT_OpenType_Free
 
174
  *
 
175
  * @description:
 
176
  *    Free the buffer allocated by OpenType validator.
 
177
  *
 
178
  * @input:
 
179
  *    face ::
 
180
  *       A handle to the input face.
 
181
  *
 
182
  *    table ::
 
183
  *       The pointer to the buffer that is allocated by
 
184
  *       @FT_OpenType_Validate.
 
185
  *
 
186
  * @note:
 
187
  *   This function must be used to free the buffer allocated by
 
188
  *   @FT_OpenType_Validate only.
 
189
  */
 
190
  FT_EXPORT( void )
 
191
  FT_OpenType_Free( FT_Face   face,
 
192
                    FT_Bytes  table );
 
193
 
 
194
 
 
195
 /* */
 
196
 
 
197
 
 
198
FT_END_HEADER
 
199
 
 
200
#endif /* __FTOTVAL_H__ */
 
201
 
 
202
 
 
203
/* END */