xref: /inferno-os/libfreetype/otltable.h (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth #ifndef __OTL_TABLE_H__
2*37da2899SCharles.Forsyth #define __OTL_TABLE_H__
3*37da2899SCharles.Forsyth 
4*37da2899SCharles.Forsyth #include "otlayout.h"
5*37da2899SCharles.Forsyth 
6*37da2899SCharles.Forsyth OTL_BEGIN_HEADER
7*37da2899SCharles.Forsyth 
8*37da2899SCharles.Forsyth   typedef struct OTL_TableRec_*    OTL_Table;
9*37da2899SCharles.Forsyth 
10*37da2899SCharles.Forsyth   typedef enum
11*37da2899SCharles.Forsyth   {
12*37da2899SCharles.Forsyth     OTL_TABLE_TYPE_GDEF = 1,
13*37da2899SCharles.Forsyth     OTL_TABLE_TYPE_GSUB,
14*37da2899SCharles.Forsyth     OTL_TABLE_TYPE_GPOS,
15*37da2899SCharles.Forsyth     OTL_TABLE_TYPE_BASE,
16*37da2899SCharles.Forsyth     OTL_TABLE_TYPE_JSTF
17*37da2899SCharles.Forsyth 
18*37da2899SCharles.Forsyth   } OTL_TableType;
19*37da2899SCharles.Forsyth 
20*37da2899SCharles.Forsyth 
21*37da2899SCharles.Forsyth  /* this may become a private structure later */
22*37da2899SCharles.Forsyth   typedef struct OTL_TableRec_
23*37da2899SCharles.Forsyth   {
24*37da2899SCharles.Forsyth     OTL_TableType  type;
25*37da2899SCharles.Forsyth     OTL_Bytes      base;
26*37da2899SCharles.Forsyth     OTL_Bytes      limit;
27*37da2899SCharles.Forsyth 
28*37da2899SCharles.Forsyth     OTL_Tag        script_tag;
29*37da2899SCharles.Forsyth     OTL_Tag        lang_tag;
30*37da2899SCharles.Forsyth 
31*37da2899SCharles.Forsyth     OTL_UInt       lookup_count;
32*37da2899SCharles.Forsyth     OTL_Byte*      lookup_flags;
33*37da2899SCharles.Forsyth 
34*37da2899SCharles.Forsyth     OTL_UInt       feature_count;
35*37da2899SCharles.Forsyth     OTL_Tag        feature_tags;
36*37da2899SCharles.Forsyth     OTL_Byte*      feature_flags;
37*37da2899SCharles.Forsyth 
38*37da2899SCharles.Forsyth   } OTL_TableRec;
39*37da2899SCharles.Forsyth 
40*37da2899SCharles.Forsyth 
41*37da2899SCharles.Forsyth   OTL_API( OTL_Error )
42*37da2899SCharles.Forsyth   otl_table_validate( OTL_Bytes      table,
43*37da2899SCharles.Forsyth                       OTL_Size       size,
44*37da2899SCharles.Forsyth                       OTL_TableType  type,
45*37da2899SCharles.Forsyth                       OTL_Size      *abyte_size );
46*37da2899SCharles.Forsyth 
47*37da2899SCharles.Forsyth   OTL_API( void )
48*37da2899SCharles.Forsyth   otl_table_init( OTL_Table      table,
49*37da2899SCharles.Forsyth                   OTL_TableType  type,
50*37da2899SCharles.Forsyth                   OTL_Bytes      base,
51*37da2899SCharles.Forsyth                   OTL_Size       size );
52*37da2899SCharles.Forsyth 
53*37da2899SCharles.Forsyth   OTL_API( void )
54*37da2899SCharles.Forsyth   otl_table_set_script( OTL_Table      table,
55*37da2899SCharles.Forsyth                         OTL_ScriptTag  script,
56*37da2899SCharles.Forsyth                         OTL_LangTag    language );
57*37da2899SCharles.Forsyth 
58*37da2899SCharles.Forsyth OTL_END_HEADER
59*37da2899SCharles.Forsyth 
60*37da2899SCharles.Forsyth #endif /* __OTL_TABLE_H__ */
61