OLD | NEW |
1 /* | 1 /* |
2 * Copyright © 2012 Google, Inc. | 2 * Copyright © 2012 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 17 matching lines...) Expand all Loading... |
28 #include "hb-shaper-private.hh" | 28 #include "hb-shaper-private.hh" |
29 #include "hb-font-private.hh" | 29 #include "hb-font-private.hh" |
30 #include "hb-buffer-private.hh" | 30 #include "hb-buffer-private.hh" |
31 | 31 |
32 | 32 |
33 #ifndef HB_DEBUG_SHAPE_PLAN | 33 #ifndef HB_DEBUG_SHAPE_PLAN |
34 #define HB_DEBUG_SHAPE_PLAN (HB_DEBUG+0) | 34 #define HB_DEBUG_SHAPE_PLAN (HB_DEBUG+0) |
35 #endif | 35 #endif |
36 | 36 |
37 | 37 |
38 #define HB_SHAPER_IMPLEMENT(shaper) \ | |
39 HB_SHAPER_DATA_ENSURE_DECLARE(shaper, face) \ | |
40 HB_SHAPER_DATA_ENSURE_DECLARE(shaper, font) | |
41 #include "hb-shaper-list.hh" | |
42 #undef HB_SHAPER_IMPLEMENT | |
43 | |
44 | |
45 static void | 38 static void |
46 hb_shape_plan_plan (hb_shape_plan_t *shape_plan, | 39 hb_shape_plan_plan (hb_shape_plan_t *shape_plan, |
47 const hb_feature_t *user_features, | 40 const hb_feature_t *user_features, |
48 unsigned int num_user_features, | 41 unsigned int num_user_features, |
49 const int *coords, | 42 const int *coords, |
50 unsigned int num_coords, | 43 unsigned int num_coords, |
51 const char * const *shaper_list) | 44 const char * const *shaper_list) |
52 { | 45 { |
53 DEBUG_MSG_FUNC (SHAPE_PLAN, shape_plan, | 46 DEBUG_MSG_FUNC (SHAPE_PLAN, shape_plan, |
54 "num_features=%d num_coords=%d shaper_list=%p", | 47 "num_features=%d num_coords=%d shaper_list=%p", |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 hb_shape_plan_user_features_match (shape_plan, proposal) && | 424 hb_shape_plan_user_features_match (shape_plan, proposal) && |
432 hb_shape_plan_coords_match (shape_plan, proposal) && | 425 hb_shape_plan_coords_match (shape_plan, proposal) && |
433 ((shape_plan->default_shaper_list && proposal->shaper_list == NULL) || | 426 ((shape_plan->default_shaper_list && proposal->shaper_list == NULL) || |
434 (shape_plan->shaper_func == proposal->shaper_func)); | 427 (shape_plan->shaper_func == proposal->shaper_func)); |
435 } | 428 } |
436 | 429 |
437 static inline hb_bool_t | 430 static inline hb_bool_t |
438 hb_non_global_user_features_present (const hb_feature_t *user_features, | 431 hb_non_global_user_features_present (const hb_feature_t *user_features, |
439 unsigned int num_user_features) | 432 unsigned int num_user_features) |
440 { | 433 { |
441 while (num_user_features) | 434 while (num_user_features) { |
442 if (user_features->start != 0 || user_features->end != (unsigned int) -1) | 435 if (user_features->start != 0 || user_features->end != (unsigned int) -1) |
443 return true; | 436 return true; |
444 else | 437 num_user_features--; |
445 num_user_features--, user_features++; | 438 user_features++; |
| 439 } |
446 return false; | 440 return false; |
447 } | 441 } |
448 | 442 |
449 static inline hb_bool_t | 443 static inline hb_bool_t |
450 hb_coords_present (const int *coords, | 444 hb_coords_present (const int *coords, |
451 unsigned int num_coords) | 445 unsigned int num_coords) |
452 { | 446 { |
453 return num_coords != 0; | 447 return num_coords != 0; |
454 } | 448 } |
455 | 449 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
576 * | 570 * |
577 * Return value: (transfer none): | 571 * Return value: (transfer none): |
578 * | 572 * |
579 * Since: 0.9.7 | 573 * Since: 0.9.7 |
580 **/ | 574 **/ |
581 const char * | 575 const char * |
582 hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan) | 576 hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan) |
583 { | 577 { |
584 return shape_plan->shaper_name; | 578 return shape_plan->shaper_name; |
585 } | 579 } |
OLD | NEW |