You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koreader/font.lua

48 lines
990 B
Lua

Font = {
-- default font for menu contents
cfont = "sans",
-- default font for title
tfont = "Helvetica-BoldOblique",
-- default font for footer
ffont = "sans",
-- built in fonts
fonts = {"sans", "cjk", "mono",
"Courier", "Courier-Bold", "Courier-Oblique", "Courier-BoldOblique",
"Helvetica", "Helvetica-Oblique", "Helvetica-BoldOblique",
"Times-Roman", "Times-Bold", "Times-Italic", "Times-BoldItalic",},
-- face table
faces = {},
}
function Font:getFaceAndHash(size, font)
if not font then
-- default to content font
font = self.cfont
end
local face = self.faces[font..size]
-- build face if not found
if not face then
for _k,_v in ipairs(self.fonts) do
if font == _v then
face = freetype.newBuiltinFace(font, size)
self.faces[font..size] = face
end
end
if not face then
print("#! Font "..font.." not supported!!")
return nil
end
end
return face, font..size
end
function Font:update()
self.faces = {}
clearglyphcache()
end