61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
#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__ */
|