blob: d887c9bf43ce05c303c55aad723aaf7e5c7721db (
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
|
#ifndef __LIBJIN_PAGE_H
#define __LIBJIN_PAGE_H
#include "../../math/je_vector2.hpp"
#include "je_font.h"
namespace jin
{
namespace graphics
{
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
{
Font* font;
std::vector<GlyphArrayDrawInfo> glyphinfolist;
std::vector<GlyphVertex> glyphvertices;
math::Vector2<int> size;
};
} // namespace graphics
} // namespace jin
#endif
|