summaryrefslogtreecommitdiff
path: root/src/cairo-scaled-font-subsets.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2010-10-01 18:07:01 +0930
committerAdrian Johnson <ajohnson@redneon.com>2010-10-01 19:15:31 +0930
commitaf3b550bc186361a0b6a779df0fc57799c3f163d (patch)
tree7b95d0f9c2922b25038832693b934352a7618ff5 /src/cairo-scaled-font-subsets.c
parent85c25d79f7e77ae35a68b9444609aef8d5397011 (diff)
downloadcairo-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.c11
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 {