ReactOS  0.4.13-dev-982-g9853eab
svsfnt.h
Go to the documentation of this file.
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 
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
41  FT_ULong tag,
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
59  FT_UInt idx,
60  FT_ULong *tag,
62  FT_ULong *length );
63 
64 
65  FT_DEFINE_SERVICE( SFNT_Table )
66  {
67  FT_SFNT_TableLoadFunc load_table;
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 
98 
99 
100 #endif /* SVSFNT_H_ */
101 
102 
103 /* END */
int FT_Error
Definition: fttypes.h:300
FT_Error(* FT_SFNT_TableLoadFunc)(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
Definition: svsfnt.h:40
signed long FT_Long
Definition: fttypes.h:242
unsigned long FT_ULong
Definition: fttypes.h:253
#define FT_END_HEADER
Definition: ftheader.h:54
GLintptr offset
Definition: glext.h:5920
GLuint buffer
Definition: glext.h:5915
WORD face[3]
Definition: mesh.c:4747
FT_Error(* FT_SFNT_TableInfoFunc)(FT_Face face, FT_UInt idx, FT_ULong *tag, FT_ULong *offset, FT_ULong *length)
Definition: svsfnt.h:58
void *(* FT_SFNT_TableGetFunc)(FT_Face face, FT_Sfnt_Tag tag)
Definition: svsfnt.h:50
unsigned char FT_Byte
Definition: fttypes.h:154
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
enum FT_Sfnt_Tag_ FT_Sfnt_Tag
unsigned int idx
Definition: utils.c:41
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
static const struct @240 table_info[]
static UINT get_table(MSIDATABASE *db, LPCWSTR name, MSITABLE **table_ret)
Definition: table.c:583
unsigned int FT_UInt
Definition: fttypes.h:231
FT_DEFINE_SERVICE(SFNT_Table)
Definition: svsfnt.h:65
char * tag
Definition: main.c:59