summaryrefslogtreecommitdiff
path: root/extra/xournal/poppler-api.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/xournal/poppler-api.patch')
-rw-r--r--extra/xournal/poppler-api.patch158
1 files changed, 0 insertions, 158 deletions
diff --git a/extra/xournal/poppler-api.patch b/extra/xournal/poppler-api.patch
deleted file mode 100644
index 9e33c7feb..000000000
--- a/extra/xournal/poppler-api.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-diff -aur old/src/xo-file.c new/src/xo-file.c
---- old/src/xo-file.c 2009-09-29 09:36:05.000000000 +1000
-+++ new/src/xo-file.c 2011-10-06 03:11:17.307822836 +1100
-@@ -975,6 +975,140 @@
- g_free(req);
- }
-
-+/*
-+ * Copied from http://cgit.freedesktop.org/poppler/poppler/tree/glib/poppler-page.cc?h=poppler-0.16#n617
-+ * as a temporary workaround to poppler removing depreciated functions while we wait for
-+ * upstream to rewrite against cairo
-+ */
-+static void
-+copy_cairo_surface_to_pixbuf (cairo_surface_t *surface, GdkPixbuf *pixbuf)
-+{
-+ int cairo_width, cairo_height, cairo_rowstride;
-+ unsigned char *pixbuf_data, *dst, *cairo_data;
-+ int pixbuf_rowstride, pixbuf_n_channels;
-+ unsigned int *src;
-+ int x, y;
-+
-+ cairo_width = cairo_image_surface_get_width (surface);
-+ cairo_height = cairo_image_surface_get_height (surface);
-+ cairo_rowstride = cairo_image_surface_get_stride (surface);
-+ cairo_data = cairo_image_surface_get_data (surface);
-+
-+ pixbuf_data = gdk_pixbuf_get_pixels (pixbuf);
-+ pixbuf_rowstride = gdk_pixbuf_get_rowstride (pixbuf);
-+ pixbuf_n_channels = gdk_pixbuf_get_n_channels (pixbuf);
-+
-+ if (cairo_width > gdk_pixbuf_get_width (pixbuf))
-+ cairo_width = gdk_pixbuf_get_width (pixbuf);
-+ if (cairo_height > gdk_pixbuf_get_height (pixbuf))
-+ cairo_height = gdk_pixbuf_get_height (pixbuf);
-+ for (y = 0; y < cairo_height; y++)
-+ {
-+ src = (unsigned int *) (cairo_data + y * cairo_rowstride);
-+ dst = pixbuf_data + y * pixbuf_rowstride;
-+ for (x = 0; x < cairo_width; x++)
-+ {
-+ dst[0] = (*src >> 16) & 0xff;
-+ dst[1] = (*src >> 8) & 0xff;
-+ dst[2] = (*src >> 0) & 0xff;
-+ if (pixbuf_n_channels == 4)
-+ dst[3] = (*src >> 24) & 0xff;
-+ dst += pixbuf_n_channels;
-+ src++;
-+ }
-+ }
-+}
-+
-+static void
-+_poppler_page_render_to_pixbuf (PopplerPage *page,
-+ int src_x, int src_y,
-+ int src_width, int src_height,
-+ double scale,
-+ int rotation,
-+ gboolean printing,
-+ GdkPixbuf *pixbuf)
-+{
-+ cairo_t *cr;
-+ cairo_surface_t *surface;
-+
-+ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
-+ src_width, src_height);
-+ cr = cairo_create (surface);
-+ cairo_save (cr);
-+ switch (rotation) {
-+ case 90:
-+ cairo_translate (cr, src_x + src_width, -src_y);
-+ break;
-+ case 180:
-+ cairo_translate (cr, src_x + src_width, src_y + src_height);
-+ break;
-+ case 270:
-+ cairo_translate (cr, -src_x, src_y + src_height);
-+ break;
-+ default:
-+ cairo_translate (cr, -src_x, -src_y);
-+ }
-+
-+ if (scale != 1.0)
-+ cairo_scale (cr, scale, scale);
-+
-+ if (rotation != 0)
-+ cairo_rotate (cr, rotation * G_PI / 180.0);
-+
-+ if (printing)
-+ poppler_page_render_for_printing (page, cr);
-+ else
-+ poppler_page_render (page, cr);
-+ cairo_restore (cr);
-+
-+ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER);
-+ cairo_set_source_rgb (cr, 1., 1., 1.);
-+ cairo_paint (cr);
-+
-+ cairo_destroy (cr);
-+
-+ copy_cairo_surface_to_pixbuf (surface, pixbuf);
-+ cairo_surface_destroy (surface);
-+}
-+
-+/**
-+ * poppler_page_render_to_pixbuf:
-+ * @page: the page to render from
-+ * @src_x: x coordinate of upper left corner
-+ * @src_y: y coordinate of upper left corner
-+ * @src_width: width of rectangle to render
-+ * @src_height: height of rectangle to render
-+ * @scale: scale specified as pixels per point
-+ * @rotation: rotate the document by the specified degree
-+ * @pixbuf: pixbuf to render into
-+ *
-+ * First scale the document to match the specified pixels per point,
-+ * then render the rectangle given by the upper left corner at
-+ * (src_x, src_y) and src_width and src_height.
-+ * This function is for rendering a page that will be displayed.
-+ * If you want to render a page that will be printed use
-+ * poppler_page_render_to_pixbuf_for_printing() instead
-+ *
-+ * Deprecated: 0.16
-+ **/
-+void
-+poppler_page_render_to_pixbuf (PopplerPage *page,
-+ int src_x, int src_y,
-+ int src_width, int src_height,
-+ double scale,
-+ int rotation,
-+ GdkPixbuf *pixbuf)
-+{
-+ g_return_if_fail (POPPLER_IS_PAGE (page));
-+ g_return_if_fail (scale > 0.0);
-+ g_return_if_fail (pixbuf != NULL);
-+
-+ _poppler_page_render_to_pixbuf (page, src_x, src_y,
-+ src_width, src_height,
-+ scale, rotation,
-+ FALSE,
-+ pixbuf);
-+}
- /* process a bg PDF request from the queue, and recurse */
-
- gboolean bgpdf_scheduler_callback(gpointer data)
-diff -aur old/src/xo-file.h new/src/xo-file.h
---- old/src/xo-file.h 2009-09-28 08:45:53.000000000 +1000
-+++ new/src/xo-file.h 2011-10-06 03:11:17.311156160 +1100
-@@ -36,3 +36,10 @@
- void init_config_default(void);
- void load_config_from_file(void);
- void save_config_to_file(void);
-+
-+void poppler_page_render_to_pixbuf (PopplerPage *page,
-+ int src_x, int src_y,
-+ int src_width, int src_height,
-+ double scale,
-+ int rotation,
-+ GdkPixbuf *pixbuf);