Initialize Tizen 2.3
[framework/graphics/freetype.git] / src / base / ftgxval.c
1 /***************************************************************************/
2 /*                                                                         */
3 /*  ftgxval.c                                                              */
4 /*                                                                         */
5 /*    FreeType API for validating TrueTyepGX/AAT tables (body).            */
6 /*                                                                         */
7 /*  Copyright 2004, 2005, 2006, 2010 by                                    */
8 /*  Masatake YAMATO, Redhat K.K,                                           */
9 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
10 /*                                                                         */
11 /*  This file is part of the FreeType project, and may only be used,       */
12 /*  modified, and distributed under the terms of the FreeType project      */
13 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
14 /*  this file you indicate that you have read the license and              */
15 /*  understand and accept it fully.                                        */
16 /*                                                                         */
17 /***************************************************************************/
18
19 /***************************************************************************/
20 /*                                                                         */
21 /* gxvalid is derived from both gxlayout module and otvalid module.        */
22 /* Development of gxlayout is supported by the Information-technology      */
23 /* Promotion Agency(IPA), Japan.                                           */
24 /*                                                                         */
25 /***************************************************************************/
26
27
28 #include <ft2build.h>
29 #include FT_INTERNAL_OBJECTS_H
30 #include FT_SERVICE_GX_VALIDATE_H
31
32
33   /* documentation is in ftgxval.h */
34
35   FT_EXPORT_DEF( FT_Error )
36   FT_TrueTypeGX_Validate( FT_Face   face,
37                           FT_UInt   validation_flags,
38                           FT_Bytes  tables[FT_VALIDATE_GX_LENGTH],
39                           FT_UInt   table_length )
40   {
41     FT_Service_GXvalidate  service;
42     FT_Error               error;
43
44
45     if ( !face )
46     {
47       error = FT_Err_Invalid_Face_Handle;
48       goto Exit;
49     }
50
51     if ( tables == NULL )
52     {
53       error = FT_Err_Invalid_Argument;
54       goto Exit;
55     }
56
57     FT_FACE_FIND_GLOBAL_SERVICE( face, service, GX_VALIDATE );
58
59     if ( service )
60       error = service->validate( face,
61                                  validation_flags,
62                                  tables,
63                                  table_length );
64     else
65       error = FT_Err_Unimplemented_Feature;
66
67   Exit:
68     return error;
69   }
70
71
72   FT_EXPORT_DEF( void )
73   FT_TrueTypeGX_Free( FT_Face   face,
74                       FT_Bytes  table )
75   {
76     FT_Memory  memory;
77
78
79     if ( !face )
80       return;
81
82     memory = FT_FACE_MEMORY( face );
83
84     FT_FREE( table );
85   }
86
87
88   FT_EXPORT_DEF( FT_Error )
89   FT_ClassicKern_Validate( FT_Face    face,
90                            FT_UInt    validation_flags,
91                            FT_Bytes  *ckern_table )
92   {
93     FT_Service_CKERNvalidate  service;
94     FT_Error                  error;
95
96
97     if ( !face )
98     {
99       error = FT_Err_Invalid_Face_Handle;
100       goto Exit;
101     }
102
103     if ( ckern_table == NULL )
104     {
105       error = FT_Err_Invalid_Argument;
106       goto Exit;
107     }
108
109     FT_FACE_FIND_GLOBAL_SERVICE( face, service, CLASSICKERN_VALIDATE );
110
111     if ( service )
112       error = service->validate( face,
113                                  validation_flags,
114                                  ckern_table );
115     else
116       error = FT_Err_Unimplemented_Feature;
117
118   Exit:
119     return error;
120   }
121
122
123   FT_EXPORT_DEF( void )
124   FT_ClassicKern_Free( FT_Face   face,
125                        FT_Bytes  table )
126   {
127     FT_Memory  memory;
128
129
130     if ( !face )
131       return;
132
133     memory = FT_FACE_MEMORY( face );
134
135
136     FT_FREE( table );
137   }
138
139
140 /* END */