summaryrefslogtreecommitdiff
path: root/src/gxlayout/gxstatetbl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gxlayout/gxstatetbl.h')
-rw-r--r--src/gxlayout/gxstatetbl.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/src/gxlayout/gxstatetbl.h b/src/gxlayout/gxstatetbl.h
new file mode 100644
index 000000000..0ccbf88b9
--- /dev/null
+++ b/src/gxlayout/gxstatetbl.h
@@ -0,0 +1,128 @@
+/***************************************************************************/
+/* */
+/* gxstatetbl.h */
+/* */
+/* AAT/TrueTypeGX state table related types and functions */
+/* (specification). */
+/* */
+/* Copyright 2003 by */
+/* Masatake YAMATO and Redhat K.K. */
+/* */
+/* This file may only be used, */
+/* modified, and distributed under the terms of the FreeType project */
+/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
+/* this file you indicate that you have read the license and */
+/* understand and accept it fully. */
+/* */
+/***************************************************************************/
+
+/***************************************************************************/
+/* Development of the code in this file is support of */
+/* Information-technology Promotion Agency, Japan. */
+/***************************************************************************/
+
+
+#ifndef __GXSTATETBL_H_
+#define __GXSTATETBL_H_
+
+#include <ft2build.h>
+#include FT_TYPES_H
+#include "gxtypes.h"
+
+FT_BEGIN_HEADER
+
+/* - GX_StateTable_Entry_Loader
+ Fill entry_subtable->glyphOffsets and
+ update stream to read next entry_subtable. */
+ typedef FT_Error
+ (* GX_StateTable_Entry_Loader) ( GX_Face face,
+ FT_Stream stream,
+ GX_EntrySubtable entry_subtable,
+ FT_Pointer user );
+ typedef void
+ (* GX_StateTable_Entry_Finalizer) ( FT_Memory memory,
+ GX_EntrySubtable entry_subtable,
+ FT_Pointer user );
+
+ typedef FT_Error
+ (* GX_StateTable_Entry_Action) ( GX_EntrySubtable entry_subtable,
+ FT_Pointer user );
+
+#define GX_STATE_TABLE_ENTRY_LOAD_FUNCS_ZERO {NULL, NULL}
+ typedef struct GX_StateTable_Entry_Load_FuncsRec_
+ {
+ GX_StateTable_Entry_Loader loader;
+ GX_StateTable_Entry_Finalizer finalizer;
+ } GX_StateTable_Entry_Load_FuncsRec, *GX_StateTable_Entry_Load_Funcs;
+
+ FT_LOCAL ( FT_Error )
+ gx_face_load_StateTable ( GX_Face face,
+ FT_Stream stream,
+ GX_StateTable state_table,
+ GX_StateTable_Entry_Load_Funcs funcs,
+ FT_Pointer user );
+
+ FT_LOCAL ( void )
+ gx_StateTable_free ( GX_StateTable state_table,
+ FT_Memory memory,
+ GX_StateTable_Entry_Finalizer finalizer,
+ FT_Pointer user );
+
+/* If action returns value other than FT_Err_Ok, the traverse stops
+ at that point and returns. */
+#if 0
+ FT_LOCAL ( FT_Error )
+ gx_StateTable_traverse_entries( GX_StateTable state_table,
+ GX_StateTable_Entry_Action action,
+ FT_Pointer user );
+#endif /* 0 */
+
+
+ FT_LOCAL ( FT_Byte )
+ gx_StateTable_get_class ( GX_StateTable state_table,
+ FT_UShort glyph );
+
+ FT_LOCAL ( GX_EntrySubtable )
+ gx_StateTable_get_entry_subtable ( GX_StateTable state_table,
+ FT_UShort current_state,
+ FT_Byte class_code );
+
+#define GX_XSTATE_TABLE_ENTRY_LOAD_FUNCS_ZERO {NULL, NULL}
+ typedef GX_StateTable_Entry_Load_FuncsRec GX_XStateTable_Entry_Load_FuncsRec;
+ typedef GX_StateTable_Entry_Load_Funcs GX_XStateTable_Entry_Load_Funcs;
+ typedef GX_StateTable_Entry_Loader GX_XStateTable_Entry_Loader;
+ typedef GX_StateTable_Entry_Finalizer GX_XStateTable_Entry_Finalizer;
+ typedef GX_StateTable_Entry_Action GX_XStateTable_Entry_Action;
+
+ FT_LOCAL ( FT_Error )
+ gx_face_load_XStateTable ( GX_Face face,
+ FT_Stream stream,
+ GX_XStateTable state_table,
+ GX_XStateTable_Entry_Load_Funcs funcs,
+ FT_Pointer user );
+
+ FT_LOCAL ( FT_Error )
+ gx_XStateTable_traverse_entries( GX_XStateTable state_table,
+ GX_XStateTable_Entry_Action action,
+ FT_Pointer user );
+
+ FT_LOCAL ( void )
+ gx_XStateTable_free ( GX_XStateTable state_table,
+ FT_Memory memory,
+ GX_XStateTable_Entry_Finalizer finalizer,
+ FT_Pointer user );
+
+ FT_LOCAL ( FT_UShort )
+ gx_XStateTable_get_class ( GX_XStateTable state_table,
+ FT_UShort glyph );
+
+ FT_LOCAL ( GX_EntrySubtable )
+ gx_XStateTable_get_entry_subtable ( GX_XStateTable state_table,
+ FT_UShort current_state,
+ FT_UShort class_code );
+
+FT_END_HEADER
+
+#endif /* Not def: __GXSTATETBL_H_ */
+
+/* END */