void AllegroGlyphKeeperFont::load(const std::string& filename, int w, int h) { mKeeper = gk_create_keeper(0,0); if (mKeeper == NULL) { throw GCN_EXCEPTION("Can't create keeper."); } mFace = gk_load_face_from_file(filename.c_str(), 0); if (mFace == NULL) { throw GCN_EXCEPTION("Can't load font from file."); } mRend = gk_create_renderer(mFace,mKeeper); if (mRend == NULL) { throw GCN_EXCEPTION("Can't create renderer."); } gk_rend_set_hinting_off(mRend); gk_rend_set_size_pixels(mRend, w, h); gk_rend_set_text_color_rgb(mRend, 0, 0, 0); }
/** initializes fonts */ void create_fonts() { #ifdef HAVE_FREETYPE g_console_font_face = gk_load_face_from_file(F(cfg_get_console_font_file()), 0); if (g_console_font_face) { g_console_font_keep = gk_create_keeper(0, 0); g_console_font_rend = gk_create_renderer(g_console_font_face, g_console_font_keep); g_console_font = gk_create_allegro_font(g_console_font_rend); set_console_font_size(get_console_font_size()); } #endif if (!g_console_font) g_console_font = font; if (!create_xcom_small_font()) { // If we can't load x-com font, fallback to TTF font or // as the last resort - to standard allegro bitmap font #ifdef HAVE_FREETYPE g_small_font_face = gk_load_face_from_file(F("$(ufo2000)/fonts/DejaVuSansMono.ttf"), 0); g_small_font_keep = gk_create_keeper(0, 0); g_small_font_rend = gk_create_renderer(g_small_font_face, g_small_font_keep); gk_rend_set_size_pixels(g_small_font_rend, 8, 9); g_small_font = gk_create_allegro_font(g_small_font_rend); #endif if (!g_small_font) g_small_font = font; } if (!create_xcom_large_font()) { // If we can't load x-com font, fallback to TTF font or // as the last resort - to standard allegro bitmap font #ifdef HAVE_FREETYPE g_large_font_face = gk_load_face_from_file(F("$(ufo2000)/fonts/DejaVuSansMono.ttf"), 0); g_large_font_keep = gk_create_keeper(0, 0); g_large_font_rend = gk_create_renderer(g_large_font_face, g_large_font_keep); gk_rend_set_size_pixels(g_large_font_rend, 15, 16); large = gk_create_allegro_font(g_large_font_rend); #endif if (!large) large = font; } }