{
evas_common_font_draw_prepare(text_props);
text_props->changed = EINA_FALSE;
+ text_props->prepare = EINA_FALSE;
}
LKU(fi->ft_mutex);
}
}
EAPI void
-evas_common_pipe_text_prepare(const Evas_Text_Props *text_props)
+evas_common_pipe_text_prepare(Evas_Text_Props *text_props)
{
RGBA_Font_Int *fi;
- const Evas_Text_Props *tmp_props;
- const Eina_List *l;
fi = text_props->font_instance;
if (!fi) return ;
if (!text_props->changed && text_props->generation == fi->generation && text_props->bin)
return ;
- fi = text_props->font_instance;
- if (!fi) return ;
-
LKL(fi->ft_mutex);
- if (!fi->task)
+ if (!fi->task)
{
LKL(text_task_mutex);
text_task = eina_list_append(text_task, fi);
LKU(text_task_mutex);
}
- EINA_LIST_FOREACH(fi->task, l, tmp_props)
- if (tmp_props == text_props)
- goto end;
-
+ if (text_props->prepare) goto end;
+ text_props->prepare = EINA_TRUE;
fi->task = eina_list_append(fi->task, text_props);
end:
EAPI void evas_common_pipe_line_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1);
EAPI void evas_common_pipe_poly_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Point *points, int x, int y);
EAPI void evas_common_pipe_text_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, Evas_Text_Props *intl_props);
-EAPI void evas_common_pipe_text_prepare(const Evas_Text_Props *text_props);
+EAPI void evas_common_pipe_text_prepare(Evas_Text_Props *text_props);
EAPI void evas_common_pipe_image_load(RGBA_Image *im);
EAPI void evas_common_pipe_image_draw(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int smooth, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h);
EAPI void evas_common_pipe_map_begin(RGBA_Image *root);