| Index: third_party/harfbuzz-ng/src/hb-fallback-shape.cc
|
| diff --git a/third_party/harfbuzz-ng/src/hb-shape.cc b/third_party/harfbuzz-ng/src/hb-fallback-shape.cc
|
| similarity index 50%
|
| copy from third_party/harfbuzz-ng/src/hb-shape.cc
|
| copy to third_party/harfbuzz-ng/src/hb-fallback-shape.cc
|
| index a73977b46dacfd772486a6f27944c2c54f7ed8b1..2fd527f05f31ecb63939ec1d45020bcab6069ced 100644
|
| --- a/third_party/harfbuzz-ng/src/hb-shape.cc
|
| +++ b/third_party/harfbuzz-ng/src/hb-fallback-shape.cc
|
| @@ -1,5 +1,5 @@
|
| /*
|
| - * Copyright (C) 2009 Red Hat, Inc.
|
| + * Copyright © 2011 Google, Inc.
|
| *
|
| * This is part of HarfBuzz, a text shaping library.
|
| *
|
| @@ -21,45 +21,42 @@
|
| * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
| * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
| *
|
| - * Red Hat Author(s): Behdad Esfahbod
|
| + * Google Author(s): Behdad Esfahbod
|
| */
|
|
|
| -#include "hb-private.h"
|
| -
|
| -#include "hb-shape.h"
|
| +#include "hb-fallback-shape-private.hh"
|
|
|
| #include "hb-buffer-private.hh"
|
|
|
| -#include "hb-ot-shape.h"
|
| +hb_bool_t
|
| +hb_fallback_shape (hb_font_t *font,
|
| + hb_buffer_t *buffer,
|
| + const hb_feature_t *features,
|
| + unsigned int num_features,
|
| + const char * const *shaper_options)
|
| +{
|
| + buffer->guess_properties ();
|
|
|
| -#ifdef HAVE_GRAPHITE
|
| -#include "hb-graphite.h"
|
| -#endif
|
| + unsigned int count = buffer->len;
|
|
|
| -HB_BEGIN_DECLS
|
| + for (unsigned int i = 0; i < count; i++)
|
| + hb_font_get_glyph (font, buffer->info[i].codepoint, 0, &buffer->info[i].codepoint);
|
|
|
| + buffer->clear_positions ();
|
|
|
| -void
|
| -hb_shape (hb_font_t *font,
|
| - hb_face_t *face,
|
| - hb_buffer_t *buffer,
|
| - hb_feature_t *features,
|
| - unsigned int num_features)
|
| -{
|
| -#if 0 && defined(HAVE_GRAPHITE)
|
| - hb_blob_t *silf_blob;
|
| - silf_blob = hb_face_get_table (face, HB_GRAPHITE_TAG_Silf);
|
| - if (hb_blob_get_length(silf_blob))
|
| - {
|
| - hb_graphite_shape(font, face, buffer, features, num_features);
|
| - hb_blob_destroy(silf_blob);
|
| - return;
|
| + for (unsigned int i = 0; i < count; i++) {
|
| + hb_font_get_glyph_advance_for_direction (font, buffer->info[i].codepoint,
|
| + buffer->props.direction,
|
| + &buffer->pos[i].x_advance,
|
| + &buffer->pos[i].y_advance);
|
| + hb_font_subtract_glyph_origin_for_direction (font, buffer->info[i].codepoint,
|
| + buffer->props.direction,
|
| + &buffer->pos[i].x_offset,
|
| + &buffer->pos[i].y_offset);
|
| }
|
| - hb_blob_destroy(silf_blob);
|
| -#endif
|
| -
|
| - hb_ot_shape (font, face, buffer, features, num_features);
|
| -}
|
|
|
| + if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction))
|
| + hb_buffer_reverse (buffer);
|
|
|
| -HB_END_DECLS
|
| + return TRUE;
|
| +}
|
|
|