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