summaryrefslogtreecommitdiff
path: root/source/html/html-font.c
AgeCommit message (Collapse)Author
2017-06-22Use unsigned char arrays in hexdumped data.Tor Andersson
2017-04-27Include required system headers.Tor Andersson
2017-04-27Make HTML header private.Tor Andersson
2016-10-18All external drop functions handles NULL.Sebastian Rasmussen
2016-10-05Move fz_font definition to be private.Robin Watts
Move the definition of fz_font to be in a private header file rather than in the public API. Add accessors for specific parts of the structure and use them as appropriate. The font flags, and the harfbuzz records remain public. This means that only 3 files now need access to the font implementation (font.c, pdf-font.c and pdf-type3.c). This may be able to be improved further in future.
2016-04-04epub: Add stripped Charis SIL font to use as the default font for EPUB.Tor Andersson
2016-03-31html: Tweak how builtin font families are loaded.Tor Andersson
2016-03-23Compile embedded fonts in separate C files.Tor Andersson
Also change unsigned char into const char for embedded data.
2016-02-10Add bold/italic/monospaced/serif flags to fz_font.Tor Andersson
Use the flags when selecting a fallback font.
2016-01-28Add fallback font cache to font context.Tor Andersson
2016-01-28Add Noto fallback fonts.Tor Andersson
Look up fallback fonts by unicode script, with a flag to select the serif or sans-serif font style where such variants exist. Move all builtin fonts into fitz namespace.
2016-01-22epub: Ignore missing fallback font for NOCJK builds.Tor Andersson
2016-01-22epub: Implement @font-face rules.Tor Andersson
Note: font->fallback is not reference counted here. The fallback mechanism is probably going to have to change when we add text shaping.
2016-01-21epub: Put font fallback chain in fz_font.Tor Andersson
fz_encode_character_with_fallback finds the first font in the fallback chain that has the glyph encoded, and if none do then try to encode a bullet character.
2015-09-15epub: Use a fallback font.Tor Andersson
2015-03-24Rework handling of PDF names for speed and memory.Robin Watts
Currently, every PDF name is allocated in a pdf_obj structure, and comparisons are done using strcmp. Given that we can predict most of the PDF names we'll use in a given file, this seems wasteful. The pdf_obj type is opaque outside the pdf-object.c file, so we can abuse it slightly without anyone outside knowing. We collect a sorted list of names used in PDF (resources/pdf/names.txt), and we add a utility (namedump) that preprocesses this into 2 header files. The first (include/mupdf/pdf/pdf-names-table.h, included as part of include/mupdf/pdf/object.h), defines a set of "PDF_NAME_xxxx" entries. These are pdf_obj *'s that callers can use to mean "A PDF object that means literal name 'xxxx'" The second (source/pdf/pdf-name-impl.h) is a C array of names. We therefore update the code so that rather than passing "xxxx" to functions (such as pdf_dict_gets(...)) we now pass PDF_NAME_xxxx (to pdf_dict_get(...)). This is a fairly natural (if widespread) change. The pdf_dict_getp (and sibling) functions that take a path (e.g. "foo/bar/baz") are therefore supplemented with equivalents that take a list (pdf_dict_getl(... , PDF_NAME_foo, PDF_NAME_bar, PDF_NAME_baz, NULL)). The actual implementation of this relies on the fact that small pointer values are never valid values. For a given pdf_obj *p, if NULL < (intptr_t)p < PDF_NAME__LIMIT then p is a literal entry in the name table. This enables us to do fast pointer compares and to skip expensive strcmps. Also, bring "null", "true" and "false" into the same style as PDF names. Rather than using full pdf_obj structures for null/true/false, use special pointer values just above the PDF_NAME_ table. This saves memory and makes comparisons easier.
2015-02-23Merge branch 'html'Tor Andersson
Conflicts: Makefile
2014-12-03html: Fail with '[image]' placeholder on broken images.Tor Andersson
TODO: Support loading GIF.
2014-12-03html: Namespace prefix CSS functions.Tor Andersson
2014-12-03html: Rename files.Tor Andersson