1 /***************************************************************************/ 2 /* */ 3 /* svsfnt.h */ 4 /* */ 5 /* The FreeType SFNT table loading service (specification). */ 6 /* */ 7 /* Copyright 2003-2018 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 /* 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 *offset, 62 FT_ULong *length ); 63 64 65 FT_DEFINE_SERVICE( SFNT_Table ) 66 { 67 FT_SFNT_TableLoadFunc load_table; 68 FT_SFNT_TableGetFunc get_table; 69 FT_SFNT_TableInfoFunc table_info; 70 }; 71 72 73 #ifndef FT_CONFIG_OPTION_PIC 74 75 #define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ 76 static const FT_Service_SFNT_TableRec class_ = \ 77 { \ 78 load_, get_, info_ \ 79 }; 80 81 #else /* FT_CONFIG_OPTION_PIC */ 82 83 #define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ 84 void \ 85 FT_Init_Class_ ## class_( FT_Service_SFNT_TableRec* clazz ) \ 86 { \ 87 clazz->load_table = load_; \ 88 clazz->get_table = get_; \ 89 clazz->table_info = info_; \ 90 } 91 92 #endif /* FT_CONFIG_OPTION_PIC */ 93 94 /* */ 95 96 97 FT_END_HEADER 98 99 100 #endif /* SVSFNT_H_ */ 101 102 103 /* END */ | 1 /**************************************************************************** 2 * 3 * svsfnt.h 4 * 5 * The FreeType SFNT table loading service (specification). 6 * 7 * Copyright (C) 2003-2019 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 /* 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 *offset, 62 FT_ULong *length ); 63 64 65 FT_DEFINE_SERVICE( SFNT_Table ) 66 { 67 FT_SFNT_TableLoadFunc load_table; 68 FT_SFNT_TableGetFunc get_table; 69 FT_SFNT_TableInfoFunc table_info; 70 }; 71 72 73 #define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ 74 static const FT_Service_SFNT_TableRec class_ = \ 75 { \ 76 load_, get_, info_ \ 77 }; 78 79 /* */ 80 81 82 FT_END_HEADER 83 84 85 #endif /* SVSFNT_H_ */ 86 87 88 /* END */ |