summaryrefslogtreecommitdiff
path: root/trunk/pango/opentype/harfbuzz-buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/pango/opentype/harfbuzz-buffer.h')
-rw-r--r--trunk/pango/opentype/harfbuzz-buffer.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/trunk/pango/opentype/harfbuzz-buffer.h b/trunk/pango/opentype/harfbuzz-buffer.h
new file mode 100644
index 00000000..c7478e38
--- /dev/null
+++ b/trunk/pango/opentype/harfbuzz-buffer.h
@@ -0,0 +1,106 @@
+/* harfbuzz-buffer.h: Buffer of glyphs for substitution/positioning
+ *
+ * Copyrigh 2004 Red Hat Software
+ *
+ * Portions Copyright 1996-2000 by
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
+ *
+ * This file is part of the FreeType project, and 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.
+ */
+#ifndef HARFBUZZ_BUFFER_H
+#define HARFBUZZ_BUFFER_H
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+FT_BEGIN_HEADER
+
+#define HB_GLYPH_PROPERTIES_UNKNOWN 0xFFFF
+
+typedef struct HB_GlyphItemRec_ {
+ FT_UInt gindex;
+ FT_UInt properties;
+ FT_UInt cluster;
+ FT_UShort component;
+ FT_UShort ligID;
+ FT_UShort gproperties;
+} HB_GlyphItemRec, *HB_GlyphItem;
+
+typedef struct HB_PositionRec_ {
+ FT_Pos x_pos;
+ FT_Pos y_pos;
+ FT_Pos x_advance;
+ FT_Pos y_advance;
+ FT_UShort back; /* number of glyphs to go back
+ for drawing current glyph */
+ FT_Bool new_advance; /* if set, the advance width values are
+ absolute, i.e., they won't be
+ added to the original glyph's value
+ but rather replace them. */
+ FT_Short cursive_chain; /* character to which this connects,
+ may be positive or negative; used
+ only internally */
+} HB_PositionRec, *HB_Position;
+
+
+typedef struct HB_BufferRec_{
+ FT_Memory memory;
+ FT_ULong allocated;
+
+ FT_ULong in_length;
+ FT_ULong out_length;
+ FT_ULong in_pos;
+ FT_ULong out_pos;
+
+ HB_GlyphItem in_string;
+ HB_GlyphItem out_string;
+ HB_Position positions;
+ FT_UShort max_ligID;
+} HB_BufferRec, *HB_Buffer;
+
+FT_Error
+hb_buffer_new( FT_Memory memory,
+ HB_Buffer *buffer );
+
+FT_Error
+hb_buffer_swap( HB_Buffer buffer );
+
+FT_Error
+hb_buffer_free( HB_Buffer buffer );
+
+FT_Error
+hb_buffer_clear( HB_Buffer buffer );
+
+FT_Error
+hb_buffer_add_glyph( HB_Buffer buffer,
+ FT_UInt glyph_index,
+ FT_UInt properties,
+ FT_UInt cluster );
+
+FT_Error
+hb_buffer_add_output_glyphs( HB_Buffer buffer,
+ FT_UShort num_in,
+ FT_UShort num_out,
+ FT_UShort *glyph_data,
+ FT_UShort component,
+ FT_UShort ligID );
+
+FT_Error
+hb_buffer_add_output_glyph ( HB_Buffer buffer,
+ FT_UInt glyph_index,
+ FT_UShort component,
+ FT_UShort ligID );
+
+FT_Error
+hb_buffer_copy_output_glyph ( HB_Buffer buffer );
+
+FT_UShort
+hb_buffer_allocate_ligid( HB_Buffer buffer );
+
+FT_END_HEADER
+
+#endif /* HARFBUZZ_BUFFER_H */