| #ifndef __OTL_TABLE_H__ |
| #define __OTL_TABLE_H__ |
| |
| #include "otlayout.h" |
| |
| OTL_BEGIN_HEADER |
| |
| typedef struct OTL_TableRec_* OTL_Table; |
| |
| typedef enum |
| { |
| OTL_TABLE_TYPE_GDEF = 1, |
| OTL_TABLE_TYPE_GSUB, |
| OTL_TABLE_TYPE_GPOS, |
| OTL_TABLE_TYPE_BASE, |
| OTL_TABLE_TYPE_JSTF |
| |
| } OTL_TableType; |
| |
| |
| /* this may become a private structure later */ |
| typedef struct OTL_TableRec_ |
| { |
| OTL_TableType type; |
| OTL_Bytes base; |
| OTL_Bytes limit; |
| |
| OTL_Tag script_tag; |
| OTL_Tag lang_tag; |
| |
| OTL_UInt lookup_count; |
| OTL_Byte* lookup_flags; |
| |
| OTL_UInt feature_count; |
| OTL_Tag feature_tags; |
| OTL_Byte* feature_flags; |
| |
| } OTL_TableRec; |
| |
| |
| OTL_API( OTL_Error ) |
| otl_table_validate( OTL_Bytes table, |
| OTL_Size size, |
| OTL_TableType type, |
| OTL_Size *abyte_size ); |
| |
| OTL_API( void ) |
| otl_table_init( OTL_Table table, |
| OTL_TableType type, |
| OTL_Bytes base, |
| OTL_Size size ); |
| |
| OTL_API( void ) |
| otl_table_set_script( OTL_Table table, |
| OTL_ScriptTag script, |
| OTL_LangTag language ); |
| |
| OTL_END_HEADER |
| |
| #endif /* __OTL_TABLE_H__ */ |