/**************************************************************************** * * gxvmod.c * * FreeType's TrueTypeGX/AAT validation module implementation (body). * * Copyright (C) 2004-2023 by * suzuki toshiya, Masatake YAMATO, Red Hat K.K., * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, * modified, and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * */ /**************************************************************************** * * gxvalid is derived from both gxlayout module and otvalid module. * Development of gxlayout is supported by the Information-technology * Promotion Agency(IPA), Japan. * */ #include <freetype/tttables.h> #include <freetype/tttags.h> #include <freetype/ftgxval.h> #include <freetype/internal/ftobjs.h> #include <freetype/internal/services/svgxval.h> #include "gxvmod.h" #include "gxvalid.h" #include "gxvcommn.h" /************************************************************************** * * The macro FT_COMPONENT is used in trace mode. It is an implicit * parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log * messages during execution. */ #undef FT_COMPONENT #define FT_COMPONENT … static FT_Error gxv_load_table( FT_Face face, FT_Tag tag, FT_Byte* volatile* table, FT_ULong* table_len ) { … } #define GXV_TABLE_DECL( _sfnt ) … #define GXV_TABLE_LOAD( _sfnt ) … #define GXV_TABLE_VALIDATE( _sfnt ) … #define GXV_TABLE_SET( _sfnt ) … static FT_Error gxv_validate( FT_Face face, FT_UInt gx_flags, FT_Bytes tables[FT_VALIDATE_GX_LENGTH], FT_UInt table_count ) { … } static FT_Error classic_kern_validate( FT_Face face, FT_UInt ckern_flags, FT_Bytes* ckern_table ) { … } static const FT_Service_GXvalidateRec gxvalid_interface = …; static const FT_Service_CKERNvalidateRec ckernvalid_interface = …; static const FT_ServiceDescRec gxvalid_services[] = …; static FT_Pointer gxvalid_get_service( FT_Module module, const char* service_id ) { … } FT_CALLBACK_TABLE_DEF const FT_Module_Class gxv_module_class = …; /* END */