diff options
Diffstat (limited to 'Build/source/libs/icu/icu-4.6/layout/ValueRecords.h')
-rw-r--r-- | Build/source/libs/icu/icu-4.6/layout/ValueRecords.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-4.6/layout/ValueRecords.h b/Build/source/libs/icu/icu-4.6/layout/ValueRecords.h new file mode 100644 index 00000000000..83db7b31972 --- /dev/null +++ b/Build/source/libs/icu/icu-4.6/layout/ValueRecords.h @@ -0,0 +1,72 @@ +/* + * + * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved + * + */ + +#ifndef __VALUERECORDS_H +#define __VALUERECORDS_H + +/** + * \file + * \internal + */ + +#include "LETypes.h" +#include "LEFontInstance.h" +#include "OpenTypeTables.h" +#include "GlyphIterator.h" + +U_NAMESPACE_BEGIN + +typedef le_uint16 ValueFormat; +typedef le_int16 ValueRecordField; + +struct ValueRecord +{ + le_int16 values[ANY_NUMBER]; + + le_int16 getFieldValue(ValueFormat valueFormat, ValueRecordField field) const; + le_int16 getFieldValue(le_int16 index, ValueFormat valueFormat, ValueRecordField field) const; + void adjustPosition(ValueFormat valueFormat, const char *base, GlyphIterator &glyphIterator, + const LEFontInstance *fontInstance) const; + void adjustPosition(le_int16 index, ValueFormat valueFormat, const char *base, GlyphIterator &glyphIterator, + const LEFontInstance *fontInstance) const; + + static le_int16 getSize(ValueFormat valueFormat); + +private: + static le_int16 getFieldCount(ValueFormat valueFormat); + static le_int16 getFieldIndex(ValueFormat valueFormat, ValueRecordField field); +}; + +enum ValueRecordFields +{ + vrfXPlacement = 0, + vrfYPlacement = 1, + vrfXAdvance = 2, + vrfYAdvance = 3, + vrfXPlaDevice = 4, + vrfYPlaDevice = 5, + vrfXAdvDevice = 6, + vrfYAdvDevice = 7 +}; + +enum ValueFormatBits +{ + vfbXPlacement = 0x0001, + vfbYPlacement = 0x0002, + vfbXAdvance = 0x0004, + vfbYAdvance = 0x0008, + vfbXPlaDevice = 0x0010, + vfbYPlaDevice = 0x0020, + vfbXAdvDevice = 0x0040, + vfbYAdvDevice = 0x0080, + vfbReserved = 0xFF00, + vfbAnyDevice = vfbXPlaDevice + vfbYPlaDevice + vfbXAdvDevice + vfbYAdvDevice +}; + +U_NAMESPACE_END +#endif + + |