| /***************************************************************************/ |
| /* */ |
| /* svsfnt.h */ |
| /* */ |
| /* The FreeType SFNT table loading service (specification). */ |
| /* */ |
| /* Copyright 2003-2015 by */ |
| /* 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. */ |
| /* */ |
| /***************************************************************************/ |
| |
| |
| #ifndef __SVSFNT_H__ |
| #define __SVSFNT_H__ |
| |
| #include FT_INTERNAL_SERVICE_H |
| #include FT_TRUETYPE_TABLES_H |
| |
| |
| FT_BEGIN_HEADER |
| |
| |
| /* |
| * SFNT table loading service. |
| */ |
| |
| #define FT_SERVICE_ID_SFNT_TABLE "sfnt-table" |
| |
| |
| /* |
| * Used to implement FT_Load_Sfnt_Table(). |
| */ |
| typedef FT_Error |
| (*FT_SFNT_TableLoadFunc)( FT_Face face, |
| FT_ULong tag, |
| FT_Long offset, |
| FT_Byte* buffer, |
| FT_ULong* length ); |
| |
| /* |
| * Used to implement FT_Get_Sfnt_Table(). |
| */ |
| typedef void* |
| (*FT_SFNT_TableGetFunc)( FT_Face face, |
| FT_Sfnt_Tag tag ); |
| |
| |
| /* |
| * Used to implement FT_Sfnt_Table_Info(). |
| */ |
| typedef FT_Error |
| (*FT_SFNT_TableInfoFunc)( FT_Face face, |
| FT_UInt idx, |
| FT_ULong *tag, |
| FT_ULong *offset, |
| FT_ULong *length ); |
| |
| |
| FT_DEFINE_SERVICE( SFNT_Table ) |
| { |
| FT_SFNT_TableLoadFunc load_table; |
| FT_SFNT_TableGetFunc get_table; |
| FT_SFNT_TableInfoFunc table_info; |
| }; |
| |
| |
| #ifndef FT_CONFIG_OPTION_PIC |
| |
| #define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ |
| static const FT_Service_SFNT_TableRec class_ = \ |
| { \ |
| load_, get_, info_ \ |
| }; |
| |
| #else /* FT_CONFIG_OPTION_PIC */ |
| |
| #define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ |
| void \ |
| FT_Init_Class_ ## class_( FT_Service_SFNT_TableRec* clazz ) \ |
| { \ |
| clazz->load_table = load_; \ |
| clazz->get_table = get_; \ |
| clazz->table_info = info_; \ |
| } |
| |
| #endif /* FT_CONFIG_OPTION_PIC */ |
| |
| /* */ |
| |
| |
| FT_END_HEADER |
| |
| |
| #endif /* __SVSFNT_H__ */ |
| |
| |
| /* END */ |