| Index: third_party/harfbuzz-ng/src/hb-buffer-serialize.cc
|
| diff --git a/third_party/harfbuzz-ng/src/hb-buffer-serialize.cc b/third_party/harfbuzz-ng/src/hb-buffer-serialize.cc
|
| index 8a22224a5a250ad1fb405aa85cdaf823ee1a7c7a..7839cbc3f060a857f56158f12780bb9835f72556 100644
|
| --- a/third_party/harfbuzz-ng/src/hb-buffer-serialize.cc
|
| +++ b/third_party/harfbuzz-ng/src/hb-buffer-serialize.cc
|
| @@ -40,7 +40,7 @@ static const char *serialize_formats[] = {
|
| *
|
| * Return value: (transfer none):
|
| *
|
| - * Since: 1.0
|
| + * Since: 0.9.2
|
| **/
|
| const char **
|
| hb_buffer_serialize_list_formats (void)
|
| @@ -57,7 +57,7 @@ hb_buffer_serialize_list_formats (void)
|
| *
|
| * Return value:
|
| *
|
| - * Since: 1.0
|
| + * Since: 0.9.2
|
| **/
|
| hb_buffer_serialize_format_t
|
| hb_buffer_serialize_format_from_string (const char *str, int len)
|
| @@ -74,7 +74,7 @@ hb_buffer_serialize_format_from_string (const char *str, int len)
|
| *
|
| * Return value:
|
| *
|
| - * Since: 1.0
|
| + * Since: 0.9.2
|
| **/
|
| const char *
|
| hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format)
|
| @@ -145,6 +145,16 @@ _hb_buffer_serialize_glyphs_json (hb_buffer_t *buffer,
|
| pos[i].x_advance, pos[i].y_advance);
|
| }
|
|
|
| + if (flags & HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS)
|
| + {
|
| + hb_glyph_extents_t extents;
|
| + hb_font_get_glyph_extents(font, info[i].codepoint, &extents);
|
| + p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"xb\":%d,\"yb\":%d",
|
| + extents.x_bearing, extents.y_bearing));
|
| + p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"w\":%d,\"h\":%d",
|
| + extents.width, extents.height));
|
| + }
|
| +
|
| *p++ = '}';
|
|
|
| unsigned int l = p - b;
|
| @@ -210,6 +220,13 @@ _hb_buffer_serialize_glyphs_text (hb_buffer_t *buffer,
|
| p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",%d", pos[i].y_advance));
|
| }
|
|
|
| + if (flags & HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS)
|
| + {
|
| + hb_glyph_extents_t extents;
|
| + hb_font_get_glyph_extents(font, info[i].codepoint, &extents);
|
| + p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "<%d,%d,%d,%d>", extents.x_bearing, extents.y_bearing, extents.width, extents.height));
|
| + }
|
| +
|
| unsigned int l = p - b;
|
| if (buf_size > l)
|
| {
|
| @@ -242,7 +259,7 @@ _hb_buffer_serialize_glyphs_text (hb_buffer_t *buffer,
|
| *
|
| * Return value:
|
| *
|
| - * Since: 1.0
|
| + * Since: 0.9.2
|
| **/
|
| unsigned int
|
| hb_buffer_serialize_glyphs (hb_buffer_t *buffer,
|
| @@ -349,7 +366,7 @@ parse_int (const char *pp, const char *end, int32_t *pv)
|
| *
|
| * Return value:
|
| *
|
| - * Since: 1.0
|
| + * Since: 0.9.2
|
| **/
|
| hb_bool_t
|
| hb_buffer_deserialize_glyphs (hb_buffer_t *buffer,
|
|
|