diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2010-10-01 18:07:01 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2010-10-01 19:15:31 +0930 |
commit | af3b550bc186361a0b6a779df0fc57799c3f163d (patch) | |
tree | 7b95d0f9c2922b25038832693b934352a7618ff5 /src/cairo-scaled-font-subsets.c | |
parent | 85c25d79f7e77ae35a68b9444609aef8d5397011 (diff) | |
download | cairo-af3b550bc186361a0b6a779df0fc57799c3f163d.tar.gz |
PDF: Add support for latin subsets
Add support for Type 1 and TrueType latin subsets.
CFF latin subsets are not yet implemented.
Diffstat (limited to 'src/cairo-scaled-font-subsets.c')
-rw-r--r-- | src/cairo-scaled-font-subsets.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/cairo-scaled-font-subsets.c b/src/cairo-scaled-font-subsets.c index 677bd5ae4..79a778ff1 100644 --- a/src/cairo-scaled-font-subsets.c +++ b/src/cairo-scaled-font-subsets.c @@ -70,6 +70,7 @@ typedef struct _cairo_sub_font { cairo_bool_t is_scaled; cairo_bool_t is_composite; cairo_bool_t is_user; + cairo_bool_t use_latin_subset; cairo_scaled_font_subsets_t *parent; cairo_scaled_font_t *scaled_font; unsigned int font_id; @@ -294,7 +295,11 @@ _cairo_sub_font_create (cairo_scaled_font_subsets_t *parent, sub_font->scaled_font = scaled_font; sub_font->font_id = font_id; - if (parent->use_latin_subset) + sub_font->use_latin_subset = parent->use_latin_subset; + if (_cairo_cff_scaled_font_is_cff (scaled_font)) + sub_font->use_latin_subset = FALSE; /* CFF latin subsets are NYI */ + + if (sub_font->use_latin_subset) sub_font->current_subset = 1; /* reserve subset 0 for latin glyphs */ else sub_font->current_subset = 0; @@ -616,7 +621,7 @@ _cairo_sub_font_map_glyph (cairo_sub_font_t *sub_font, * create a separate subset just for the .notdef glyph. */ is_latin = FALSE; - if (sub_font->parent->use_latin_subset && + if (sub_font->use_latin_subset && (! _cairo_font_face_is_user (sub_font->scaled_font->font_face))) { latin_character = _cairo_unicode_to_winansi (font_unicode); @@ -702,7 +707,7 @@ _cairo_sub_font_collect (void *entry, void *closure) subset.glyph_names = NULL; subset.is_latin = FALSE; - if (sub_font->parent->use_latin_subset && i == 0) { + if (sub_font->use_latin_subset && i == 0) { subset.is_latin = TRUE; subset.latin_to_subset_glyph_index = collection->latin_to_subset_glyph_index; } else { |