OLD | NEW |
| (Empty) |
1 /***************************************************************************/ | |
2 /* */ | |
3 /* svsfnt.h */ | |
4 /* */ | |
5 /* The FreeType SFNT table loading service (specification). */ | |
6 /* */ | |
7 /* Copyright 2003, 2004, 2009, 2012 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 "../ftserv.h" | |
23 #include "../../tttables.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 *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 */ | |
OLD | NEW |