| 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);
|
|
|