OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
3 * | 3 * |
4 * This is part of HarfBuzz, an OpenType Layout engine library. | 4 * This is part of HarfBuzz, an OpenType Layout engine 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 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
417 item->attributes[i].clusterStart = FALSE; | 417 item->attributes[i].clusterStart = FALSE; |
418 item->attributes[i].justification = 0; | 418 item->attributes[i].justification = 0; |
419 item->attributes[i].zeroWidth = FALSE; | 419 item->attributes[i].zeroWidth = FALSE; |
420 MMDEBUG(" %d: %4x property=%x", i, reordered[i], properties[i]); | 420 MMDEBUG(" %d: %4x property=%x", i, reordered[i], properties[i]); |
421 } | 421 } |
422 | 422 |
423 /* now we have the syllable in the right order, and can start running it thr
ough open type. */ | 423 /* now we have the syllable in the right order, and can start running it thr
ough open type. */ |
424 | 424 |
425 #ifndef NO_OPENTYPE | 425 #ifndef NO_OPENTYPE |
426 if (openType) { | 426 if (openType) { |
427 unsigned short logClusters[32]; | |
428 hb_uint32 where[32]; | 427 hb_uint32 where[32]; |
429 | 428 |
430 for (i = 0; i < len; ++i) | |
431 logClusters[i] = i; | |
432 | |
433 for (i = 0; i < len; ++i) { | 429 for (i = 0; i < len; ++i) { |
434 where[i] = ~(PreSubstProperty | 430 where[i] = ~(PreSubstProperty |
435 | BelowSubstProperty | 431 | BelowSubstProperty |
436 | AboveSubstProperty | 432 | AboveSubstProperty |
437 | PostSubstProperty | 433 | PostSubstProperty |
438 | CligProperty | 434 | CligProperty |
439 | PositioningProperties); | 435 | PositioningProperties); |
440 if (properties[i] & PreForm) | 436 if (properties[i] & PreForm) |
441 where[i] &= ~PreFormProperty; | 437 where[i] &= ~PreFormProperty; |
442 if (properties[i] & BelowForm) | 438 if (properties[i] & BelowForm) |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 i++; | 529 i++; |
534 while (i < boundary) { | 530 while (i < boundary) { |
535 attributes[i].charStop = FALSE; | 531 attributes[i].charStop = FALSE; |
536 ++uc; | 532 ++uc; |
537 ++i; | 533 ++i; |
538 } | 534 } |
539 assert(i == boundary); | 535 assert(i == boundary); |
540 } | 536 } |
541 } | 537 } |
542 | 538 |
OLD | NEW |