1 /***************************************************************************/ 2 /* */ 3 /* svsfnt.h */ 4 /* */ 5 /* The FreeType SFNT table loading service (specification). */ 6 /* */ 7 /* Copyright 2003, 2004 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 #ifndef __SVSFNT_H__ 20 #define __SVSFNT_H__ 21 22 #include FT_INTERNAL_SERVICE_H 23 #include FT_TRUETYPE_TABLES_H 24 25 26 FT_BEGIN_HEADER 27 28 29 /* 30 * SFNT table loading service. 31 */ 32 33 #define FT_SERVICE_ID_SFNT_TABLE "sfnt-table" 34 35 36 /* 37 * Used to implement FT_Load_Sfnt_Table(). 38 */ 39 typedef FT_Error 40 (*FT_SFNT_TableLoadFunc)( FT_Face face, 41 FT_ULong tag, 42 FT_Long offset, 43 FT_Byte* buffer, 44 FT_ULong* length ); 45 46 /* 47 * Used to implement FT_Get_Sfnt_Table(). 48 */ 49 typedef void* 50 (*FT_SFNT_TableGetFunc)( FT_Face face, 51 FT_Sfnt_Tag tag ); 52 53 54 /* 55 * Used to implement FT_Sfnt_Table_Info(). 56 */ 57 typedef FT_Error 58 (*FT_SFNT_TableInfoFunc)( FT_Face face, 59 FT_UInt idx, 60 FT_ULong *tag, 61 FT_ULong *length ); 62 63 FT_DEFINE_SERVICE(SFNT_Table)64 FT_DEFINE_SERVICE( SFNT_Table ) 65 { 66 FT_SFNT_TableLoadFunc load_table; 67 FT_SFNT_TableGetFunc get_table; 68 FT_SFNT_TableInfoFunc table_info; 69 }; 70 71 /* */ 72 73 74 FT_END_HEADER 75 76 77 #endif /* __SVSFNT_H__ */ 78 79 80 /* END */ 81