void eol_font_init() { eol_logger_message(EOL_LOG_INFO,"eol_font: initializing\n"); if (TTF_Init() != 0) { eol_logger_message( EOL_LOG_ERROR, "eol_font:unable to setup SDL_TTF\n"); return; } atexit(TTF_Quit); atexit(eol_font_close); _eol_font_list = (eolFont *)malloc(sizeof(eolFont)*_eol_font_max); memset(_eol_font_list,0,sizeof(eolFont)*_eol_font_max); _eol_font_initialized = eolTrue; _eol_font_size[eolFontTiny] = eol_font_load(_eol_default_font,10); _eol_font_size[eolFontSmall] = eol_font_load(_eol_default_font,12); _eol_font_size[eolFontMedium] = eol_font_load(_eol_default_font,14); _eol_font_size[eolFontLarge] = eol_font_load(_eol_default_font,18); _eol_font_size[eolFontHuge] = eol_font_load(_eol_default_font,24); eol_logger_message(EOL_LOG_INFO,"eol_font: initialized\n"); }
void eol_component_make_label( eolComponent * component, char * text, eolUint justify, eolInt fontSize, eolBool wordWrap, char * fontName, eolVec3D color, eolFloat alpha ) { eolRect r; eolComponentLabel * label = NULL; if (!component)return; eol_component_label_new(component); label = eol_component_get_label_data(component); if (label == NULL) { return; } label->buffer = g_string_new(text); if (label->buffer == NULL) { eol_logger_message( EOL_LOG_ERROR, "eol_component:Failed to duplicate string for new label\n"); eol_component_label_free(component); return; } if ((fontName != NULL)&&(strlen(fontName) > 0)) { label->font = eol_font_load(fontName,fontSize); r = eol_font_get_bounds_custom(text,label->font); } else { r = eol_font_get_bounds(text,fontSize); } component->bounds.w = r.w; component->bounds.h = r.h; label->justify = justify; label->fontSize = fontSize; label->alpha = alpha; label->wordWrap = wordWrap; eol_vec3d_copy(label->color,color); component->data_free = eol_component_label_free; component->data_draw = eol_component_label_draw; }