diff options
Diffstat (limited to 'Build/source/libs/icu/icu-4.8.1/test/letest/cmaps.h')
-rw-r--r-- | Build/source/libs/icu/icu-4.8.1/test/letest/cmaps.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-4.8.1/test/letest/cmaps.h b/Build/source/libs/icu/icu-4.8.1/test/letest/cmaps.h new file mode 100644 index 00000000000..df0bb116ba5 --- /dev/null +++ b/Build/source/libs/icu/icu-4.8.1/test/letest/cmaps.h @@ -0,0 +1,85 @@ +/*************************************************************************** +* +* Copyright (C) 1998-2006, International Business Machines +* Corporation and others. All Rights Reserved. +* +************************************************************************/ + + +#ifndef __CMAPS_H +#define __CMAPS_H + +#include "layout/LETypes.h" +#include "letest.h" +#include "sfnt.h" + +class CMAPMapper +{ +public: + virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const = 0; + + virtual ~CMAPMapper(); + + static CMAPMapper *createUnicodeMapper(const CMAPTable *cmap); + +protected: + CMAPMapper(const CMAPTable *cmap); + + CMAPMapper() {}; + +private: + const CMAPTable *fcmap; +}; + +class CMAPFormat4Mapper : public CMAPMapper +{ +public: + CMAPFormat4Mapper(const CMAPTable *cmap, const CMAPFormat4Encoding *header); + + virtual ~CMAPFormat4Mapper(); + + virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const; + +protected: + CMAPFormat4Mapper() {}; + +private: + le_uint16 fEntrySelector; + le_uint16 fRangeShift; + const le_uint16 *fEndCodes; + const le_uint16 *fStartCodes; + const le_uint16 *fIdDelta; + const le_uint16 *fIdRangeOffset; +}; + +class CMAPGroupMapper : public CMAPMapper +{ +public: + CMAPGroupMapper(const CMAPTable *cmap, const CMAPGroup *groups, le_uint32 nGroups); + + virtual ~CMAPGroupMapper(); + + virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const; + +protected: + CMAPGroupMapper() {}; + +private: + le_int32 fPower; + le_int32 fRangeOffset; + const CMAPGroup *fGroups; +}; + +inline CMAPMapper::CMAPMapper(const CMAPTable *cmap) + : fcmap(cmap) +{ + // nothing else to do +} + +inline CMAPMapper::~CMAPMapper() +{ + DELETE_ARRAY(fcmap); +} + +#endif + |