diff options
author | Yichao Zhou | 2016-01-04 03:07:43 -0800 |
---|---|---|
committer | Yichao Zhou | 2016-01-04 03:07:43 -0800 |
commit | 241d4901f590b857227cc18a16759cc39149f208 (patch) | |
tree | ca0d1f5ae14c9a5c01087c8b99115c1265daaaa6 /evince-poppler-subpixel.patch | |
download | aur-241d4901f590b857227cc18a16759cc39149f208.tar.gz |
Initial commit
Diffstat (limited to 'evince-poppler-subpixel.patch')
-rw-r--r-- | evince-poppler-subpixel.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/evince-poppler-subpixel.patch b/evince-poppler-subpixel.patch new file mode 100644 index 000000000000..4f49d4514b75 --- /dev/null +++ b/evince-poppler-subpixel.patch @@ -0,0 +1,51 @@ +diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc +index f3a6510..747d7fd 100644 +--- a/backend/pdf/ev-poppler.cc ++++ b/backend/pdf/ev-poppler.cc +@@ -393,11 +393,31 @@ pdf_page_render (PopplerPage *page, + cairo_t *cr; + double page_width, page_height; + double xscale, yscale; ++ gboolean subpixel_rendering; ++ cairo_font_options_t *fo; + + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, + width, height); + cr = cairo_create (surface); + ++ fo = cairo_font_options_create (); ++ cairo_get_font_options (cr, fo); ++ cairo_font_options_set_hint_style (fo, CAIRO_HINT_STYLE_SLIGHT); ++ ++ subpixel_rendering = poppler_page_support_subpixel_rendering (page); ++ printf("subpixel_rendering: %d\n", subpixel_rendering); ++ printf("subpixel_rendering: %d\n", subpixel_rendering); ++ printf("subpixel_rendering: %d\n", subpixel_rendering); ++ if (subpixel_rendering) { ++ cairo_set_source_rgb (cr, 1., 1., 1.); ++ cairo_paint (cr); ++ ++ cairo_font_options_set_antialias (fo, CAIRO_ANTIALIAS_SUBPIXEL); ++ cairo_font_options_set_subpixel_order (fo, CAIRO_SUBPIXEL_ORDER_RGB); ++ } ++ cairo_set_font_options (cr, fo); ++ cairo_font_options_destroy (fo); ++ + switch (rc->rotation) { + case 90: + cairo_translate (cr, width, 0); +@@ -420,9 +440,11 @@ pdf_page_render (PopplerPage *page, + cairo_rotate (cr, rc->rotation * G_PI / 180.0); + poppler_page_render (page, cr); + +- cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER); +- cairo_set_source_rgb (cr, 1., 1., 1.); +- cairo_paint (cr); ++ if (!subpixel_rendering) { ++ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER); ++ cairo_set_source_rgb (cr, 1., 1., 1.); ++ cairo_paint (cr); ++ } + + cairo_destroy (cr); + |