1
/***************************************************************************
3
* Copyright (C) 1998-2006, 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()