Commit a953c601 authored by Carlos Garcia Campos's avatar Carlos Garcia Campos Committed by Carlos Garcia Campos

Use CAIRO_FORMAT_RGB24 instead of CAIRO_FORMAT_ARGB32 when creating page

2007-08-24  Carlos Garcia Campos  <carlosgc@gnome.org>
	* backend/djvu/djvu-document.c: (djvu_document_render):
	* backend/tiff/tiff-document.c: (tiff_document_render):
	* backend/pdf/ev-poppler.cc: (pdf_document_render):
	* libdocument/ev-document-misc.c:
	(ev_document_misc_surface_from_pixbuf),
	(ev_document_misc_surface_rotate_and_scale):
	Use CAIRO_FORMAT_RGB24 instead of CAIRO_FORMAT_ARGB32 when
	creating page surfaces. Fixes bug #453123. Thank you very much to
	Jeff Muizelaar <jeff@infidigm.net>.

svn path=/trunk/; revision=2637
parent c2d5e8f1
2007-08-24 Carlos Garcia Campos <carlosgc@gnome.org>
* backend/djvu/djvu-document.c: (djvu_document_render):
* backend/tiff/tiff-document.c: (tiff_document_render):
* backend/pdf/ev-poppler.cc: (pdf_document_render):
* libdocument/ev-document-misc.c:
(ev_document_misc_surface_from_pixbuf),
(ev_document_misc_surface_rotate_and_scale):
Use CAIRO_FORMAT_RGB24 instead of CAIRO_FORMAT_ARGB32 when
creating page surfaces. Fixes bug #453123. Thank you very much to
Jeff Muizelaar <jeff@infidigm.net>.
2007-08-17 Carlos Garcia Campos <carlosgc@gnome.org>
* shell/ev-page-cache.c: (ev_page_cache_new),
......
......@@ -260,7 +260,7 @@ djvu_document_render (EvDocument *document,
rowstride = page_width * 4;
pixels = (gchar *) g_malloc (page_height * rowstride);
surface = cairo_image_surface_create_for_data (pixels,
CAIRO_FORMAT_ARGB32,
CAIRO_FORMAT_RGB24,
page_width,
page_height,
rowstride);
......
......@@ -500,7 +500,7 @@ pdf_document_render (EvDocument *document,
#ifdef HAVE_POPPLER_PAGE_RENDER
cairo_t *cr;
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24,
width, height);
memset (cairo_image_surface_get_data (surface), 0xff,
cairo_image_surface_get_height (surface) *
......
......@@ -259,7 +259,7 @@ tiff_document_render (EvDocument *document,
return NULL;
surface = cairo_image_surface_create_for_data (pixels,
CAIRO_FORMAT_ARGB32,
CAIRO_FORMAT_RGB24,
width, height,
rowstride);
cairo_surface_set_user_data (surface, &key,
......
......@@ -152,7 +152,7 @@ ev_document_misc_surface_from_pixbuf (GdkPixbuf *pixbuf)
cairo_surface_t *surface;
cairo_t *cr;
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24,
gdk_pixbuf_get_width (pixbuf),
gdk_pixbuf_get_height (pixbuf));
cr = cairo_create (surface);
......@@ -239,6 +239,8 @@ ev_document_misc_surface_rotate_and_scale (cairo_surface_t *surface,
cairo_surface_t *new_surface;
cairo_t *cr;
gint width, height;
gboolean has_alpha;
cairo_format_t surface_format;
gint new_width = dest_width;
gint new_height = dest_height;
......@@ -256,8 +258,13 @@ ev_document_misc_surface_rotate_and_scale (cairo_surface_t *surface,
new_height = dest_width;
}
surface_format = cairo_image_surface_get_format (surface);
has_alpha = (surface_format == CAIRO_FORMAT_ARGB32);
new_surface = cairo_surface_create_similar (surface,
CAIRO_CONTENT_COLOR_ALPHA,
has_alpha ?
CAIRO_CONTENT_COLOR_ALPHA :
CAIRO_CONTENT_COLOR,
new_width, new_height);
cr = cairo_create (new_surface);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment