Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(473)

Side by Side Diff: third_party/harfbuzz-ng/src/hb-buffer-serialize.cc

Issue 1408003004: Roll harfbuzz-ng to 1.0.5 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2526
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright © 2012,2013 Google, Inc. 2 * Copyright © 2012,2013 Google, Inc.
3 * 3 *
4 * This is part of HarfBuzz, a text shaping library. 4 * This is part of HarfBuzz, a text shaping library.
5 * 5 *
6 * Permission is hereby granted, without written agreement and without 6 * Permission is hereby granted, without written agreement and without
7 * license or royalty fees, to use, copy, modify, and distribute this 7 * license or royalty fees, to use, copy, modify, and distribute this
8 * software and its documentation for any purpose, provided that the 8 * software and its documentation for any purpose, provided that the
9 * above copyright notice and the following two paragraphs appear in 9 * above copyright notice and the following two paragraphs appear in
10 * all copies of this software. 10 * all copies of this software.
(...skipping 22 matching lines...) Expand all
33 NULL 33 NULL
34 }; 34 };
35 35
36 /** 36 /**
37 * hb_buffer_serialize_list_formats: 37 * hb_buffer_serialize_list_formats:
38 * 38 *
39 * 39 *
40 * 40 *
41 * Return value: (transfer none): 41 * Return value: (transfer none):
42 * 42 *
43 * Since: 1.0 43 * Since: 0.9.2
44 **/ 44 **/
45 const char ** 45 const char **
46 hb_buffer_serialize_list_formats (void) 46 hb_buffer_serialize_list_formats (void)
47 { 47 {
48 return serialize_formats; 48 return serialize_formats;
49 } 49 }
50 50
51 /** 51 /**
52 * hb_buffer_serialize_format_from_string: 52 * hb_buffer_serialize_format_from_string:
53 * @str: 53 * @str:
54 * @len: 54 * @len:
55 * 55 *
56 * 56 *
57 * 57 *
58 * Return value: 58 * Return value:
59 * 59 *
60 * Since: 1.0 60 * Since: 0.9.2
61 **/ 61 **/
62 hb_buffer_serialize_format_t 62 hb_buffer_serialize_format_t
63 hb_buffer_serialize_format_from_string (const char *str, int len) 63 hb_buffer_serialize_format_from_string (const char *str, int len)
64 { 64 {
65 /* Upper-case it. */ 65 /* Upper-case it. */
66 return (hb_buffer_serialize_format_t) (hb_tag_from_string (str, len) & ~0x2020 2020u); 66 return (hb_buffer_serialize_format_t) (hb_tag_from_string (str, len) & ~0x2020 2020u);
67 } 67 }
68 68
69 /** 69 /**
70 * hb_buffer_serialize_format_to_string: 70 * hb_buffer_serialize_format_to_string:
71 * @format: 71 * @format:
72 * 72 *
73 * 73 *
74 * 74 *
75 * Return value: 75 * Return value:
76 * 76 *
77 * Since: 1.0 77 * Since: 0.9.2
78 **/ 78 **/
79 const char * 79 const char *
80 hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format) 80 hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format)
81 { 81 {
82 switch (format) 82 switch (format)
83 { 83 {
84 case HB_BUFFER_SERIALIZE_FORMAT_TEXT: return serialize_formats[0]; 84 case HB_BUFFER_SERIALIZE_FORMAT_TEXT: return serialize_formats[0];
85 case HB_BUFFER_SERIALIZE_FORMAT_JSON: return serialize_formats[1]; 85 case HB_BUFFER_SERIALIZE_FORMAT_JSON: return serialize_formats[1];
86 default: 86 default:
87 case HB_BUFFER_SERIALIZE_FORMAT_INVALID: return NULL; 87 case HB_BUFFER_SERIALIZE_FORMAT_INVALID: return NULL;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 } 138 }
139 139
140 if (!(flags & HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS)) 140 if (!(flags & HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS))
141 { 141 {
142 p += snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"dx\":%d,\"dy\":%d", 142 p += snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"dx\":%d,\"dy\":%d",
143 pos[i].x_offset, pos[i].y_offset); 143 pos[i].x_offset, pos[i].y_offset);
144 p += snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"ax\":%d,\"ay\":%d", 144 p += snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"ax\":%d,\"ay\":%d",
145 pos[i].x_advance, pos[i].y_advance); 145 pos[i].x_advance, pos[i].y_advance);
146 } 146 }
147 147
148 if (flags & HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS)
149 {
150 hb_glyph_extents_t extents;
151 hb_font_get_glyph_extents(font, info[i].codepoint, &extents);
152 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"xb\":%d,\"yb\":% d",
153 extents.x_bearing, extents.y_bearing));
154 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"w\":%d,\"h\":%d" ,
155 extents.width, extents.height));
156 }
157
148 *p++ = '}'; 158 *p++ = '}';
149 159
150 unsigned int l = p - b; 160 unsigned int l = p - b;
151 if (buf_size > l) 161 if (buf_size > l)
152 { 162 {
153 memcpy (buf, b, l); 163 memcpy (buf, b, l);
154 buf += l; 164 buf += l;
155 buf_size -= l; 165 buf_size -= l;
156 *buf_consumed += l; 166 *buf_consumed += l;
157 *buf = '\0'; 167 *buf = '\0';
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 { 213 {
204 if (pos[i].x_offset || pos[i].y_offset) 214 if (pos[i].x_offset || pos[i].y_offset)
205 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "@%d,%d", pos[i].x _offset, pos[i].y_offset)); 215 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "@%d,%d", pos[i].x _offset, pos[i].y_offset));
206 216
207 *p++ = '+'; 217 *p++ = '+';
208 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "%d", pos[i].x_advan ce)); 218 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "%d", pos[i].x_advan ce));
209 if (pos[i].y_advance) 219 if (pos[i].y_advance)
210 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",%d", pos[i].y_ad vance)); 220 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",%d", pos[i].y_ad vance));
211 } 221 }
212 222
223 if (flags & HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS)
224 {
225 hb_glyph_extents_t extents;
226 hb_font_get_glyph_extents(font, info[i].codepoint, &extents);
227 p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "<%d,%d,%d,%d>", ext ents.x_bearing, extents.y_bearing, extents.width, extents.height));
228 }
229
213 unsigned int l = p - b; 230 unsigned int l = p - b;
214 if (buf_size > l) 231 if (buf_size > l)
215 { 232 {
216 memcpy (buf, b, l); 233 memcpy (buf, b, l);
217 buf += l; 234 buf += l;
218 buf_size -= l; 235 buf_size -= l;
219 *buf_consumed += l; 236 *buf_consumed += l;
220 *buf = '\0'; 237 *buf = '\0';
221 } else 238 } else
222 return i - start; 239 return i - start;
(...skipping 12 matching lines...) Expand all
235 * @buf_size: 252 * @buf_size:
236 * @buf_consumed: (out): 253 * @buf_consumed: (out):
237 * @font: 254 * @font:
238 * @format: 255 * @format:
239 * @flags: 256 * @flags:
240 * 257 *
241 * 258 *
242 * 259 *
243 * Return value: 260 * Return value:
244 * 261 *
245 * Since: 1.0 262 * Since: 0.9.2
246 **/ 263 **/
247 unsigned int 264 unsigned int
248 hb_buffer_serialize_glyphs (hb_buffer_t *buffer, 265 hb_buffer_serialize_glyphs (hb_buffer_t *buffer,
249 unsigned int start, 266 unsigned int start,
250 unsigned int end, 267 unsigned int end,
251 char *buf, 268 char *buf,
252 unsigned int buf_size, 269 unsigned int buf_size,
253 unsigned int *buf_consumed, /* May be NULL */ 270 unsigned int *buf_consumed, /* May be NULL */
254 hb_font_t *font, /* May be NULL */ 271 hb_font_t *font, /* May be NULL */
255 hb_buffer_serialize_format_t format, 272 hb_buffer_serialize_format_t format,
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 * @buf: (array length=buf_len): 359 * @buf: (array length=buf_len):
343 * @buf_len: 360 * @buf_len:
344 * @end_ptr: (out): 361 * @end_ptr: (out):
345 * @font: 362 * @font:
346 * @format: 363 * @format:
347 * 364 *
348 * 365 *
349 * 366 *
350 * Return value: 367 * Return value:
351 * 368 *
352 * Since: 1.0 369 * Since: 0.9.2
353 **/ 370 **/
354 hb_bool_t 371 hb_bool_t
355 hb_buffer_deserialize_glyphs (hb_buffer_t *buffer, 372 hb_buffer_deserialize_glyphs (hb_buffer_t *buffer,
356 const char *buf, 373 const char *buf,
357 int buf_len, /* -1 means nul-terminated */ 374 int buf_len, /* -1 means nul-terminated */
358 const char **end_ptr, /* May be NULL */ 375 const char **end_ptr, /* May be NULL */
359 hb_font_t *font, /* May be NULL */ 376 hb_font_t *font, /* May be NULL */
360 hb_buffer_serialize_format_t format) 377 hb_buffer_serialize_format_t format)
361 { 378 {
362 const char *end; 379 const char *end;
(...skipping 29 matching lines...) Expand all
392 return _hb_buffer_deserialize_glyphs_json (buffer, 409 return _hb_buffer_deserialize_glyphs_json (buffer,
393 buf, buf_len, end_ptr, 410 buf, buf_len, end_ptr,
394 font); 411 font);
395 412
396 default: 413 default:
397 case HB_BUFFER_SERIALIZE_FORMAT_INVALID: 414 case HB_BUFFER_SERIALIZE_FORMAT_INVALID:
398 return false; 415 return false;
399 416
400 } 417 }
401 } 418 }
OLDNEW
« no previous file with comments | « third_party/harfbuzz-ng/src/hb-buffer-private.hh ('k') | third_party/harfbuzz-ng/src/hb-common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698