OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2011 Google, Inc. | 2 * Copyright © 2011 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 11 matching lines...) Expand all Loading... |
22 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | 22 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
23 * | 23 * |
24 * Google Author(s): Behdad Esfahbod | 24 * Google Author(s): Behdad Esfahbod |
25 */ | 25 */ |
26 | 26 |
27 #include "hb-fallback-shape-private.hh" | 27 #include "hb-fallback-shape-private.hh" |
28 | 28 |
29 #include "hb-buffer-private.hh" | 29 #include "hb-buffer-private.hh" |
30 | 30 |
31 hb_bool_t | 31 hb_bool_t |
32 hb_fallback_shape (hb_font_t *font, | 32 _hb_fallback_shape (hb_font_t *font, |
33 » » hb_buffer_t *buffer, | 33 » » hb_buffer_t *buffer, |
34 » » const hb_feature_t *features, | 34 » » const hb_feature_t *features HB_UNUSED, |
35 » » unsigned int num_features, | 35 » » unsigned int num_features HB_UNUSED) |
36 » » const char * const *shaper_options) | |
37 { | 36 { |
38 buffer->guess_properties (); | 37 buffer->guess_properties (); |
39 | 38 |
40 unsigned int count = buffer->len; | 39 unsigned int count = buffer->len; |
41 | 40 |
42 for (unsigned int i = 0; i < count; i++) | 41 for (unsigned int i = 0; i < count; i++) |
43 hb_font_get_glyph (font, buffer->info[i].codepoint, 0, &buffer->info[i].code
point); | 42 hb_font_get_glyph (font, buffer->info[i].codepoint, 0, &buffer->info[i].code
point); |
44 | 43 |
45 buffer->clear_positions (); | 44 buffer->clear_positions (); |
46 | 45 |
47 for (unsigned int i = 0; i < count; i++) { | 46 for (unsigned int i = 0; i < count; i++) { |
48 hb_font_get_glyph_advance_for_direction (font, buffer->info[i].codepoint, | 47 hb_font_get_glyph_advance_for_direction (font, buffer->info[i].codepoint, |
49 buffer->props.direction, | 48 buffer->props.direction, |
50 &buffer->pos[i].x_advance, | 49 &buffer->pos[i].x_advance, |
51 &buffer->pos[i].y_advance); | 50 &buffer->pos[i].y_advance); |
52 hb_font_subtract_glyph_origin_for_direction (font, buffer->info[i].codepoint
, | 51 hb_font_subtract_glyph_origin_for_direction (font, buffer->info[i].codepoint
, |
53 buffer->props.direction, | 52 buffer->props.direction, |
54 &buffer->pos[i].x_offset, | 53 &buffer->pos[i].x_offset, |
55 &buffer->pos[i].y_offset); | 54 &buffer->pos[i].y_offset); |
56 } | 55 } |
57 | 56 |
58 if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction)) | 57 if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction)) |
59 hb_buffer_reverse (buffer); | 58 hb_buffer_reverse (buffer); |
60 | 59 |
61 return TRUE; | 60 return TRUE; |
62 } | 61 } |
OLD | NEW |