Changed Font to load using filesystem
This commit is contained in:
18
src/font.c
18
src/font.c
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
#include "lib/dmt/dmt.h"
|
#include "lib/dmt/dmt.h"
|
||||||
#include "lib/stb/stb_truetype.h"
|
#include "lib/stb/stb_truetype.h"
|
||||||
|
#include "filesystem.h"
|
||||||
#include "font.h"
|
#include "font.h"
|
||||||
#include "luaobj.h"
|
#include "luaobj.h"
|
||||||
|
|
||||||
@@ -73,18 +74,12 @@ const char *font_init(font_t *self, const char *filename, int ptsize) {
|
|||||||
memset(self, 0, sizeof(*self));
|
memset(self, 0, sizeof(*self));
|
||||||
|
|
||||||
/* Load font file */
|
/* Load font file */
|
||||||
fp = fopen(filename, "rb");
|
int size;
|
||||||
if (!fp) {
|
data = filesystem_read(filename, &size);
|
||||||
|
if (!data) {
|
||||||
errmsg = "could not open font file";
|
errmsg = "could not open font file";
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
fseek(fp, 0, SEEK_END);
|
|
||||||
int sz = ftell(fp);
|
|
||||||
fseek(fp, 0, SEEK_SET);
|
|
||||||
data = dmt_malloc(sz);
|
|
||||||
fread(data, sz, 1, fp);
|
|
||||||
fclose(fp);
|
|
||||||
fp = NULL;
|
|
||||||
|
|
||||||
/* Init font */
|
/* Init font */
|
||||||
errmsg = initFont(self, data, ptsize);
|
errmsg = initFont(self, data, ptsize);
|
||||||
@@ -93,13 +88,14 @@ const char *font_init(font_t *self, const char *filename, int ptsize) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Free font data */
|
/* Free font data */
|
||||||
dmt_free(data);
|
filesystem_free(data);
|
||||||
|
data = NULL;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
if (fp) fclose(fp);
|
if (fp) fclose(fp);
|
||||||
dmt_free(data);
|
filesystem_free(data);
|
||||||
return errmsg;
|
return errmsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user