zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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, 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 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;
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 
98 
99 
100 #endif /* __SVSFNT_H__ */
101 
102 
103 /* END */
int FT_Error
Definition: fttypes.h:296
#define FT_DEFINE_SERVICE(name)
Definition: ftserv.h:650
signed long FT_Long
Definition: fttypes.h:238
unsigned long FT_ULong
Definition: fttypes.h:249
#define FT_END_HEADER
Definition: ftheader.h:54
void *(* FT_SFNT_TableGetFunc)(FT_Face face, FT_Sfnt_Tag tag)
Definition: svsfnt.h:50
FT_Error(* FT_SFNT_TableLoadFunc)(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
Definition: svsfnt.h:40
unsigned char FT_Byte
Definition: fttypes.h:150
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
enum FT_Sfnt_Tag_ FT_Sfnt_Tag
EGLContext EGLenum EGLClientBuffer buffer
Definition: eglext.h:87
FT_Error(* FT_SFNT_TableInfoFunc)(FT_Face face, FT_UInt idx, FT_ULong *tag, FT_ULong *offset, FT_ULong *length)
Definition: svsfnt.h:58
FT_UInt idx
Definition: cffcmap.c:125
GLsizei GLsizei * length
Definition: gl2ext.h:792
GLenum face
Definition: gl2ext.h:1490
GLintptr offset
Definition: glew.h:1668
unsigned int FT_UInt
Definition: fttypes.h:227