static VALUE Font_add(VALUE self, VALUE filename) { ExportFilenameStringValue(filename); if(Kanji_AddFont(Get_Kanji_Font(self), RSTRING_PTR(filename)) == -1) rb_raise(eSDLError, "Couldn't use font: %s", RSTRING_PTR(filename)); return Qnil; }
Kanji_Font* Kanji_OpenFont(const char* file, int size) { Kanji_Font* font; font = (Kanji_Font*)malloc(sizeof(Kanji_Font)); font->k_size = size; font->a_size = size / 2; font->sys = KANJI_JIS; InitFont(font); if (0 == Kanji_AddFont(font, file)) { return font; } else { free(font); return 0; } }
void YGS2kKanjiFontInitialize() { #if USE_GL_KANJI s_pKanjiFont[0].load("res/font/knj10.f1b"); s_pKanjiFont[1].load("res/font/knj12.f1b"); s_pKanjiFont[2].load("res/font/knj16.f1b"); #elif USE_SDLKANJI /* 10pxフォント読み込み */ s_pKanjiFont[0] = Kanji_OpenFont("res/font/knj10.bdf", 10); if ( s_pKanjiFont[0] ) { Kanji_AddFont(s_pKanjiFont[0], "res/font/5x10a.bdf"); } else { /* フォントがない場合代替を使う */ s_pKanjiFont[0] = Kanji_OpenFont("res/font/knj12.bdf", 10); Kanji_AddFont(s_pKanjiFont[0], "res/font/6x12a.bdf"); } if ( s_pKanjiFont[0] ) { Kanji_SetCodingSystem(s_pKanjiFont[0], KANJI_SJIS); } /* 12pxフォント読み込み */ s_pKanjiFont[1] = Kanji_OpenFont("res/font/knj12.bdf", 12); if ( s_pKanjiFont[1] ) { Kanji_AddFont(s_pKanjiFont[1], "res/font/6x12a.bdf"); Kanji_SetCodingSystem(s_pKanjiFont[1], KANJI_SJIS); } /* 16pxフォント読み込み */ s_pKanjiFont[2] = Kanji_OpenFont("res/font/knj16.bdf", 16); if ( s_pKanjiFont[2] ) { Kanji_AddFont(s_pKanjiFont[2], "res/font/8x16a.bdf"); Kanji_SetCodingSystem(s_pKanjiFont[2], KANJI_SJIS); } #elif USE_PNGKANJI char *kanjifile[YGS_KANJIFONT_MAX] = { "res/font/kanjifont10w.png", "res/font/kanjifont10b.png", "res/font/kanjifont12w.png", "res/font/kanjifont12b.png", "res/font/kanjifont16w.png", "res/font/kanjifont16b.png", }; for ( int i = 0 ; i < YGS_KANJIFONT_MAX ; i ++ ) { s_pKanjiSurface[i] = IMG_Load(kanjifile[i]); // if ( s_pKanjiSurface[i] ) // { // あまり必要性がないのでしないでおく // s_pKanjiSurface[i] = SDL_DisplayFormat(s_pKanjiSurface[i]); // } } #endif }