MyGUI  3.2.1
MyGUI_FontData.h
Go to the documentation of this file.
1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef __MYGUI_FONT_DATA_H__
8 #define __MYGUI_FONT_DATA_H__
9 
10 #include "MyGUI_Prerequest.h"
11 
12 namespace MyGUI
13 {
14 
15  namespace FontCodeType
16  {
17 
18  enum Enum
19  {
20  Tab = 0x0009,
21  LF = 0x000A,
22  CR = 0x000D,
23  Space = 0x0020,
24  NEL = 0x0085,
25 
26  // The following are special code points. These are used represent displayable text elements that do not correspond to
27  // any actual Unicode code point. To prevent collisions, they must be defined with values higher than that of the
28  // highest valid Unicode code point (0x10FFFF as of Unicode 6.1).
29  Selected = 0xFFFFFFFC, // Used for rendering text selections when they have input focus.
30  SelectedBack = 0xFFFFFFFD, // Used for rendering text selections when they don't have input focus.
31  Cursor = 0xFFFFFFFE, // Used for rendering the blinking text cursor.
32  NotDefined = 0xFFFFFFFF // Used to render substitute glyphs for characters that aren't supported by the current font.
33  };
34 
35  }
36 
37  // информация об одном символе
38  struct GlyphInfo
39  {
41  Char _codePoint = 0U,
42  float _width = 0.0f,
43  float _height = 0.0f,
44  float _advance = 0.0f,
45  float _bearingX = 0.0f,
46  float _bearingY = 0.0f,
47  const FloatRect& _uvRect = FloatRect()) :
48  codePoint(_codePoint),
49  width(_width),
50  height(_height),
51  advance(_advance),
52  bearingX(_bearingX),
53  bearingY(_bearingY),
54  uvRect(_uvRect)
55  {
56  }
57 
59  float width;
60  float height;
61  float advance;
62  float bearingX;
63  float bearingY;
65  };
66 
67  typedef std::vector<GlyphInfo> VectorGlyphInfo;
68 
69 } // namespace MyGUI
70 
71 #endif // __MYGUI_FONT_DATA_H__