Esempio n. 1
0
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");
}
Esempio n. 2
0
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;
}