OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 1998-2004 David Turner and Werner Lemberg | 2 * Copyright © 1998-2004 David Turner and Werner Lemberg |
3 * Copyright © 2006 Behdad Esfahbod | 3 * Copyright © 2006 Behdad Esfahbod |
4 * Copyright © 2007,2008,2009 Red Hat, Inc. | 4 * Copyright © 2007,2008,2009 Red Hat, Inc. |
5 * | 5 * |
6 * This is part of HarfBuzz, a text shaping library. | 6 * This is part of HarfBuzz, a text shaping library. |
7 * | 7 * |
8 * Permission is hereby granted, without written agreement and without | 8 * Permission is hereby granted, without written agreement and without |
9 * license or royalty fees, to use, copy, modify, and distribute this | 9 * license or royalty fees, to use, copy, modify, and distribute this |
10 * software and its documentation for any purpose, provided that the | 10 * software and its documentation for any purpose, provided that the |
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 { | 453 { |
454 GSUB::substitute_start (buffer); | 454 GSUB::substitute_start (buffer); |
455 } | 455 } |
456 | 456 |
457 hb_bool_t | 457 hb_bool_t |
458 hb_ot_layout_substitute_lookup (hb_face_t *face, | 458 hb_ot_layout_substitute_lookup (hb_face_t *face, |
459 hb_buffer_t *buffer, | 459 hb_buffer_t *buffer, |
460 unsigned int lookup_index, | 460 unsigned int lookup_index, |
461 hb_mask_t mask) | 461 hb_mask_t mask) |
462 { | 462 { |
463 return _get_gsub (face).substitute_lookup (face, buffer, lookup_index, mask); | 463 hb_apply_context_t c (NULL, face, buffer, mask); |
| 464 return _get_gsub (face).substitute_lookup (&c, lookup_index); |
464 } | 465 } |
465 | 466 |
466 void | 467 void |
467 hb_ot_layout_substitute_finish (hb_buffer_t *buffer HB_UNUSED) | 468 hb_ot_layout_substitute_finish (hb_buffer_t *buffer HB_UNUSED) |
468 { | 469 { |
469 GSUB::substitute_finish (buffer); | 470 GSUB::substitute_finish (buffer); |
470 } | 471 } |
471 | 472 |
| 473 void |
| 474 hb_ot_layout_substitute_closure_lookup (hb_face_t *face, |
| 475 hb_set_t *glyphs, |
| 476 unsigned int lookup_index) |
| 477 { |
| 478 hb_closure_context_t c (face, glyphs); |
| 479 _get_gsub (face).closure_lookup (&c, lookup_index); |
| 480 } |
472 | 481 |
473 /* | 482 /* |
474 * GPOS | 483 * GPOS |
475 */ | 484 */ |
476 | 485 |
477 hb_bool_t | 486 hb_bool_t |
478 hb_ot_layout_has_positioning (hb_face_t *face) | 487 hb_ot_layout_has_positioning (hb_face_t *face) |
479 { | 488 { |
480 return &_get_gpos (face) != &Null(GPOS); | 489 return &_get_gpos (face) != &Null(GPOS); |
481 } | 490 } |
482 | 491 |
483 void | 492 void |
484 hb_ot_layout_position_start (hb_buffer_t *buffer) | 493 hb_ot_layout_position_start (hb_buffer_t *buffer) |
485 { | 494 { |
486 GPOS::position_start (buffer); | 495 GPOS::position_start (buffer); |
487 } | 496 } |
488 | 497 |
489 hb_bool_t | 498 hb_bool_t |
490 hb_ot_layout_position_lookup (hb_font_t *font, | 499 hb_ot_layout_position_lookup (hb_font_t *font, |
491 hb_buffer_t *buffer, | 500 hb_buffer_t *buffer, |
492 unsigned int lookup_index, | 501 unsigned int lookup_index, |
493 hb_mask_t mask) | 502 hb_mask_t mask) |
494 { | 503 { |
495 return _get_gpos (font->face).position_lookup (font, buffer, lookup_index, mas
k); | 504 hb_apply_context_t c (font, font->face, buffer, mask); |
| 505 return _get_gpos (font->face).position_lookup (&c, lookup_index); |
496 } | 506 } |
497 | 507 |
498 void | 508 void |
499 hb_ot_layout_position_finish (hb_buffer_t *buffer) | 509 hb_ot_layout_position_finish (hb_buffer_t *buffer) |
500 { | 510 { |
501 GPOS::position_finish (buffer); | 511 GPOS::position_finish (buffer); |
502 } | 512 } |
503 | 513 |
504 | 514 |
OLD | NEW |