diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-07 00:44:49 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-07 00:44:49 +0000 |
commit | 83f6e08f4c56ef411ad1da5f3bfd4711ec94b052 (patch) | |
tree | 6bf8e871963cfc1ab8bf6190dceed5b9631cf8ee /third_party/harfbuzz/src/harfbuzz-buffer.h | |
parent | d5c0e0e416a67e7e8dd98745cdf1bdc7de20517c (diff) | |
download | chromium_src-83f6e08f4c56ef411ad1da5f3bfd4711ec94b052.zip chromium_src-83f6e08f4c56ef411ad1da5f3bfd4711ec94b052.tar.gz chromium_src-83f6e08f4c56ef411ad1da5f3bfd4711ec94b052.tar.bz2 |
Add Harfbuzz to third_party and Skia support for such.
Harfbuzz is an open source library which is a unification of the Qt
and Pango shaping engines. We'll be using it on Chromium Linux to
perform complex text shaping.
Additionally, we add support for Harfbuzz into Skia, guarded by
SKIA_HARFBUZZ.
http://codereview.chromium.org/63035/show
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13214 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/harfbuzz/src/harfbuzz-buffer.h')
-rw-r--r-- | third_party/harfbuzz/src/harfbuzz-buffer.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/third_party/harfbuzz/src/harfbuzz-buffer.h b/third_party/harfbuzz/src/harfbuzz-buffer.h new file mode 100644 index 0000000..b134407 --- /dev/null +++ b/third_party/harfbuzz/src/harfbuzz-buffer.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 1998-2004 David Turner and Werner Lemberg + * Copyright (C) 2004,2007 Red Hat, Inc. + * + * This is part of HarfBuzz, an OpenType Layout engine library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + */ + +#ifndef HARFBUZZ_BUFFER_H +#define HARFBUZZ_BUFFER_H + +#include "harfbuzz-global.h" + +HB_BEGIN_HEADER + +typedef struct HB_GlyphItemRec_ { + HB_UInt gindex; + HB_UInt properties; + HB_UInt cluster; + HB_UShort component; + HB_UShort ligID; + HB_UShort gproperties; +} HB_GlyphItemRec, *HB_GlyphItem; + +typedef struct HB_PositionRec_ { + HB_Fixed x_pos; + HB_Fixed y_pos; + HB_Fixed x_advance; + HB_Fixed y_advance; + HB_UShort back; /* number of glyphs to go back + for drawing current glyph */ + HB_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. */ + HB_Short cursive_chain; /* character to which this connects, + may be positive or negative; used + only internally */ +} HB_PositionRec, *HB_Position; + + +typedef struct HB_BufferRec_{ + HB_UInt allocated; + + HB_UInt in_length; + HB_UInt out_length; + HB_UInt in_pos; + HB_UInt out_pos; + + HB_Bool separate_out; + HB_GlyphItem in_string; + HB_GlyphItem out_string; + HB_GlyphItem alt_string; + HB_Position positions; + HB_UShort max_ligID; +} HB_BufferRec, *HB_Buffer; + +HB_Error +hb_buffer_new( HB_Buffer *buffer ); + +void +hb_buffer_free( HB_Buffer buffer ); + +void +hb_buffer_clear( HB_Buffer buffer ); + +HB_Error +hb_buffer_add_glyph( HB_Buffer buffer, + HB_UInt glyph_index, + HB_UInt properties, + HB_UInt cluster ); + +HB_END_HEADER + +#endif /* HARFBUZZ_BUFFER_H */ |