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);
        }
Exemple #2
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;
    }
}