All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FontKerningTable.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "tr1.h"
7 
8 namespace Eegeo
9 {
10  namespace Fonts
11  {
12 
14  {
15  public:
16  FontKerningTable(size_t reserveSize);
17 
18  void AddPair(u32 firstUnicode, u32 secondUnicode, float kerningValue);
19  bool TryGet(u32 firstUnicode, u32 secondUnicode, float& out_kerningValue) const;
20  private:
21  inline static u64 CharacterPairKey(u32 firstUnicode, u32 secondUnicode)
22  {
23  u64 pairKey = firstUnicode;
24  pairKey <<= 32;
25  pairKey |= secondUnicode;
26  return pairKey;
27  }
28 
29  typedef Eegeo::unordered_map<u64, float>::type TPairKeyToKerningValues;
30  TPairKeyToKerningValues m_pairKeyToKerningValues;
31  };
32  }
33 }