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 #include "MyGUI_Types.h"
12 
13 namespace MyGUI
14 {
15 
16 	namespace FontCodeType
17 	{
18 
19 		enum Enum
20 		{
21 			Tab = 0x0009,
22 			LF = 0x000A,
23 			CR = 0x000D,
24 			Space = 0x0020,
25 			NEL = 0x0085,
26 
27 			// The following are special code points. These are used represent displayable text elements that do not correspond to
28 			// any actual Unicode code point. To prevent collisions, they must be defined with values higher than that of the
29 			// highest valid Unicode code point (0x10FFFF as of Unicode 6.1).
30 			Selected = 0xFFFFFFFC, // Used for rendering text selections when they have input focus.
31 			SelectedBack = 0xFFFFFFFD, // Used for rendering text selections when they don't have input focus.
32 			Cursor = 0xFFFFFFFE, // Used for rendering the blinking text cursor.
33 			NotDefined = 0xFFFFFFFF // Used to render substitute glyphs for characters that aren't supported by the current font.
34 		};
35 
36 	}
37 
38 	// информация об одном символе
39 	struct GlyphInfo
40 	{
41 		GlyphInfo(
42 			Char _codePoint = 0U,
43 			float _width = 0.0f,
44 			float _height = 0.0f,
45 			float _advance = 0.0f,
46 			float _bearingX = 0.0f,
47 			float _bearingY = 0.0f,
48 			const FloatRect& _uvRect = FloatRect()) :
codePointGlyphInfo49 			codePoint(_codePoint),
50 			width(_width),
51 			height(_height),
52 			advance(_advance),
53 			bearingX(_bearingX),
54 			bearingY(_bearingY),
55 			uvRect(_uvRect)
56 		{
57 		}
58 
59 		Char codePoint;
60 		float width;
61 		float height;
62 		float advance;
63 		float bearingX;
64 		float bearingY;
65 		FloatRect uvRect;
66 	};
67 
68 	using VectorGlyphInfo = std::vector<GlyphInfo>;
69 
70 } // namespace MyGUI
71 
72 #endif // MYGUI_FONT_DATA_H_
73