Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2008-01-13 11:23:44 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2008-01-13 11:23:44 (GMT)
commit4207c30cf856a79bc6e23219bf43554470cd4b0b (patch)
tree3a3e7adee75aea1745aae016a53c4dec333c749b /backend
parent9fa361629b670a428f9106128f5a66676db9a9a7 (diff)
Bump requirements to libspectre 0.2.0. Fixes bug #507705.
2008-01-13 Carlos Garcia Campos <carlosgc@gnome.org> * configure.ac: * backend/dvi/cairo-device.c: (dvi_cairo_draw_ps): * backend/ps/ev-spectre.c: (ps_document_render): Bump requirements to libspectre 0.2.0. Fixes bug #507705. svn path=/trunk/; revision=2816
Diffstat (limited to 'backend')
-rw-r--r--backend/dvi/cairo-device.c24
-rw-r--r--backend/ps/ev-spectre.c4
2 files changed, 15 insertions, 13 deletions
diff --git a/backend/dvi/cairo-device.c b/backend/dvi/cairo-device.c
index 95f3e63..b8ec39e 100644
--- a/backend/dvi/cairo-device.c
+++ b/backend/dvi/cairo-device.c
@@ -135,8 +135,8 @@ dvi_cairo_draw_ps (DviContext *dvi,
unsigned char *data = NULL;
int row_length;
SpectreDocument *psdoc;
- SpectrePage *page;
SpectreRenderContext *rc;
+ int w, h;
SpectreStatus status;
cairo_surface_t *image;
@@ -148,24 +148,24 @@ dvi_cairo_draw_ps (DviContext *dvi,
spectre_document_free (psdoc);
return;
}
-
- page = spectre_document_get_page (psdoc, 0);
- if (!page) {
- spectre_document_free (psdoc);
- return;
- }
+
+ spectre_document_get_page_size (psdoc, &w, &h);
rc = spectre_render_context_new ();
- spectre_render_context_set_page_size (rc, width, height);
- spectre_page_render (page, rc, &data, &row_length);
- status = spectre_page_status (page);
- spectre_render_context_free (rc);
+ spectre_render_context_set_scale (rc,
+ (double)width / w,
+ (double)height / h);
+ spectre_document_render_full (psdoc, rc, &data, &row_length);
+ status = spectre_document_status (psdoc);
- spectre_page_free (page);
+ spectre_render_context_free (rc);
spectre_document_free (psdoc);
if (status) {
+ g_warning ("Error rendering PS document %s: %s\n",
+ filename, spectre_status_to_string (status));
free (data);
+
return;
}
diff --git a/backend/ps/ev-spectre.c b/backend/ps/ev-spectre.c
index 41553df..1252b8d 100644
--- a/backend/ps/ev-spectre.c
+++ b/backend/ps/ev-spectre.c
@@ -289,7 +289,9 @@ ps_document_render (EvDocument *document,
rotation = (rc->rotation + get_page_rotation (ps_page)) % 360;
src = spectre_render_context_new ();
- spectre_render_context_set_page_size (src, width, height);
+ spectre_render_context_set_scale (src,
+ (gdouble)width / width_points,
+ (gdouble)height / height_points);
spectre_render_context_set_rotation (src, rotation);
spectre_page_render (ps_page, src, &data, &stride);
spectre_render_context_free (src);