PageRenderTime 49ms CodeModel.GetById 42ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/src/freetype/src/base/ftgxval.c

https://bitbucket.org/cabalistic/ogredeps/
C | 140 lines | 79 code | 35 blank | 26 comment | 10 complexity | e650006ebae3dd9ea2baca17ef211867 MD5 | raw file
  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 */