b=383960, Upgrade cairo to 1.4.8, r=me -- moz cairo: win32-no-printer-bitblt.patch

This commit is contained in:
vladimir@pobox.com 2007-06-10 17:07:36 -07:00
Родитель b7269623f7
Коммит 9edce7d57e
2 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -27,3 +27,8 @@ fbcompose-bandaid.patch: Disable "optimized" code in non-MMX case due to bugs
win32-scaled-font-size.patch: Add cairo_win32_font_face_create_for_logfontw_hfont,
allow win32 scaled_fonts to rescale themselves properly to the required CTM
and only use the font_face's hfont if we're sure it's appropriate
win32-no-printer-bitblt.patch: If we need to BitBlt from a DC (to do
fallback), only bother trying if the IS_DISPLAY flag is set -- many
printers lie about their support for BitBlt, and we end up getting
black instead of what we want.

Просмотреть файл

@ -0,0 +1,17 @@
diff -r 0a3ea2430215 gfx/cairo/cairo/src/cairo-win32-surface.c
--- a/gfx/cairo/cairo/src/cairo-win32-surface.c Fri Jun 08 18:04:18 2007 -0700
+++ b/gfx/cairo/cairo/src/cairo-win32-surface.c Fri Jun 08 18:06:00 2007 -0700
@@ -476,7 +476,12 @@ _cairo_win32_surface_get_subimage (cairo
status = CAIRO_INT_STATUS_UNSUPPORTED;
- if ((local->flags & CAIRO_WIN32_SURFACE_CAN_BITBLT) &&
+ /* Check for SURFACE_IS_DISPLAY here, because there are a lot
+ * of printer drivers that lie and say they can BitBlt, but
+ * just spit out black instead.
+ */
+ if ((local->flags & CAIRO_WIN32_SURFACE_IS_DISPLAY) &&
+ (local->flags & CAIRO_WIN32_SURFACE_CAN_BITBLT) &&
BitBlt (local->dc,
0, 0,
width, height,