Photon 1.0.0
Loading...
Searching...
No Matches
Font.h
Go to the documentation of this file.
1#include "Bitmap.h"
2
3class Font : public font_metrics
4{
5public:
6 static Font* create(string face, int size, int weight);
7 virtual int text_width(string text) = 0;
8 virtual void draw_text(canvas& canvas, string text, color color, int x, int y) = 0;
9};
10
11class RasterFont : public Font
12{
13 int width = 0; // for absent glyphs, see get_glyph
14 std::map<int, Bitmap> glyphs;
15public:
16 RasterFont(int size, int weight);
17
18 static struct size_name { int size; string name; } installed_fonts[];
19 static RasterFont* create(string face, int size, int weight);
20
21 Bitmap get_glyph(int ch, color color);
22 void load(string filename);
23
24 int text_width(string text) override;
25 void draw_text(canvas& canvas, string text, color color, int x, int y) override;
26};
27
28class OutlineFont : public Font
29{
30 string name;
31 string data; // raw contents of ttf file
32 int size = 0; // pixels per em
33public:
34 OutlineFont(string name, int size);
35
37 static OutlineFont* create(string name, int size);
38
39 int text_width(string text) override;
40 void draw_text(canvas& canvas, string text, color color, int x, int y) override;
41};
Definition Bitmap.h:25
Definition Font.h:4
static Font * create(string face, int size, int weight)
Definition Font.cpp:212
virtual void draw_text(canvas &canvas, string text, color color, int x, int y)=0
virtual int text_width(string text)=0
Definition Font.h:29
static string_map installed_fonts
Definition Font.h:172
string data
Definition Font.h:31
string name
Definition Font.h:30
int text_width(string text) override
Definition Font.cpp:197
void draw_text(canvas &canvas, string text, color color, int x, int y) override
Definition Font.cpp:204
static OutlineFont * create(string name, int size)
Definition Font.cpp:177
Definition Font.h:12
void draw_text(canvas &canvas, string text, color color, int x, int y) override
Definition Font.cpp:160
void load(string filename)
Definition Font.cpp:85
int width
Definition Font.h:13
Bitmap get_glyph(int ch, color color)
Definition Font.cpp:64
static struct RasterFont::size_name installed_fonts[]
Definition Font.cpp:10
int text_width(string text) override
Definition Font.cpp:151
std::map< int, Bitmap > glyphs
Definition Font.h:14
static RasterFont * create(string face, int size, int weight)
Definition Font.cpp:56
Definition canvas_ity.hpp:276
const char * name
Definition encodings.cpp:1358
std::map< string, string > string_map
Definition types.h:31
Definition Bitmap.h:10
Definition types.h:197
Definition types.h:89