ICU 56.1: LETypes.h Source File

ICU 56.1 56.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

LETypes.h
Go to the documentation of this file.
1 /*
2 *
3 * (C) Copyright IBM Corp. and others 1998-2014 - All Rights Reserved
4 *
5 */
6
7 #ifndef __LETYPES_H
8 #define __LETYPES_H
9
10 #if !defined(LE_USE_CMEMORY) && (defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || defined(U_STATIC_IMPLEMENTATION) || defined(U_COMBINED_IMPLEMENTATION))
11 #define LE_USE_CMEMORY
12 #endif
13
14 #include "unicode/utypes.h"
15
16 #ifdef __cplusplus
17 #include "unicode/uobject.h"
18 #endif
19
20 #ifdef LE_USE_CMEMORY
21 #include "cmemory.h"
22 #endif
23
34 typedef int32_t le_int32;
35
41 typedef uint32_t le_uint32;
42
48 typedef int16_t le_int16;
49
55 typedef uint16_t le_uint16;
56
62 typedef int8_t le_int8;
63
69 typedef uint8_t le_uint8;
70
71
77 typedef UBool le_bool;
78
79 #ifndef NULL
80
85 #define NULL 0
86 #endif
87
93 typedef le_uint32 LETag;
94
101 typedef le_uint16 TTGlyphID;
102
112 typedef le_uint32 LEGlyphID;
113
120 #define LE_GLYPH_MASK 0x0000FFFF
121
129 #define LE_GLYPH_SHIFT 0
130
131
138 #define LE_SUB_FONT_MASK 0x00FF0000
139
147 #define LE_SUB_FONT_SHIFT 16
148
149
156 #define LE_CLIENT_MASK 0xFF000000
157
165 #define LE_CLIENT_SHIFT 24
166
167
174 #define LE_GET_GLYPH(gid) ((gid & LE_GLYPH_MASK) >> LE_GLYPH_SHIFT)
175
182 #define LE_GET_SUB_FONT(gid) ((gid & LE_SUB_FONT_MASK) >> LE_SUB_FONT_SHIFT)
183
190 #define LE_GET_CLIENT(gid) ((gid & LE_CLIENT_MASK) >> LE_CLIENT_SHIFT)
191
192
199 #define LE_SET_GLYPH(gid, glyph) ((gid & ~LE_GLYPH_MASK) | ((glyph << LE_GLYPH_SHIFT) & LE_GLYPH_MASK))
200
207 #define LE_SET_SUB_FONT(gid, font) ((gid & ~LE_SUB_FONT_MASK) | ((font << LE_SUB_FONT_SHIFT) & LE_SUB_FONT_MASK))
208
215 #define LE_SET_CLIENT(gid, client) ((gid & ~LE_CLIENT_MASK) | ((client << LE_CLIENT_SHIFT) & LE_CLIENT_MASK))
216
217
223 typedef UChar LEUnicode16;
224
230 typedef UChar32 LEUnicode32;
231
232 #ifndef U_HIDE_DEPRECATED_API
233
238 typedef UChar LEUnicode;
239 #endif /* U_HIDE_DEPRECATED_API */
240
246 struct LEPoint
247 {
253 float fX;
254
260 float fY;
261 };
262
263 #ifndef __cplusplus
264
269 typedef struct LEPoint LEPoint;
270 #endif
271
272
273 #ifndef U_HIDE_INTERNAL_API
274
279 #ifndef LE_ASSERT_BAD_FONT
280 #define LE_ASSERT_BAD_FONT 0
281 #endif
282
287 #if LE_ASSERT_BAD_FONT
288 #include <stdio.h>
289 #define LE_DEBUG_BAD_FONT(x) fprintf(stderr,"%s:%d: BAD FONT: %s\n", __FILE__, __LINE__, (x));
290 #else
291 #define LE_DEBUG_BAD_FONT(x)
292 #endif
293
299 #ifndef UINT32_MAX
300 #define LE_UINT32_MAX 0xFFFFFFFFU
301 #else
302 #define LE_UINT32_MAX UINT32_MAX
303 #endif
304
305 #ifndef UINTPTR_MAX
306 #define LE_UINTPTR_MAX LE_UINT32_MAX
307 #else
308 #define LE_UINTPTR_MAX UINTPTR_MAX
309 #endif
310
314 #define LE_RANGE_CHECK(type, count, ptrfn) (( (LE_UINTPTR_MAX / sizeof(type)) < (size_t)count ) ? NULL : (ptrfn))
315
320 #define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
321
322 #ifdef LE_USE_CMEMORY
323
328 #define LE_ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
329
336 #define LE_NEW_ARRAY(type, count) (type *) LE_RANGE_CHECK(type,count,uprv_malloc((count) * sizeof(type)))
337
344 #define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSize) * sizeof (array)[0])
345
352 #define LE_DELETE_ARRAY(array) uprv_free((void *) (array))
353 #else
354
355 /* Not using ICU memory - use C std lib versions */
356
357 #include <stdlib.h>
358 #include <string.h>
359
365 #define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
366
372 #define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
373
380 #define LE_NEW_ARRAY(type, count) LE_RANGE_CHECK(type,count,(type *) malloc((count) * sizeof(type)))
381
388 #define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) * sizeof (array)[0])
389
396 #define LE_DELETE_ARRAY(array) free((void *) (array))
397
398 #endif
399 #endif /* U_HIDE_INTERNAL_API */
400
411 #define LE_MAKE_TAG(a, b, c, d) \
412 (((le_uint32)(a) << 24) | \
413 ((le_uint32)(b) << 16) | \
414 ((le_uint32)(c) << 8) | \
415 (le_uint32)(d))
416
423 enum LETableTags {
424 LE_ACNT_TABLE_TAG = 0x61636E74UL,
425 LE_AVAR_TABLE_TAG = 0x61766172UL,
426 LE_BASE_TABLE_TAG = 0x42415345UL,
427 LE_BDAT_TABLE_TAG = 0x62646174UL,
428 LE_BHED_TABLE_TAG = 0x62686564UL,
429 LE_BLOC_TABLE_TAG = 0x626C6F63UL,
430 LE_BSLN_TABLE_TAG = 0x62736C6EUL,
431 LE_CFF__TABLE_TAG = 0x43464620UL,
432 LE_CMAP_TABLE_TAG = 0x636D6170UL,
433 LE_CVAR_TABLE_TAG = 0x63766172UL,
434 LE_CVT__TABLE_TAG = 0x63767420UL,
435 LE_DSIG_TABLE_TAG = 0x44534947UL,
436 LE_EBDT_TABLE_TAG = 0x45424454UL,
437 LE_EBLC_TABLE_TAG = 0x45424C43UL,
438 LE_EBSC_TABLE_TAG = 0x45425343UL,
439 LE_FDSC_TABLE_TAG = 0x66647363UL,
440 LE_FEAT_TABLE_TAG = 0x66656174UL,
441 LE_FMTX_TABLE_TAG = 0x666D7478UL,
442 LE_FPGM_TABLE_TAG = 0x6670676DUL,
443 LE_FVAR_TABLE_TAG = 0x66766172UL,
444 LE_GASP_TABLE_TAG = 0x67617370UL,
445 LE_GDEF_TABLE_TAG = 0x47444546UL,
446 LE_GLYF_TABLE_TAG = 0x676C7966UL,
447 LE_GPOS_TABLE_TAG = 0x47504F53UL,
448 LE_GSUB_TABLE_TAG = 0x47535542UL,
449 LE_GVAR_TABLE_TAG = 0x67766172UL,
450 LE_HDMX_TABLE_TAG = 0x68646D78UL,
451 LE_HEAD_TABLE_TAG = 0x68656164UL,
452 LE_HHEA_TABLE_TAG = 0x68686561UL,
453 LE_HMTX_TABLE_TAG = 0x686D7478UL,
454 LE_HSTY_TABLE_TAG = 0x68737479UL,
455 LE_JUST_TABLE_TAG = 0x6A757374UL,
456 LE_JSTF_TABLE_TAG = 0x4A535446UL,
457 LE_KERN_TABLE_TAG = 0x6B65726EUL,
458 LE_LCAR_TABLE_TAG = 0x6C636172UL,
459 LE_LOCA_TABLE_TAG = 0x6C6F6361UL,
460 LE_LTSH_TABLE_TAG = 0x4C545348UL,
461 LE_MAXP_TABLE_TAG = 0x6D617870UL,
462 LE_MORT_TABLE_TAG = 0x6D6F7274UL,
463 LE_MORX_TABLE_TAG = 0x6D6F7278UL,
464 LE_NAME_TABLE_TAG = 0x6E616D65UL,
465 LE_OPBD_TABLE_TAG = 0x6F706264UL,
466 LE_OS_2_TABLE_TAG = 0x4F532F32UL,
467 LE_PCLT_TABLE_TAG = 0x50434C54UL,
468 LE_POST_TABLE_TAG = 0x706F7374UL,
469 LE_PREP_TABLE_TAG = 0x70726570UL,
470 LE_PROP_TABLE_TAG = 0x70726F70UL,
471 LE_TRAK_TABLE_TAG = 0x7472616BUL,
472 LE_VDMX_TABLE_TAG = 0x56444D58UL,
473 LE_VHEA_TABLE_TAG = 0x76686561UL,
474 LE_VMTX_TABLE_TAG = 0x766D7478UL,
475 LE_VORG_TABLE_TAG = 0x564F5247UL,
476 LE_ZAPF_TABLE_TAG = 0x5A617066UL
477 };
478
485 enum LEFeatureTags {
486 LE_AALT_FEATURE_TAG = 0x61616C74UL,
487 LE_ABVF_FEATURE_TAG = 0x61627666UL,
488 LE_ABVM_FEATURE_TAG = 0x6162766DUL,
489 LE_ABVS_FEATURE_TAG = 0x61627673UL,
490 LE_AFRC_FEATURE_TAG = 0x61667263UL,
491 LE_AKHN_FEATURE_TAG = 0x616B686EUL,
492 LE_BLWF_FEATURE_TAG = 0x626C7766UL,
493 LE_BLWM_FEATURE_TAG = 0x626C776DUL,
494 LE_BLWS_FEATURE_TAG = 0x626C7773UL,
495 LE_CALT_FEATURE_TAG = 0x63616C74UL,
496 LE_CASE_FEATURE_TAG = 0x63617365UL,
497 LE_CCMP_FEATURE_TAG = 0x63636D70UL,
498 LE_CJCT_FEATURE_TAG = 0x636A6374UL,
499 LE_CLIG_FEATURE_TAG = 0x636C6967UL,
500 LE_CPSP_FEATURE_TAG = 0x63707370UL,
501 LE_CSWH_FEATURE_TAG = 0x63737768UL,
502 LE_CURS_FEATURE_TAG = 0x63757273UL,
503 LE_C2SC_FEATURE_TAG = 0x63327363UL,
504 LE_C2PC_FEATURE_TAG = 0x63327063UL,
505 LE_DIST_FEATURE_TAG = 0x64697374UL,
506 LE_DLIG_FEATURE_TAG = 0x646C6967UL,
507 LE_DNOM_FEATURE_TAG = 0x646E6F6DUL,
508 LE_EXPT_FEATURE_TAG = 0x65787074UL,
509 LE_FALT_FEATURE_TAG = 0x66616C74UL,
510 LE_FIN2_FEATURE_TAG = 0x66696E32UL,
511 LE_FIN3_FEATURE_TAG = 0x66696E33UL,
512 LE_FINA_FEATURE_TAG = 0x66696E61UL,
513 LE_FRAC_FEATURE_TAG = 0x66726163UL,
514 LE_FWID_FEATURE_TAG = 0x66776964UL,
515 LE_HALF_FEATURE_TAG = 0x68616C66UL,
516 LE_HALN_FEATURE_TAG = 0x68616C6EUL,
517 LE_HALT_FEATURE_TAG = 0x68616C74UL,
518 LE_HIST_FEATURE_TAG = 0x68697374UL,
519 LE_HKNA_FEATURE_TAG = 0x686B6E61UL,
520 LE_HLIG_FEATURE_TAG = 0x686C6967UL,
521 LE_HNGL_FEATURE_TAG = 0x686E676CUL,
522 LE_HWID_FEATURE_TAG = 0x68776964UL,
523 LE_INIT_FEATURE_TAG = 0x696E6974UL,
524 LE_ISOL_FEATURE_TAG = 0x69736F6CUL,
525 LE_ITAL_FEATURE_TAG = 0x6974616CUL,
526 LE_JALT_FEATURE_TAG = 0x6A616C74UL,
527 LE_JP78_FEATURE_TAG = 0x6A703738UL,
528 LE_JP83_FEATURE_TAG = 0x6A703833UL,
529 LE_JP90_FEATURE_TAG = 0x6A703930UL,
530 LE_KERN_FEATURE_TAG = 0x6B65726EUL,
531 LE_LFBD_FEATURE_TAG = 0x6C666264UL,
532 LE_LIGA_FEATURE_TAG = 0x6C696761UL,
533 LE_LJMO_FEATURE_TAG = 0x6C6A6D6FUL,
534 LE_LNUM_FEATURE_TAG = 0x6C6E756DUL,
535 LE_LOCL_FEATURE_TAG = 0x6C6F636CUL,
536 LE_MARK_FEATURE_TAG = 0x6D61726BUL,
537 LE_MED2_FEATURE_TAG = 0x6D656432UL,
538 LE_MEDI_FEATURE_TAG = 0x6D656469UL,
539 LE_MGRK_FEATURE_TAG = 0x6D67726BUL,
540 LE_MKMK_FEATURE_TAG = 0x6D6B6D6BUL,
541 LE_MSET_FEATURE_TAG = 0x6D736574UL,
542 LE_NALT_FEATURE_TAG = 0x6E616C74UL,
543 LE_NLCK_FEATURE_TAG = 0x6E6C636BUL,
544 LE_NUKT_FEATURE_TAG = 0x6E756B74UL,
545 LE_NUMR_FEATURE_TAG = 0x6E756D72UL,
546 LE_ONUM_FEATURE_TAG = 0x6F6E756DUL,
547 LE_OPBD_FEATURE_TAG = 0x6F706264UL,
548 LE_ORDN_FEATURE_TAG = 0x6F72646EUL,
549 LE_ORNM_FEATURE_TAG = 0x6F726E6DUL,
550 LE_PALT_FEATURE_TAG = 0x70616C74UL,
551 LE_PCAP_FEATURE_TAG = 0x70636170UL,
552 LE_PNUM_FEATURE_TAG = 0x706E756DUL,
553 LE_PREF_FEATURE_TAG = 0x70726566UL,
554 LE_PRES_FEATURE_TAG = 0x70726573UL,
555 LE_PSTF_FEATURE_TAG = 0x70737466UL,
556 LE_PSTS_FEATURE_TAG = 0x70737473UL,
557 LE_PWID_FEATURE_TAG = 0x70776964UL,
558 LE_QWID_FEATURE_TAG = 0x71776964UL,
559 LE_RAND_FEATURE_TAG = 0x72616E64UL,
560 LE_RLIG_FEATURE_TAG = 0x726C6967UL,
561 LE_RPHF_FEATURE_TAG = 0x72706866UL,
562 LE_RKRF_FEATURE_TAG = 0x726B7266UL,
563 LE_RTBD_FEATURE_TAG = 0x72746264UL,
564 LE_RTLA_FEATURE_TAG = 0x72746C61UL,
565 LE_RUBY_FEATURE_TAG = 0x72756279UL,
566 LE_SALT_FEATURE_TAG = 0x73616C74UL,
567 LE_SINF_FEATURE_TAG = 0x73696E66UL,
568 LE_SIZE_FEATURE_TAG = 0x73697A65UL,
569 LE_SMCP_FEATURE_TAG = 0x736D6370UL,
570 LE_SMPL_FEATURE_TAG = 0x736D706CUL,
571 LE_SS01_FEATURE_TAG = 0x73733031UL,
572 LE_SS02_FEATURE_TAG = 0x73733032UL,
573 LE_SS03_FEATURE_TAG = 0x73733033UL,
574 LE_SS04_FEATURE_TAG = 0x73733034UL,
575 LE_SS05_FEATURE_TAG = 0x73733035UL,
576 LE_SS06_FEATURE_TAG = 0x73733036UL,
577 LE_SS07_FEATURE_TAG = 0x73733037UL,
578 LE_SS08_FEATURE_TAG = 0x73733038UL,
579 LE_SS09_FEATURE_TAG = 0x73733039UL,
580 LE_SS10_FEATURE_TAG = 0x73733130UL,
581 LE_SS11_FEATURE_TAG = 0x73733131UL,
582 LE_SS12_FEATURE_TAG = 0x73733132UL,
583 LE_SS13_FEATURE_TAG = 0x73733133UL,
584 LE_SS14_FEATURE_TAG = 0x73733134UL,
585 LE_SS15_FEATURE_TAG = 0x73733135UL,
586 LE_SS16_FEATURE_TAG = 0x73733136UL,
587 LE_SS17_FEATURE_TAG = 0x73733137UL,
588 LE_SS18_FEATURE_TAG = 0x73733138UL,
589 LE_SS19_FEATURE_TAG = 0x73733139UL,
590 LE_SS20_FEATURE_TAG = 0x73733230UL,
591 LE_SUBS_FEATURE_TAG = 0x73756273UL,
592 LE_SUPS_FEATURE_TAG = 0x73757073UL,
593 LE_SWSH_FEATURE_TAG = 0x73777368UL,
594 LE_TITL_FEATURE_TAG = 0x7469746CUL,
595 LE_TJMO_FEATURE_TAG = 0x746A6D6FUL,
596 LE_TNAM_FEATURE_TAG = 0x746E616DUL,
597 LE_TNUM_FEATURE_TAG = 0x746E756DUL,
598 LE_TRAD_FEATURE_TAG = 0x74726164UL,
599 LE_TWID_FEATURE_TAG = 0x74776964UL,
600 LE_UNIC_FEATURE_TAG = 0x756E6963UL,
601 LE_VALT_FEATURE_TAG = 0x76616C74UL,
602 LE_VATU_FEATURE_TAG = 0x76617475UL,
603 LE_VERT_FEATURE_TAG = 0x76657274UL,
604 LE_VHAL_FEATURE_TAG = 0x7668616CUL,
605 LE_VJMO_FEATURE_TAG = 0x766A6D6FUL,
606 LE_VKNA_FEATURE_TAG = 0x766B6E61UL,
607 LE_VKRN_FEATURE_TAG = 0x766B726EUL,
608 LE_VPAL_FEATURE_TAG = 0x7670616CUL,
609 LE_VRT2_FEATURE_TAG = 0x76727432UL,
610 LE_ZERO_FEATURE_TAG = 0x7A65726FUL
611 };
612
616 enum LEFeatureENUMs {
617 LE_Kerning_FEATURE_ENUM = 0,
618 LE_Ligatures_FEATURE_ENUM = 1,
619 LE_CLIG_FEATURE_ENUM,
620 LE_DLIG_FEATURE_ENUM,
621 LE_HLIG_FEATURE_ENUM,
622 LE_LIGA_FEATURE_ENUM,
623 LE_RLIG_FEATURE_ENUM,
624 LE_SMCP_FEATURE_ENUM,
625 LE_FRAC_FEATURE_ENUM,
626 LE_AFRC_FEATURE_ENUM,
627 LE_ZERO_FEATURE_ENUM,
628 LE_SWSH_FEATURE_ENUM,
629 LE_CSWH_FEATURE_ENUM,
630 LE_SALT_FEATURE_ENUM,
631 LE_NALT_FEATURE_ENUM,
632 LE_RUBY_FEATURE_ENUM,
633 LE_SS01_FEATURE_ENUM,
634 LE_SS02_FEATURE_ENUM,
635 LE_SS03_FEATURE_ENUM,
636 LE_SS04_FEATURE_ENUM,
637 LE_SS05_FEATURE_ENUM,
638 LE_SS06_FEATURE_ENUM,
639 LE_SS07_FEATURE_ENUM,
641 LE_CHAR_FILTER_FEATURE_ENUM = 31,
642 LE_FEATURE_ENUM_MAX = LE_CHAR_FILTER_FEATURE_ENUM
643 };
644
645
651 #define LE_Kerning_FEATURE_FLAG (1 << LE_Kerning_FEATURE_ENUM)
652 #define LE_Ligatures_FEATURE_FLAG (1 << LE_Ligatures_FEATURE_ENUM)
653 #define LE_CLIG_FEATURE_FLAG (1 << LE_CLIG_FEATURE_ENUM)
654 #define LE_DLIG_FEATURE_FLAG (1 << LE_DLIG_FEATURE_ENUM)
655 #define LE_HLIG_FEATURE_FLAG (1 << LE_HLIG_FEATURE_ENUM)
656 #define LE_LIGA_FEATURE_FLAG (1 << LE_LIGA_FEATURE_ENUM)
657 #define LE_RLIG_FEATURE_FLAG (1 << LE_RLIG_FEATURE_ENUM)
658 #define LE_SMCP_FEATURE_FLAG (1 << LE_SMCP_FEATURE_ENUM)
659 #define LE_FRAC_FEATURE_FLAG (1 << LE_FRAC_FEATURE_ENUM)
660 #define LE_AFRC_FEATURE_FLAG (1 << LE_AFRC_FEATURE_ENUM)
661 #define LE_ZERO_FEATURE_FLAG (1 << LE_ZERO_FEATURE_ENUM)
662 #define LE_SWSH_FEATURE_FLAG (1 << LE_SWSH_FEATURE_ENUM)
663 #define LE_CSWH_FEATURE_FLAG (1 << LE_CSWH_FEATURE_ENUM)
664 #define LE_SALT_FEATURE_FLAG (1 << LE_SALT_FEATURE_ENUM)
665 #define LE_NALT_FEATURE_FLAG (1 << LE_NALT_FEATURE_ENUM)
666 #define LE_RUBY_FEATURE_FLAG (1 << LE_RUBY_FEATURE_ENUM)
667 #define LE_SS01_FEATURE_FLAG (1 << LE_SS01_FEATURE_ENUM)
668 #define LE_SS02_FEATURE_FLAG (1 << LE_SS02_FEATURE_ENUM)
669 #define LE_SS03_FEATURE_FLAG (1 << LE_SS03_FEATURE_ENUM)
670 #define LE_SS04_FEATURE_FLAG (1 << LE_SS04_FEATURE_ENUM)
671 #define LE_SS05_FEATURE_FLAG (1 << LE_SS05_FEATURE_ENUM)
672 #define LE_SS06_FEATURE_FLAG (1 << LE_SS06_FEATURE_ENUM)
673 #define LE_SS07_FEATURE_FLAG (1 << LE_SS07_FEATURE_ENUM)
674
675 #define LE_CHAR_FILTER_FEATURE_FLAG (1 << LE_CHAR_FILTER_FEATURE_ENUM)
676
680 #define LE_DEFAULT_FEATURE_FLAG (LE_Kerning_FEATURE_FLAG | LE_Ligatures_FEATURE_FLAG)
687 enum LEErrorCode {
688 /* informational */
689 LE_NO_SUBFONT_WARNING = U_USING_DEFAULT_WARNING,
691 /* success */
692 LE_NO_ERROR = U_ZERO_ERROR,
694 /* failures */
695 LE_ILLEGAL_ARGUMENT_ERROR = U_ILLEGAL_ARGUMENT_ERROR,
696 LE_MEMORY_ALLOCATION_ERROR = U_MEMORY_ALLOCATION_ERROR,
697 LE_INDEX_OUT_OF_BOUNDS_ERROR = U_INDEX_OUTOFBOUNDS_ERROR,
698 LE_NO_LAYOUT_ERROR = U_UNSUPPORTED_ERROR,
699 LE_INTERNAL_ERROR = U_INTERNAL_PROGRAM_ERROR,
700 LE_FONT_FILE_NOT_FOUND_ERROR = U_FILE_ACCESS_ERROR,
701 LE_MISSING_FONT_TABLE_ERROR = U_MISSING_RESOURCE_ERROR
702 };
703
704 #ifndef __cplusplus
705
710 typedef enum LEErrorCode LEErrorCode;
711 #endif
712
718 #define LE_SUCCESS(code) (U_SUCCESS((UErrorCode)code))
719
725 #define LE_FAILURE(code) (U_FAILURE((UErrorCode)code))
726
727
728 #endif
LE_LJMO_FEATURE_TAG
'ljmo'
Definition: LETypes.h:533
LE_HALT_FEATURE_TAG
'halt'
Definition: LETypes.h:517
LE_ONUM_FEATURE_TAG
'onum'
Definition: LETypes.h:546
LE_RLIG_FEATURE_TAG
'rlig'
Definition: LETypes.h:560
LE_VPAL_FEATURE_TAG
'vpal'
Definition: LETypes.h:608
LE_SIZE_FEATURE_TAG
'size'
Definition: LETypes.h:568
LE_INIT_FEATURE_TAG
'init'
Definition: LETypes.h:523
LE_NLCK_FEATURE_TAG
'nlck'
Definition: LETypes.h:543
LE_ABVS_FEATURE_TAG
'abvs'
Definition: LETypes.h:489
TTGlyphID
le_uint16 TTGlyphID
Used for 16-bit glyph indices as they're represented in TrueType font tables.
Definition: LETypes.h:101
LE_SS19_FEATURE_TAG
'ss19'
Definition: LETypes.h:589
le_uint32
uint32_t le_uint32
A type used for unsigned, 32-bit integers.
Definition: LETypes.h:41
LE_JP90_FEATURE_TAG
'jp90'
Definition: LETypes.h:529
LE_AALT_FEATURE_TAG
'aalt'
Definition: LETypes.h:486
LE_SS02_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:634
LE_FIN2_FEATURE_TAG
'fin2'
Definition: LETypes.h:510
LE_SS07_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:639
LE_CPSP_FEATURE_TAG
'cpsp'
Definition: LETypes.h:500
LE_CURS_FEATURE_TAG
'curs'
Definition: LETypes.h:502
LEUnicode32
UChar32 LEUnicode32
Used to represent 32-bit Unicode code points.
Definition: LETypes.h:230
LE_BASE_TABLE_TAG
'BASE'
Definition: LETypes.h:426
LE_RTBD_FEATURE_TAG
'rtbd'
Definition: LETypes.h:563
LETag
le_uint32 LETag
Used for four character tags.
Definition: LETypes.h:93
LE_SS02_FEATURE_TAG
'ss02'
Definition: LETypes.h:572
LE_ORDN_FEATURE_TAG
'ordn'
Definition: LETypes.h:548
LE_MORT_TABLE_TAG
'mort'
Definition: LETypes.h:462
LE_OS_2_TABLE_TAG
'OS/2'
Definition: LETypes.h:466
LE_SS07_FEATURE_TAG
'ss07'
Definition: LETypes.h:577
LE_MORX_TABLE_TAG
'morx'
Definition: LETypes.h:463
LE_ILLEGAL_ARGUMENT_ERROR
An illegal argument was detected.
Definition: LETypes.h:695
LE_Kerning_FEATURE_ENUM
Requests Kerning.
Definition: LETypes.h:617
LE_SS04_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:636
LE_MEMORY_ALLOCATION_ERROR
Memory allocation error.
Definition: LETypes.h:696
LE_NUMR_FEATURE_TAG
'numr'
Definition: LETypes.h:545
LE_AFRC_FEATURE_TAG
'afrc'
Definition: LETypes.h:490
le_uint16
uint16_t le_uint16
A type used for unsigned, 16-bit integers.
Definition: LETypes.h:55
LE_VHEA_TABLE_TAG
'vhea'
Definition: LETypes.h:473
LE_RTLA_FEATURE_TAG
'rtla'
Definition: LETypes.h:564
LE_PNUM_FEATURE_TAG
'pnum'
Definition: LETypes.h:552
LE_Ligatures_FEATURE_ENUM
Requests Ligatures.
Definition: LETypes.h:618
LE_SMCP_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:624
LE_HLIG_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:621
LE_AKHN_FEATURE_TAG
'akhn'
Definition: LETypes.h:491
LE_GLYF_TABLE_TAG
'glyf'
Definition: LETypes.h:446
LE_FDSC_TABLE_TAG
'fdsc'
Definition: LETypes.h:439
LE_FALT_FEATURE_TAG
'falt'
Definition: LETypes.h:509
U_MISSING_RESOURCE_ERROR
The requested resource cannot be found.
Definition: utypes.h:508
LE_VORG_TABLE_TAG
'VORG'
Definition: LETypes.h:475
LE_NALT_FEATURE_TAG
'nalt'
Definition: LETypes.h:542
LE_VMTX_TABLE_TAG
'vmtx'
Definition: LETypes.h:474
LE_GSUB_TABLE_TAG
'GSUB'
Definition: LETypes.h:448
LE_AVAR_TABLE_TAG
'avar'
Definition: LETypes.h:425
LE_UNIC_FEATURE_TAG
'unic'
Definition: LETypes.h:600
LE_VATU_FEATURE_TAG
'vatu'
Definition: LETypes.h:602
LE_JSTF_TABLE_TAG
'JSTF'
Definition: LETypes.h:456
LETableTags
LETableTags
This enumeration defines constants for the standard TrueType, OpenType and AAT table tags...
Definition: LETypes.h:423
LE_ISOL_FEATURE_TAG
'isol'
Definition: LETypes.h:524
LE_LFBD_FEATURE_TAG
'lfbd'
Definition: LETypes.h:531
LE_SALT_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:630
LEUnicode16
UChar LEUnicode16
Used to represent 16-bit Unicode code points.
Definition: LETypes.h:223
LE_VERT_FEATURE_TAG
'vert'
Definition: LETypes.h:603
LE_MED2_FEATURE_TAG
'med2'
Definition: LETypes.h:537
LE_VALT_FEATURE_TAG
'valt'
Definition: LETypes.h:601
LE_SS14_FEATURE_TAG
'ss14'
Definition: LETypes.h:584
LE_BLWF_FEATURE_TAG
'blwf'
Definition: LETypes.h:492
LE_CMAP_TABLE_TAG
'cmap'
Definition: LETypes.h:432
LE_INDEX_OUT_OF_BOUNDS_ERROR
Trying to access an index that is out of bounds.
Definition: LETypes.h:697
U_INTERNAL_PROGRAM_ERROR
Indicates a bug in the library code.
Definition: utypes.h:511
le_int8
int8_t le_int8
A type used for signed, 8-bit integers.
Definition: LETypes.h:62
LE_JALT_FEATURE_TAG
'jalt'
Definition: LETypes.h:526
LE_PWID_FEATURE_TAG
'pwid'
Definition: LETypes.h:557
LE_DNOM_FEATURE_TAG
'dnom'
Definition: LETypes.h:507
LE_HSTY_TABLE_TAG
'hsty'
Definition: LETypes.h:454
LE_CFF__TABLE_TAG
'CFF '
Definition: LETypes.h:431
LE_HNGL_FEATURE_TAG
'hngl'
Definition: LETypes.h:521
U_ZERO_ERROR
No error, no warning.
Definition: utypes.h:505
LE_PROP_TABLE_TAG
'prop'
Definition: LETypes.h:470
LE_SS13_FEATURE_TAG
'ss13'
Definition: LETypes.h:583
LE_KERN_FEATURE_TAG
'kern'
Definition: LETypes.h:530
LE_PRES_FEATURE_TAG
'pres'
Definition: LETypes.h:554
LE_PCLT_TABLE_TAG
'PCLT'
Definition: LETypes.h:467
LE_CSWH_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:629
U_INDEX_OUTOFBOUNDS_ERROR
Trying to access the index that is out of bounds.
Definition: utypes.h:514
LE_PCAP_FEATURE_TAG
'pcap'
Definition: LETypes.h:551
LE_SS05_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:637
le_int32
int32_t le_int32
A type used for signed, 32-bit integers.
Definition: LETypes.h:34
le_bool
UBool le_bool
A type used for boolean values.
Definition: LETypes.h:77
LE_TITL_FEATURE_TAG
'titl'
Definition: LETypes.h:594
LE_EBSC_TABLE_TAG
'EBSC'
Definition: LETypes.h:438
LE_GVAR_TABLE_TAG
'gvar'
Definition: LETypes.h:449
U_MEMORY_ALLOCATION_ERROR
Memory allocation error.
Definition: utypes.h:513
LE_SS08_FEATURE_TAG
'ss08'
Definition: LETypes.h:578
LE_SALT_FEATURE_TAG
'salt'
Definition: LETypes.h:566
LE_VDMX_TABLE_TAG
'VDMX'
Definition: LETypes.h:472
LE_SS01_FEATURE_TAG
'ss01'
Definition: LETypes.h:571
LE_SS09_FEATURE_TAG
'ss09'
Definition: LETypes.h:579
LE_RAND_FEATURE_TAG
'rand'
Definition: LETypes.h:559
LE_SWSH_FEATURE_TAG
'swsh'
Definition: LETypes.h:593
LE_SS06_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:638
LE_CVAR_TABLE_TAG
'cvar'
Definition: LETypes.h:433
LE_AFRC_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:626
LE_PREF_FEATURE_TAG
'pref'
Definition: LETypes.h:553
LE_SS03_FEATURE_TAG
'ss03'
Definition: LETypes.h:573
U_FILE_ACCESS_ERROR
The requested file cannot be found.
Definition: utypes.h:510
LE_RLIG_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:623
LEPoint::fX
float fX
The x coordinate of the point.
Definition: LETypes.h:253
LE_SINF_FEATURE_TAG
'sinf'
Definition: LETypes.h:567
LE_PSTF_FEATURE_TAG
'pstf'
Definition: LETypes.h:555
LEFeatureENUMs
LEFeatureENUMs
Definition: LETypes.h:616
LE_LOCL_FEATURE_TAG
'locl'
Definition: LETypes.h:535
LE_LIGA_FEATURE_TAG
'liga'
Definition: LETypes.h:532
LEPoint::fY
float fY
The y coordinate of the point.
Definition: LETypes.h:260
LE_ZERO_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:627
LE_SS17_FEATURE_TAG
'ss17'
Definition: LETypes.h:587
LE_FVAR_TABLE_TAG
'fvar'
Definition: LETypes.h:443
LE_SS10_FEATURE_TAG
'ss10'
Definition: LETypes.h:580
LE_FIN3_FEATURE_TAG
'fin3'
Definition: LETypes.h:511
LE_POST_TABLE_TAG
'post'
Definition: LETypes.h:468
U_UNSUPPORTED_ERROR
Requested operation not supported in current context.
Definition: utypes.h:522
LE_EXPT_FEATURE_TAG
'expt'
Definition: LETypes.h:508
LE_LOCA_TABLE_TAG
'loca'
Definition: LETypes.h:459
LE_MGRK_FEATURE_TAG
'mgrk'
Definition: LETypes.h:539
LE_DLIG_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:620
LE_VKNA_FEATURE_TAG
'vkna'
Definition: LETypes.h:606
LE_GASP_TABLE_TAG
'gasp'
Definition: LETypes.h:444
U_USING_DEFAULT_WARNING
A resource bundle lookup returned a result from the root locale (not an error)
Definition: utypes.h:486
LE_MEDI_FEATURE_TAG
'medi'
Definition: LETypes.h:538
U_ILLEGAL_ARGUMENT_ERROR
Start of codes indicating failure.
Definition: utypes.h:507
LE_TNUM_FEATURE_TAG
'tnum'
Definition: LETypes.h:597
LE_C2SC_FEATURE_TAG
'c2sc'
Definition: LETypes.h:503
LE_NO_LAYOUT_ERROR
You must call layoutChars() first.
Definition: LETypes.h:698
LE_SS01_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:633
LE_TRAK_TABLE_TAG
'trak'
Definition: LETypes.h:471
LE_KERN_TABLE_TAG
'kern'
Definition: LETypes.h:457
LE_EBLC_TABLE_TAG
'EBLC'
Definition: LETypes.h:437
LE_LTSH_TABLE_TAG
'LTSH'
Definition: LETypes.h:460
LE_OPBD_TABLE_TAG
'opbd'
Definition: LETypes.h:465
LE_RPHF_FEATURE_TAG
'rphf'
Definition: LETypes.h:561
LE_SS16_FEATURE_TAG
'ss16'
Definition: LETypes.h:586
LE_DSIG_TABLE_TAG
'DSIG'
Definition: LETypes.h:435
LE_INTERNAL_ERROR
An internal error was encountered.
Definition: LETypes.h:699
LE_GPOS_TABLE_TAG
'GPOS'
Definition: LETypes.h:447
LE_BHED_TABLE_TAG
'bhed'
Definition: LETypes.h:428
UChar32
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:332
LE_FPGM_TABLE_TAG
'fpgm'
Definition: LETypes.h:442
LE_BSLN_TABLE_TAG
'bsln'
Definition: LETypes.h:430
LE_HALF_FEATURE_TAG
'half'
Definition: LETypes.h:515
LE_ORNM_FEATURE_TAG
'ornm'
Definition: LETypes.h:549
LE_FINA_FEATURE_TAG
'fina'
Definition: LETypes.h:512
LE_MAXP_TABLE_TAG
'maxp'
Definition: LETypes.h:461
LE_VJMO_FEATURE_TAG
'vjmo'
Definition: LETypes.h:605
LE_QWID_FEATURE_TAG
'qwid'
Definition: LETypes.h:558
LE_HDMX_TABLE_TAG
'hdmx'
Definition: LETypes.h:450
LE_FONT_FILE_NOT_FOUND_ERROR
The requested font file cannot be opened.
Definition: LETypes.h:700
LE_NALT_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:631
LEErrorCode
LEErrorCode
Error codes returned by the LayoutEngine.
Definition: LETypes.h:687
LE_SS05_FEATURE_TAG
'ss05'
Definition: LETypes.h:575
uobject.h
C++ API: Common ICU base class UObject.
le_uint8
uint8_t le_uint8
A type used for unsigned, 8-bit integers.
Definition: LETypes.h:69
LE_SS06_FEATURE_TAG
'ss06'
Definition: LETypes.h:576
LE_SS12_FEATURE_TAG
'ss12'
Definition: LETypes.h:582
LE_TJMO_FEATURE_TAG
'tjmo'
Definition: LETypes.h:595
LE_VHAL_FEATURE_TAG
'vhal'
Definition: LETypes.h:604
LE_SS15_FEATURE_TAG
'ss15'
Definition: LETypes.h:585
UChar
uint16_t UChar
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
Definition: umachine.h:312
LE_CHAR_FILTER_FEATURE_ENUM
Apply CharSubstitutionFilter.
Definition: LETypes.h:641
LE_CCMP_FEATURE_TAG
'ccmp'
Definition: LETypes.h:497
LE_FRAC_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:625
LE_FWID_FEATURE_TAG
'fwid'
Definition: LETypes.h:514
LE_RUBY_FEATURE_TAG
'ruby'
Definition: LETypes.h:565
LE_PALT_FEATURE_TAG
'palt'
Definition: LETypes.h:550
LE_LNUM_FEATURE_TAG
'lnum'
Definition: LETypes.h:534
LE_TRAD_FEATURE_TAG
'trad'
Definition: LETypes.h:598
LE_DLIG_FEATURE_TAG
'dlig'
Definition: LETypes.h:506
LE_MKMK_FEATURE_TAG
'mkmk'
Definition: LETypes.h:540
LE_HALN_FEATURE_TAG
'haln'
Definition: LETypes.h:516
LE_PSTS_FEATURE_TAG
'psts'
Definition: LETypes.h:556
LE_BLWM_FEATURE_TAG
'blwm'
Definition: LETypes.h:493
LE_SS04_FEATURE_TAG
'ss04'
Definition: LETypes.h:574
LE_ZERO_FEATURE_TAG
'zero'
Definition: LETypes.h:610
LE_BLWS_FEATURE_TAG
'blws'
Definition: LETypes.h:494
LE_CASE_FEATURE_TAG
'case'
Definition: LETypes.h:496
LE_CLIG_FEATURE_TAG
'clig'
Definition: LETypes.h:499
LE_HWID_FEATURE_TAG
'hwid'
Definition: LETypes.h:522
LE_MISSING_FONT_TABLE_ERROR
The requested font table does not exist.
Definition: LETypes.h:701
LE_NO_ERROR
No error, no warning.
Definition: LETypes.h:692
LE_CVT__TABLE_TAG
'cvt '
Definition: LETypes.h:434
LE_HLIG_FEATURE_TAG
'hlig'
Definition: LETypes.h:520
LE_HEAD_TABLE_TAG
'head'
Definition: LETypes.h:451
LE_HHEA_TABLE_TAG
'hhea'
Definition: LETypes.h:452
LE_SUPS_FEATURE_TAG
'sups'
Definition: LETypes.h:592
LE_BLOC_TABLE_TAG
'bloc'
Definition: LETypes.h:429
LE_ABVM_FEATURE_TAG
'abvm'
Definition: LETypes.h:488
LEUnicode
UChar LEUnicode
Used to represent 16-bit Unicode code points.
Definition: LETypes.h:238
LE_NAME_TABLE_TAG
'name'
Definition: LETypes.h:464
LE_HMTX_TABLE_TAG
'hmtx'
Definition: LETypes.h:453
LE_SUBS_FEATURE_TAG
'subs'
Definition: LETypes.h:591
LE_HIST_FEATURE_TAG
'hist'
Definition: LETypes.h:518
LE_FRAC_FEATURE_TAG
'frac'
Definition: LETypes.h:513
LE_CSWH_FEATURE_TAG
'cswh'
Definition: LETypes.h:501
LE_LCAR_TABLE_TAG
'lcar'
Definition: LETypes.h:458
LEGlyphID
le_uint32 LEGlyphID
Used for glyph indices.
Definition: LETypes.h:112
LE_MARK_FEATURE_TAG
'mark'
Definition: LETypes.h:536
LE_NO_SUBFONT_WARNING
The font does not contain subfonts.
Definition: LETypes.h:689
LE_JP78_FEATURE_TAG
'jp78'
Definition: LETypes.h:527
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
LE_VRT2_FEATURE_TAG
'vrt2'
Definition: LETypes.h:609
LE_TNAM_FEATURE_TAG
'tnam'
Definition: LETypes.h:596
LE_VKRN_FEATURE_TAG
'vkrn'
Definition: LETypes.h:607
LE_SMPL_FEATURE_TAG
'smpl'
Definition: LETypes.h:570
LE_SS11_FEATURE_TAG
'ss11'
Definition: LETypes.h:581
LE_FEAT_TABLE_TAG
'feat'
Definition: LETypes.h:440
LE_ITAL_FEATURE_TAG
'ital'
Definition: LETypes.h:525
LE_SS18_FEATURE_TAG
'ss18'
Definition: LETypes.h:588
LE_CLIG_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:619
LE_BDAT_TABLE_TAG
'bdat'
Definition: LETypes.h:427
LE_RKRF_FEATURE_TAG
'rkrf'
Definition: LETypes.h:562
LE_NUKT_FEATURE_TAG
'nukt'
Definition: LETypes.h:544
LE_RUBY_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:632
LE_LIGA_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:622
LE_CALT_FEATURE_TAG
'calt'
Definition: LETypes.h:495
LE_JP83_FEATURE_TAG
'jp83'
Definition: LETypes.h:528
LE_MSET_FEATURE_TAG
'mset'
Definition: LETypes.h:541
LE_JUST_TABLE_TAG
'just'
Definition: LETypes.h:455
LE_DIST_FEATURE_TAG
'dist'
Definition: LETypes.h:505
LE_SS20_FEATURE_TAG
'ss20'
Definition: LETypes.h:590
LE_HKNA_FEATURE_TAG
'hkna'
Definition: LETypes.h:519
LEFeatureTags
LEFeatureTags
This enumeration defines constants for all the common OpenType feature tags.
Definition: LETypes.h:485
LE_SMCP_FEATURE_TAG
'smcp'
Definition: LETypes.h:569
LE_C2PC_FEATURE_TAG
'c2pc'
Definition: LETypes.h:504
LE_SS03_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:635
LE_OPBD_FEATURE_TAG
'opbd'
Definition: LETypes.h:547
LE_FMTX_TABLE_TAG
'fmtx'
Definition: LETypes.h:441
LE_ZAPF_TABLE_TAG
'Zapf'
Definition: LETypes.h:476
LE_EBDT_TABLE_TAG
'EBDT'
Definition: LETypes.h:436
LE_PREP_TABLE_TAG
'prep'
Definition: LETypes.h:469
LE_ACNT_TABLE_TAG
'acnt'
Definition: LETypes.h:424
LE_GDEF_TABLE_TAG
'GDEF'
Definition: LETypes.h:445
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
le_int16
int16_t le_int16
A type used for signed, 16-bit integers.
Definition: LETypes.h:48
LE_ABVF_FEATURE_TAG
'abvf'
Definition: LETypes.h:487
LE_CJCT_FEATURE_TAG
'cjct'
Definition: LETypes.h:498
LE_TWID_FEATURE_TAG
'twid'
Definition: LETypes.h:599
LE_SWSH_FEATURE_ENUM
Feature specific enum.
Definition: LETypes.h:628
LEPoint
Used to hold a pair of (x, y) values which represent a point.
Definition: LETypes.h:246