2006-03-31 14:28:09 +02:00
|
|
|
/* harfbuzz-buffer.h: Buffer of glyphs for substitution/positioning
|
|
|
|
*
|
2007-10-11 10:30:50 +02:00
|
|
|
* Copyright 2004,7 Red Hat Software
|
2006-03-31 14:28:09 +02:00
|
|
|
*
|
|
|
|
* 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
|
|
|
|
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_BEGIN_HEADER
|
2006-03-31 14:28:09 +02:00
|
|
|
|
|
|
|
typedef struct HB_GlyphItemRec_ {
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_UInt gindex;
|
|
|
|
HB_UInt properties;
|
|
|
|
HB_UInt cluster;
|
|
|
|
HB_UShort component;
|
|
|
|
HB_UShort ligID;
|
|
|
|
HB_UShort gproperties;
|
2006-03-31 14:28:09 +02:00
|
|
|
} HB_GlyphItemRec, *HB_GlyphItem;
|
|
|
|
|
|
|
|
typedef struct HB_PositionRec_ {
|
|
|
|
FT_Pos x_pos;
|
|
|
|
FT_Pos y_pos;
|
|
|
|
FT_Pos x_advance;
|
|
|
|
FT_Pos y_advance;
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_UShort back; /* number of glyphs to go back
|
2006-03-31 14:28:09 +02:00
|
|
|
for drawing current glyph */
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_Bool new_advance; /* if set, the advance width values are
|
2006-03-31 14:28:09 +02:00
|
|
|
absolute, i.e., they won't be
|
|
|
|
added to the original glyph's value
|
|
|
|
but rather replace them. */
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_Short cursive_chain; /* character to which this connects,
|
2006-03-31 14:28:09 +02:00
|
|
|
may be positive or negative; used
|
|
|
|
only internally */
|
|
|
|
} HB_PositionRec, *HB_Position;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct HB_BufferRec_{
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_UInt allocated;
|
2006-03-31 14:28:09 +02:00
|
|
|
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_UInt in_length;
|
|
|
|
HB_UInt out_length;
|
|
|
|
HB_UInt in_pos;
|
|
|
|
HB_UInt out_pos;
|
2006-03-31 14:28:09 +02:00
|
|
|
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_Bool separate_out;
|
2006-03-31 14:28:09 +02:00
|
|
|
HB_GlyphItem in_string;
|
|
|
|
HB_GlyphItem out_string;
|
2007-10-11 02:07:58 +02:00
|
|
|
HB_GlyphItem alt_string;
|
2006-03-31 14:28:09 +02:00
|
|
|
HB_Position positions;
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_UShort max_ligID;
|
2006-03-31 14:28:09 +02:00
|
|
|
} HB_BufferRec, *HB_Buffer;
|
|
|
|
|
2007-10-11 02:07:58 +02:00
|
|
|
HB_Error
|
2007-10-11 08:52:07 +02:00
|
|
|
hb_buffer_new( HB_Buffer *buffer );
|
2006-03-31 14:28:09 +02:00
|
|
|
|
2007-10-11 02:07:58 +02:00
|
|
|
void
|
2006-03-31 14:28:09 +02:00
|
|
|
hb_buffer_free( HB_Buffer buffer );
|
|
|
|
|
2007-10-11 02:07:58 +02:00
|
|
|
void
|
2006-03-31 14:28:09 +02:00
|
|
|
hb_buffer_clear( HB_Buffer buffer );
|
|
|
|
|
2007-10-11 02:07:58 +02:00
|
|
|
HB_Error
|
2006-03-31 14:28:09 +02:00
|
|
|
hb_buffer_add_glyph( HB_Buffer buffer,
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_UInt glyph_index,
|
|
|
|
HB_UInt properties,
|
|
|
|
HB_UInt cluster );
|
2006-03-31 14:28:09 +02:00
|
|
|
|
2007-10-25 00:44:47 +02:00
|
|
|
HB_END_HEADER
|
2006-03-31 14:28:09 +02:00
|
|
|
|
|
|
|
#endif /* HARFBUZZ_BUFFER_H */
|