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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#ifndef __IRR_FONT_TOOL_INCLUDED__
#define __IRR_FONT_TOOL_INCLUDED__
#include "irrlicht.h"
#if defined(_IRR_WINDOWS_)
#ifdef _MBCS
#undef _MBCS
#endif
#define UNICODE
#define _WIN32_WINNT 0x0500
#include "windows.h"
#else
#ifdef _IRR_COMPILE_WITH_X11_
#include <X11/Xlib.h>
#endif
#include <X11/Xft/Xft.h>
#include <set>
#endif
namespace irr {
class CFontTool : public irr::IReferenceCounted
{
public:
CFontTool(irr::IrrlichtDevice* device);
~CFontTool();
virtual bool makeBitmapFont(u32 fontIndex, u32 charsetIndex,
s32 fontSize, u32 texturewidth, u32 textureHeight,
bool bold, bool italic, bool aa, bool alpha);
virtual bool saveBitmapFont(const c8* filename, const c8* format);
virtual void selectCharSet(u32 currentCharSet);
struct SFontArea
{
SFontArea() : rectangle(), underhang(0), overhang(0), sourceimage(0) {}
core::rect<s32> rectangle;
s32 underhang;
s32 overhang;
u32 sourceimage;
};
/* struct SFontMap
{
SFontMap() : areas(), start(0), count(0) {}
core::array< SFontArea > areas;
s32 start;
s32 count;
};*/
core::array<core::stringw> FontNames;
core::array<core::stringw> CharSets;
//core::array<SFontMap> Mappings;
core::array<SFontArea> Areas;
core::map<wchar_t, u32> CharMap;
core::array<video::ITexture*> currentTextures;
core::array<video::IImage*> currentImages;
const int *FontSizes;
IrrlichtDevice *Device;
bool UseAlphaChannel;
// windows
#ifdef _IRR_WINDOWS_
HDC dc;
#endif
};
}
#endif // __IRR_FONT_TOOL_INCLUDED__
|