{
FTLOCK();
FT_Done_Face(fs->ft.face);
-#ifdef USE_HARFBUZZ
- hb_font_destroy(fs->ft.hb_font);
-#endif
FTUNLOCK();
if (fs->name) eina_stringshare_del(fs->name);
if (fs->file) eina_stringshare_del(fs->file);
#ifdef HAVE_PTHREAD
pthread_mutex_destroy(&fi->ft_mutex);
#endif
+#ifdef USE_HARFBUZZ
+ hb_font_destroy(fi->ft.hb_font);
+#endif
evas_common_font_source_free(fi->src);
if (fi->references == 0) fonts_lru = eina_list_remove(fonts_lru, fi);
if (fi->fash) fi->fash->freeme(fi->fash);
_evas_common_font_ot_shape(hb_buffer_t *buffer, RGBA_Font_Int *fi)
{
/* Create hb_font if not previously created */
- if (!fi->src->ft.hb_font)
+ if (!fi->ft.hb_font)
{
hb_font_t *hb_ft_font;
hb_ft_font = hb_ft_font_create(fi->src->ft.face, NULL);
- fi->src->ft.hb_font = hb_font_create_sub_font(hb_ft_font);
+ fi->ft.hb_font = hb_font_create_sub_font(hb_ft_font);
hb_font_destroy(hb_ft_font);
- hb_font_set_funcs(fi->src->ft.hb_font,
+ hb_font_set_funcs(fi->ft.hb_font,
_evas_common_font_ot_font_funcs_get(), fi, NULL);
}
- hb_shape(fi->src->ft.hb_font, buffer, NULL, 0);
+ hb_shape(fi->ft.hb_font, buffer, NULL, 0);
}
EAPI Eina_Bool
unsigned char sizeok : 1;
};
+#include "../engines/common/evas_font_ot.h"
+
struct _RGBA_Font_Int
{
EINA_INLIST;
int usage;
struct {
FT_Size size;
+#ifdef USE_HARFBUZZ
+ void *hb_font;
+#endif
} ft;
LK(ft_mutex);
Font_Hint_Flags hinting;
unsigned char inuse : 1;
};
-#include "../engines/common/evas_font_ot.h"
-
struct _RGBA_Font_Source
{
const char *name;
struct {
int orig_upem;
FT_Face face;
-#ifdef USE_HARFBUZZ
- void *hb_font;
-#endif
} ft;
};