1 /* GemRB - Infinity Engine Emulator
2  * Copyright (C) 2011 The GemRB Project
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  *
19  */
20 
21 #ifndef GemRB_TTFFont_h
22 #define GemRB_TTFFont_h
23 
24 #include "Freetype.h"
25 
26 #include "FontManager.h"
27 
28 namespace GemRB {
29 
30 class TTFFontManager : public FontManager {
31 /*
32 Private ivars
33 */
34 private:
35 	FT_Stream ftStream;
36 	FT_Face face;
37 
38 public:
39 /*
40 Public methods
41 */
42 	~TTFFontManager(void) override;
43 	TTFFontManager(void);
44 
45 	bool Open(DataStream* stream) override;
46 	void Close();
47 
48 	Font* GetFont(unsigned short pxSize, FontStyle style, bool background) override;
49 
50 	// freetype "callbacks"
51 	static unsigned long read( FT_Stream       stream,
52 							  unsigned long   offset,
53 							  unsigned char*  buffer,
54 							  unsigned long   count );
55 
56 	static void close( FT_Stream stream );
57 };
58 
59 }
60 
61 #endif
62