void makefonts(void) { // hfnt_sb = makefont(My_FontSize_s, My_FontWeight_sb,My_Font_s); // hfnt_s = makefont(My_FontSize_s, My_FontWeight_s, My_Font_s); // fszx = zx; // fszy = zy; editw._hfnt_b = makefont(My_FontSize_n, My_FontWeight_b, My_Font); editw._hfnt_n = makefont(My_FontSize_n, My_FontWeight_n, My_Font); }
static SFONT * loadftype( char *fname, int size, int *err) { MYFONT *res; FT_Face face; int i; *err = 0; if (!fname) { *err = -8; return NULL;} libinit(); if (initerr) { *err = -99; return NULL;} res = makefont( MAXUNI+1); if (!res) { *err = -3; return NULL;} *err = FT_New_Face( library, fname, 0, &face ); /* create face object */ if (*err){ res->sfont.destroy(&res->sfont); return NULL; } *err = FT_Set_Pixel_Sizes( face, size, size); if (*err){ res->sfont.destroy(&res->sfont); return NULL; } res->ascent = face->size->metrics.ascender/64; res->descent = -face->size->metrics.descender/64; res->height = res->ascent+res->descent; //face->size->metrics.height/64; res->sfont.antialiased = m_aafonts; res->minchar = 32; setglyph(res,face,0); for (i=32;i<127;i++) setglyph(res,face,i); for (i=0xa0;i<256;i++) setglyph(res,face,i); setglyph(res,face,0x152); setglyph(res,face,0x153); FT_Done_Face( face ); return (SFONT *) res; }
void glk_stylehint_set(glui32 wintype, glui32 style, glui32 hint, glsi32 val) { style_t *styles; int p, b, i; if (wintype == wintype_AllTypes) { glk_stylehint_set(wintype_TextGrid, style, hint, val); glk_stylehint_set(wintype_TextBuffer, style, hint, val); return; } if (wintype == wintype_TextGrid) styles = gli_gstyles; else if (wintype == wintype_TextBuffer) styles = gli_tstyles; else return; if (!gli_conf_stylehint) return; switch (hint) { case stylehint_TextColor: styles[style].fg[0] = (val >> 16) & 0xff; styles[style].fg[1] = (val >> 8) & 0xff; styles[style].fg[2] = (val) & 0xff; break; case stylehint_BackColor: styles[style].bg[0] = (val >> 16) & 0xff; styles[style].bg[1] = (val >> 8) & 0xff; styles[style].bg[2] = (val) & 0xff; break; case stylehint_ReverseColor: styles[style].reverse = (val != 0); break; case stylehint_Proportional: if (wintype == wintype_TextBuffer) { p = val > 0; b = isbold(styles[style].font); i = isitalic(styles[style].font); styles[style].font = makefont(p, b, i); } break; case stylehint_Weight: p = isprop(styles[style].font); b = val > 0; i = isitalic(styles[style].font); styles[style].font = makefont(p, b, i); break; case stylehint_Oblique: p = isprop(styles[style].font); b = isbold(styles[style].font); i = val > 0; styles[style].font = makefont(p, b, i); break; } if (wintype == wintype_TextBuffer && style == style_Normal && hint == stylehint_BackColor) { memcpy(gli_window_color, styles[style].bg, 3); } if (wintype == wintype_TextBuffer && style == style_Normal && hint == stylehint_TextColor) { memcpy(gli_more_color, styles[style].fg, 3); memcpy(gli_caret_color, styles[style].fg, 3); } }