rev |
line source |
nuclear@0
|
1 /***************************************************************************/
|
nuclear@0
|
2 /* */
|
nuclear@0
|
3 /* svsfnt.h */
|
nuclear@0
|
4 /* */
|
nuclear@0
|
5 /* The FreeType SFNT table loading service (specification). */
|
nuclear@0
|
6 /* */
|
nuclear@0
|
7 /* Copyright 2003, 2004 by */
|
nuclear@0
|
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
nuclear@0
|
9 /* */
|
nuclear@0
|
10 /* This file is part of the FreeType project, and may only be used, */
|
nuclear@0
|
11 /* modified, and distributed under the terms of the FreeType project */
|
nuclear@0
|
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
nuclear@0
|
13 /* this file you indicate that you have read the license and */
|
nuclear@0
|
14 /* understand and accept it fully. */
|
nuclear@0
|
15 /* */
|
nuclear@0
|
16 /***************************************************************************/
|
nuclear@0
|
17
|
nuclear@0
|
18
|
nuclear@0
|
19 #ifndef __SVSFNT_H__
|
nuclear@0
|
20 #define __SVSFNT_H__
|
nuclear@0
|
21
|
nuclear@0
|
22 #include FT_INTERNAL_SERVICE_H
|
nuclear@0
|
23 #include FT_TRUETYPE_TABLES_H
|
nuclear@0
|
24
|
nuclear@0
|
25
|
nuclear@0
|
26 FT_BEGIN_HEADER
|
nuclear@0
|
27
|
nuclear@0
|
28
|
nuclear@0
|
29 /*
|
nuclear@0
|
30 * SFNT table loading service.
|
nuclear@0
|
31 */
|
nuclear@0
|
32
|
nuclear@0
|
33 #define FT_SERVICE_ID_SFNT_TABLE "sfnt-table"
|
nuclear@0
|
34
|
nuclear@0
|
35
|
nuclear@0
|
36 /*
|
nuclear@0
|
37 * Used to implement FT_Load_Sfnt_Table().
|
nuclear@0
|
38 */
|
nuclear@0
|
39 typedef FT_Error
|
nuclear@0
|
40 (*FT_SFNT_TableLoadFunc)( FT_Face face,
|
nuclear@0
|
41 FT_ULong tag,
|
nuclear@0
|
42 FT_Long offset,
|
nuclear@0
|
43 FT_Byte* buffer,
|
nuclear@0
|
44 FT_ULong* length );
|
nuclear@0
|
45
|
nuclear@0
|
46 /*
|
nuclear@0
|
47 * Used to implement FT_Get_Sfnt_Table().
|
nuclear@0
|
48 */
|
nuclear@0
|
49 typedef void*
|
nuclear@0
|
50 (*FT_SFNT_TableGetFunc)( FT_Face face,
|
nuclear@0
|
51 FT_Sfnt_Tag tag );
|
nuclear@0
|
52
|
nuclear@0
|
53
|
nuclear@0
|
54 /*
|
nuclear@0
|
55 * Used to implement FT_Sfnt_Table_Info().
|
nuclear@0
|
56 */
|
nuclear@0
|
57 typedef FT_Error
|
nuclear@0
|
58 (*FT_SFNT_TableInfoFunc)( FT_Face face,
|
nuclear@0
|
59 FT_UInt idx,
|
nuclear@0
|
60 FT_ULong *tag,
|
nuclear@0
|
61 FT_ULong *offset,
|
nuclear@0
|
62 FT_ULong *length );
|
nuclear@0
|
63
|
nuclear@0
|
64
|
nuclear@0
|
65 FT_DEFINE_SERVICE( SFNT_Table )
|
nuclear@0
|
66 {
|
nuclear@0
|
67 FT_SFNT_TableLoadFunc load_table;
|
nuclear@0
|
68 FT_SFNT_TableGetFunc get_table;
|
nuclear@0
|
69 FT_SFNT_TableInfoFunc table_info;
|
nuclear@0
|
70 };
|
nuclear@0
|
71
|
nuclear@0
|
72 #ifndef FT_CONFIG_OPTION_PIC
|
nuclear@0
|
73
|
nuclear@0
|
74 #define FT_DEFINE_SERVICE_SFNT_TABLEREC(class_, load_, get_, info_) \
|
nuclear@0
|
75 static const FT_Service_SFNT_TableRec class_ = \
|
nuclear@0
|
76 { \
|
nuclear@0
|
77 load_, get_, info_ \
|
nuclear@0
|
78 };
|
nuclear@0
|
79
|
nuclear@0
|
80 #else /* FT_CONFIG_OPTION_PIC */
|
nuclear@0
|
81
|
nuclear@0
|
82 #define FT_DEFINE_SERVICE_SFNT_TABLEREC(class_, load_, get_, info_) \
|
nuclear@0
|
83 void \
|
nuclear@0
|
84 FT_Init_Class_##class_( FT_Service_SFNT_TableRec* clazz ) \
|
nuclear@0
|
85 { \
|
nuclear@0
|
86 clazz->load_table = load_; \
|
nuclear@0
|
87 clazz->get_table = get_; \
|
nuclear@0
|
88 clazz->table_info = info_; \
|
nuclear@0
|
89 }
|
nuclear@0
|
90
|
nuclear@0
|
91 #endif /* FT_CONFIG_OPTION_PIC */
|
nuclear@0
|
92
|
nuclear@0
|
93 /* */
|
nuclear@0
|
94
|
nuclear@0
|
95
|
nuclear@0
|
96 FT_END_HEADER
|
nuclear@0
|
97
|
nuclear@0
|
98
|
nuclear@0
|
99 #endif /* __SVSFNT_H__ */
|
nuclear@0
|
100
|
nuclear@0
|
101
|
nuclear@0
|
102 /* END */
|