Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 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 *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 | #ifndef FT_CONFIG_OPTION_PIC |
||
73 | |||
74 | #define FT_DEFINE_SERVICE_SFNT_TABLEREC(class_, load_, get_, info_) \ |
||
75 | static const FT_Service_SFNT_TableRec class_ = \ |
||
76 | { \ |
||
77 | load_, get_, info_ \ |
||
78 | }; |
||
79 | |||
80 | #else /* FT_CONFIG_OPTION_PIC */ |
||
81 | |||
82 | #define FT_DEFINE_SERVICE_SFNT_TABLEREC(class_, load_, get_, info_) \ |
||
83 | void \ |
||
84 | FT_Init_Class_##class_( FT_Service_SFNT_TableRec* clazz ) \ |
||
85 | { \ |
||
86 | clazz->load_table = load_; \ |
||
87 | clazz->get_table = get_; \ |
||
88 | clazz->table_info = info_; \ |
||
89 | } |
||
90 | |||
91 | #endif /* FT_CONFIG_OPTION_PIC */ |
||
92 | |||
93 | /* */ |
||
94 | |||
95 | |||
96 | FT_END_HEADER |
||
97 | |||
98 | |||
99 | #endif /* __SVSFNT_H__ */ |
||
100 | |||
101 | |||
102 | /* END */ |