Viewing file: cmaps.h (2.06 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* ****************************************************************************** * * © 2016 and later: Unicode, Inc. and others. * License & terms of use: http://www.unicode.org/copyright.html#License * ****************************************************************************** ****************************************************************************** * * * Copyright (C) 1999-2003, International Business Machines * Corporation and others. All Rights Reserved. * ****************************************************************************** * * file name: cmaps.h * * created on: ??/??/2001 * created by: Eric R. Mader */
#ifndef __CMAPS_H #define __CMAPS_H
#include "layout/LETypes.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() { LE_DELETE_ARRAY(fcmap); }
#endif
|