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