Free font face id descriptors.
This commit is contained in:
parent
555924a73d
commit
897cbb7df1
|
@ -57,20 +57,20 @@ typedef struct fb_faceid_s {
|
||||||
|
|
||||||
enum fb_face_e {
|
enum fb_face_e {
|
||||||
FB_FACE_SANS_SERIF = 0,
|
FB_FACE_SANS_SERIF = 0,
|
||||||
FB_FACE_SANS_SERIF_BOLD = 1,
|
FB_FACE_SANS_SERIF_BOLD,
|
||||||
FB_FACE_SANS_SERIF_ITALIC = 2,
|
FB_FACE_SANS_SERIF_ITALIC,
|
||||||
FB_FACE_SANS_SERIF_ITALIC_BOLD = 3,
|
FB_FACE_SANS_SERIF_ITALIC_BOLD,
|
||||||
FB_FACE_SERIF = 4,
|
FB_FACE_SERIF,
|
||||||
FB_FACE_SERIF_BOLD = 5,
|
FB_FACE_SERIF_BOLD,
|
||||||
FB_FACE_MONOSPACE = 6,
|
FB_FACE_MONOSPACE,
|
||||||
FB_FACE_MONOSPACE_BOLD = 7,
|
FB_FACE_MONOSPACE_BOLD,
|
||||||
FB_FACE_CURSIVE = 8,
|
FB_FACE_CURSIVE,
|
||||||
FB_FACE_FANTASY = 9,
|
FB_FACE_FANTASY,
|
||||||
|
FB_FACE_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
/* defines for accesing the faces */
|
/* defines for accesing the faces */
|
||||||
#define FB_FACE_DEFAULT 0
|
#define FB_FACE_DEFAULT 0
|
||||||
#define FB_FACE_COUNT 10
|
|
||||||
|
|
||||||
static fb_faceid_t *fb_faces[FB_FACE_COUNT];
|
static fb_faceid_t *fb_faces[FB_FACE_COUNT];
|
||||||
|
|
||||||
|
@ -148,6 +148,7 @@ fb_new_face(const char *option, const char *resname, const char *fontname)
|
||||||
error = FTC_Manager_LookupFace(ft_cmanager, (FTC_FaceID)newf, &aface);
|
error = FTC_Manager_LookupFace(ft_cmanager, (FTC_FaceID)newf, &aface);
|
||||||
if (error) {
|
if (error) {
|
||||||
LOG(("Could not find font face %s (code %d)", fontname, error));
|
LOG(("Could not find font face %s (code %d)", fontname, error));
|
||||||
|
free(newf->fontfile);
|
||||||
free(newf);
|
free(newf);
|
||||||
newf = NULL;
|
newf = NULL;
|
||||||
}
|
}
|
||||||
|
@ -323,8 +324,27 @@ bool fb_font_init(void)
|
||||||
|
|
||||||
bool fb_font_finalise(void)
|
bool fb_font_finalise(void)
|
||||||
{
|
{
|
||||||
FTC_Manager_Done(ft_cmanager );
|
int i, j;
|
||||||
|
|
||||||
|
FTC_Manager_Done(ft_cmanager);
|
||||||
FT_Done_FreeType(library);
|
FT_Done_FreeType(library);
|
||||||
|
|
||||||
|
for (i = 0; i < FB_FACE_COUNT; i++) {
|
||||||
|
if (fb_faces[i] == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* Unset any faces that duplicate this one */
|
||||||
|
for (j = i + 1; j < FB_FACE_COUNT; j++) {
|
||||||
|
if (fb_faces[i] == fb_faces[j])
|
||||||
|
fb_faces[j] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(fb_faces[i]->fontfile);
|
||||||
|
free(fb_faces[i]);
|
||||||
|
|
||||||
|
fb_faces[i] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue