1 /***************************************************************************
3 * Copyright (C) 1998-2013, International Business Machines
4 * Corporation and others. All Rights Reserved.
6 ************************************************************************/
12 #include "layout/LETypes.h"
19 virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const = 0;
21 virtual ~CMAPMapper();
23 static CMAPMapper *createUnicodeMapper(const CMAPTable *cmap);
26 CMAPMapper(const CMAPTable *cmap);
31 const CMAPTable *fcmap;
34 class CMAPFormat4Mapper : public CMAPMapper
37 CMAPFormat4Mapper(const CMAPTable *cmap, const CMAPFormat4Encoding *header);
39 virtual ~CMAPFormat4Mapper();
41 virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const;
44 CMAPFormat4Mapper() {};
47 le_uint16 fEntrySelector;
48 le_uint16 fRangeShift;
49 const le_uint16 *fEndCodes;
50 const le_uint16 *fStartCodes;
51 const le_uint16 *fIdDelta;
52 const le_uint16 *fIdRangeOffset;
55 class CMAPGroupMapper : public CMAPMapper
58 CMAPGroupMapper(const CMAPTable *cmap, const CMAPGroup *groups, le_uint32 nGroups);
60 virtual ~CMAPGroupMapper();
62 virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const;
69 le_int32 fRangeOffset;
70 const CMAPGroup *fGroups;
73 inline CMAPMapper::CMAPMapper(const CMAPTable *cmap)
79 inline CMAPMapper::~CMAPMapper()
81 LE_DELETE_ARRAY(fcmap);