blob: 75f1840a36563de5bb0fb6c9db880468fbeca859 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#ifndef __JE_PAGE_H__
#define __JE_PAGE_H__
#include "../../math/vector2.hpp"
#include "font.h"
namespace JinEngine
{
namespace Graphics
{
namespace Fonts
{
class Font;
///
/// Glyphs data to be rendered.
///
struct GlyphVertex
{
int x, y; ///< screen coordinates
float u, v; ///< normalized texture uv
};
///
/// Glyphs info for reducing draw call.
///
struct GlyphArrayDrawInfo
{
GLuint texture; ///< atlas
unsigned int start; ///< glyph vertex indecies
unsigned int count; ///< glyph vertex count
};
///
/// Page to be rendered.
///
/// A page is a pre-rendered text struct for reducing draw call. Each page
/// keeps a font pointer which should not be changed.
///
struct Page : public Object
{
Font* font;
std::vector<GlyphArrayDrawInfo> glyphinfolist;
std::vector<GlyphVertex> glyphvertices;
Math::Vector2<int> size;
};
} // namespace Fonts
} // namespace Graphics
} // namespace JinEngine
#endif // __JE_PAGE_H__
|