diff options
Diffstat (limited to 'community-testing/apvlv/poppler-gdk.patch')
-rw-r--r-- | community-testing/apvlv/poppler-gdk.patch | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/community-testing/apvlv/poppler-gdk.patch b/community-testing/apvlv/poppler-gdk.patch deleted file mode 100644 index ab487cf1c..000000000 --- a/community-testing/apvlv/poppler-gdk.patch +++ /dev/null @@ -1,150 +0,0 @@ -diff -ruN apvlv-0.1.2-Source/src/ApvlvFile.cpp apvlv-0.1.2-Source.new/src/ApvlvFile.cpp ---- apvlv-0.1.2-Source/src/ApvlvFile.cpp 2011-10-10 14:23:19.205606984 +0200 -+++ apvlv-0.1.2-Source.new/src/ApvlvFile.cpp 2011-10-10 14:21:50.870952455 +0200 -@@ -29,6 +29,10 @@ - #include "ApvlvUtil.hpp" - #include "ApvlvView.hpp" - -+#ifndef POPPLER_WITH_GDK -+#include "poppler-gdk.h" -+#endif -+ - #ifdef HAVE_LIBUMD - #define LIBUMD_ENABLE_GTK - #include <umd.h> -diff -ruN apvlv-0.1.2-Source/src/poppler-gdk.h apvlv-0.1.2-Source.new/src/poppler-gdk.h ---- apvlv-0.1.2-Source/src/poppler-gdk.h 1970-01-01 01:00:00.000000000 +0100 -+++ apvlv-0.1.2-Source.new/src/poppler-gdk.h 2011-10-10 14:22:06.077846565 +0200 -@@ -0,0 +1,132 @@ -+#include <goo/gtypes.h> -+ -+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, -+ GBool 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, -+ gFalse, -+ pixbuf); -+} |