コード例 #1
0
void eol_font_draw_text_justify_custom(
    char    * text,
    eolInt    x,
    eolInt    y,
    eolVec3D  color,
    eolFloat  alpha,
    eolFont * font,
    eolUint   justify
  )
{
  eolRect r;
  eolInt dx;
  if (!eol_font_initialized())return;
  switch (justify)
  {
    case eolJustifyLeft:
      dx = x;
      break;
    case eolJustifyCenter:
      dx = (x - (r.w/2));
      break;
    case eolJustifyRight:
      dx = (x - r.w);
      break;
  }
  r = eol_font_get_bounds_custom(text,font);
  eol_font_draw_text_custom(
    text,
    dx,
    y,
    color,
    alpha,
    font
  );
}
コード例 #2
0
eolUint eol_font_get_text_height_average_custom(eolFont *font)
{
  eolRect r;
  r = eol_font_get_bounds_custom(
    "gL",
    font
  );
  return r.h;
}
コード例 #3
0
ファイル: eol_component.c プロジェクト: RabTom/EngineOfLies
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;
}
コード例 #4
0
eolRect eol_font_get_bounds(
    char * text,
    eolInt size
  )
{
  eolRect r = {0,0,0,0};
  if (!eol_font_initialized())return r;
  if (size >= eolFontSizeMax)
  {
    eol_logger_message(
      EOL_LOG_WARN,
      "eol_font: passed a font size outside of available range");
    return r;
  }
  return eol_font_get_bounds_custom(
    text,
    _eol_font_size[size]
  );
}