Index: third_party/harfbuzz/src/harfbuzz-shape.h |
diff --git a/third_party/harfbuzz/src/harfbuzz-shape.h b/third_party/harfbuzz/src/harfbuzz-shape.h |
deleted file mode 100644 |
index e4b5f9ad8af1f4f0cddac6be8291961a0d59b7af..0000000000000000000000000000000000000000 |
--- a/third_party/harfbuzz/src/harfbuzz-shape.h |
+++ /dev/null |
@@ -1,199 +0,0 @@ |
-/* |
- * Copyright (C) 2006 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 |
- */ |
- |
-#include <stdint.h> |
- |
-/* Base Types */ |
- |
-typedef hb_uint16 HB_CodePoint; /* UTF-16 codepoint (not character ) */ |
-typedef char HB_Boolean; |
-typedef hb_uint32 HB_Fixed; /* 26.6 */ |
-typedef hb_uint32 HB_Glyph; |
-typedef hb_uint32 HB_Unichar; |
- |
-/* Metrics reported by the font backend for use of the shaper */ |
-typedef struct _HB_GlyphMetrics HB_GlyphMetrics; |
-struct _HB_GlyphMetrics |
-{ |
- HB_Fixed advance; |
- |
- /* Do we need ink/logical extents for the glyph here? */ |
-}; |
- |
-/* |
- * HB_Font: Abstract font interface. |
- * First pass of this might just have FT_Face *getFace(); |
- */ |
-typedef struct _HB_Font HB_Font; |
-typedef struct _HB_FontClass HB_FontClass; |
- |
-struct HB_FontClass { |
- HB_Glyph (*charToGlyph)(HB_Font *font, HB_Unichar chr); |
- void (*getMetrics)(HB_Font *font, HB_Glyph glyph, HB_GlyphMetrics *metrics); |
- HB_Boolean (*getSFontTable)(HB_Font *font, void **cookie, char **start, int *len); |
- HB_Boolean (*freeSFontTable)(void **cookie); |
-}; |
- |
-struct _HB_Font { |
- HB_FontClass *clazz; |
-}; |
- |
-/* |
- * Language tags, of the form en-us; represented as interned, canonicalized |
- * strings. hb_language_from_string("en_US"), hb_language_from_string("en-us") |
- * both return the same (pointer-comparable) HB_Language). |
- */ |
-typedef struct HB_Language_ *HB_Language; |
- |
-HB_Language hb_language_from_string(const char *str); |
-const char *hb_language_to_string(HB_Language language); |
- |
-/* Special treatment for the edges of runs. |
- */ |
-typedef enum { |
- HB_RUN_EDGE_LINE_VISUAL_EDGE = 1 << 0, |
- HB_RUN_EDGE_LINE_LOGICAL_EDGE = 1 << 1, |
- HB_RUN_EDGE_LINE_ADD_HYPHEN = 1 << 2 /* ???? */ |
-} HB_RunEdge; |
- |
-/* Defines optional informaiton in HB_ShapeInput; this allows extension |
- * of HB_ShapeInput while keeping binary compatibility |
- */ |
-typedef enum { |
- HB_SHAPE_START_TYPE = 1 << 0, |
- HB_SHAPE_END_TYPE = 1 << 1 |
-} HB_ShapeFlags; |
- |
-/* Attributes types are described by "interned strings"; this is a little |
- * annoying if you want to write a switch statement, but keeps things |
- * simple. |
- */ |
-typedef struct _HB_AttributeType *HB_AttributeType; |
- |
-HB_AttributeType hb_attribute_type_from_string(const char *str); |
-const char *hb_attribute_type_to_string(HB_AttributeType attribute_type); |
- |
-struct HB_Attribute { |
- HB_AttributeType type; |
- int start; |
- int end; |
-}; |
- |
- |
-/** |
- * You could handle this like HB_Language, but an enum seems a little nicer; |
- * another approach would be to use OpenType script tags. |
- */ |
-typedef enum { |
- HB_SCRIPT_LATIN |
- /* ... */ |
-} HB_ShapeScript; |
- |
-/* This is just the subset of direction information needed by the shaper */ |
-typedef enum { |
- HB_DIRECTION_LTR, |
- HB_DIRECTION_RTL, |
- HB_DIRECTION_TTB |
-} HB_Direction; |
- |
-typedef struct _HB_ShapeInput HB_ShapeInput; |
-struct _HB_ShapeInput { |
- /* Defines what fields the caller has initialized - fields not in |
- * the enum are mandatory. |
- */ |
- HB_ShapeFlags flags; |
- |
- HB_CodePoint *text; |
- int length; /* total length of text to shape */ |
- int shape_offset; /* start of section to shape */ |
- int shape_length; /* number of code points to shape */ |
- |
- HB_Direction direction; |
- HB_ShapeScript script; |
- HB_Language language; |
- |
- HB_AttributeType *attributes; |
- int n_attributes; |
- |
- HB_RunEdge start_type; |
- HB_RunEdge end_type; |
-}; |
- |
-struct HB_GlyphItem { |
- HB_Glyph glyph; |
- |
- HB_Fixed x_offset; |
- HB_Fixed y_offset; |
- HB_Fixed advance; |
- |
- /* Add kashida information, etc, here */ |
-}; |
- |
-typedef enum { |
- HB_RESULT_SUCCESS, |
- HB_RESULT_NO_MEMORY, |
- HB_SHAPE_RESULT_FAILED |
-} HB_Result; |
- |
-/* |
- * Buffer for output |
- */ |
-typedef struct _HB_GlyphBuffer HB_GlyphBuffer; |
-struct _HB_GlyphBuffer { |
- int glyph_item_size; |
- int total_glyphs; |
- |
- int *log_clusters; /* Uniscribe style */ |
- int cluster_space; |
- |
- int glyph_space; |
- void *glyph_buffer; |
-}; |
- |
-/* Making this self-allocating simplifies writing shapers and |
- * also keeps things easier for caller. item_size passed in |
- * must be at least sizeof(HB_GlyphItem) but can be bigger, |
- * to accomodate application structures that extend HB_GlyphItem. |
- * The allocated items will be zero-initialized. |
- * |
- * (Hack: Harfbuzz could choose to use even a *bigger* item size |
- * and stick internal information before the public item structure. |
- * This hack could possibly be used to unify this with HB_Buffer) |
- */ |
-HB_GlyphBuffer *hb_glyph_buffer_new (size_t item_size); |
-void hb_glyph_buffer_clear (HB_GlyphBuffer *buf); |
-HB_Result hb_glyph_buffer_extend_glyphs (HB_GlyphBuffer *buf, int n_items); |
-HB_Result hb_glyph_buffer_extend_clusters (HB_GlyphBuffer *buf, int n_clusters); |
-void hb_glyph_buffer_free (HB_GlyphBuffer *buf); |
- |
- |
-/* Accessor for a particular glyph */ |
-#define HB_GLYPH_BUFFER_ITEM(buffer, index) |
- |
-/* |
- * Main shaping function |
- */ |
-HB_Result hb_shape(HB_ShapeInput *input, HB_GlyphBuffer *output); |