simplify poppler-0.17 patch to avoid adding to libgimp (#698157)
This commit is contained in:
parent
f2fbfafa88
commit
23f8a9411d
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@ gimp-2.6.10-1-autoreconf.patch.bz2
|
||||
/gimp-2.6.11.tar.bz2
|
||||
/gimp-2.6.11-1-autoreconf.patch.bz2
|
||||
/gimp-2.6.11-10-autoreconf.patch.bz2
|
||||
/gimp-2.6.11-11-autoreconf.patch.bz2
|
||||
|
@ -1,18 +1,27 @@
|
||||
From a915dce96f6d7d75ae09ec5355a404f00fc0460e Mon Sep 17 00:00:00 2001
|
||||
From 69f69eed816b89be9a01a48a1f0643d1fd496118 Mon Sep 17 00:00:00 2001
|
||||
From: Nils Philippsen <nils@redhat.com>
|
||||
Date: Tue, 3 May 2011 15:58:39 +0200
|
||||
Date: Fri, 6 May 2011 11:58:44 +0200
|
||||
Subject: [PATCH] patch: poppler-0.17
|
||||
|
||||
Squashed commit of the following:
|
||||
|
||||
commit ad0adb0862960739f5dd2d699d2c75aee5e204d9
|
||||
commit 529d940222dfc352d41fbf72de29134421aa4002
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Fri May 6 11:50:30 2011 +0200
|
||||
|
||||
use code based on pixbufs instead of cairo surfaces
|
||||
|
||||
this is done to avoid adding to libgimp, thanks to Mukund Sivaraman for
|
||||
hints how to do this
|
||||
|
||||
commit f8671d8767d4cdab830dc06310e96c63a88ec0fd
|
||||
Author: Mukund Sivaraman <muks@banu.com>
|
||||
Date: Thu Apr 21 13:57:13 2011 +0530
|
||||
|
||||
file-pdf-load: Update attribution, removing bogus copyright
|
||||
(cherry picked from commit e999122e0b20b6ccd6bde3ce039bb64068fc0019)
|
||||
|
||||
commit b320fff7564fe254454df78c4af00e7da70fc790
|
||||
commit 89a78f2590d298dac2f42e6d9a3016fc5d672c70
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Apr 21 13:52:18 2011 +0200
|
||||
|
||||
@ -23,7 +32,7 @@ Date: Thu Apr 21 13:52:18 2011 +0200
|
||||
* uses GTK+ 3 API to convert surfaces to pixbufs where available
|
||||
(backported from commit 7bdadd80ba479d6ff904e276d805e16f6b940ee2)
|
||||
|
||||
commit 83428bcdc84a08a8b59e9a88cad2288f6a1edf45
|
||||
commit 4e92302c4a14a961f112587a0ad86696c88da2f8
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Thu Apr 21 13:38:08 2011 +0200
|
||||
|
||||
@ -34,517 +43,12 @@ Date: Thu Apr 21 13:38:08 2011 +0200
|
||||
Conflicts:
|
||||
|
||||
plug-ins/common/file-pdf.c
|
||||
|
||||
commit e51f6274e69c88f2ac269da7ae9cf6ff6ac6e1b3
|
||||
Author: Nils Philippsen <nils@redhat.com>
|
||||
Date: Tue May 3 15:52:00 2011 +0200
|
||||
|
||||
libgimp: add gimp_layer_new_from_surface()
|
||||
|
||||
and to enable that, make libgimp depend on Cairo.
|
||||
|
||||
backported from:
|
||||
|
||||
commit 374dd50c43cca559a4888224f8fd6322fb26115d
|
||||
Author: Michael Natterer <mitch@gimp.org>
|
||||
Date: Wed Apr 20 23:58:00 2011 +0200
|
||||
|
||||
libgimp: add gimp_layer_new_from_surface()
|
||||
|
||||
and to enable that, make libgimp depend on Cairo.
|
||||
---
|
||||
configure.in | 2 +
|
||||
gimp.pc.in | 2 +-
|
||||
libgimp/Makefile.am | 2 +-
|
||||
libgimp/gimp.h | 1 +
|
||||
libgimp/gimplayer.c | 211 ++++++++++++++++++++++
|
||||
libgimp/gimplayer.h | 8 +
|
||||
plug-ins/common/Makefile.am | 40 ++--
|
||||
plug-ins/common/file-pdf.c | 368 ++++++++++++++++++++++++++++++++-------
|
||||
plug-ins/common/mkgen.pl | 2 +-
|
||||
plug-ins/file-faxg3/Makefile.am | 2 +
|
||||
plug-ins/help/Makefile.am | 2 +
|
||||
11 files changed, 558 insertions(+), 82 deletions(-)
|
||||
plug-ins/common/file-pdf.c | 323 ++++++++++++++++++++++++++++++++++++++------
|
||||
1 files changed, 283 insertions(+), 40 deletions(-)
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
index 41400f9..4338a13 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -113,8 +113,10 @@ AC_SUBST(GIMP_FULL_NAME)
|
||||
# These are used in the .pc files
|
||||
GLIB_REQUIRED_VERSION=glib_required_version
|
||||
GTK_REQUIRED_VERSION=gtk_required_version
|
||||
+CAIRO_REQUIRED_VERSION=cairo_required_version
|
||||
AC_SUBST(GLIB_REQUIRED_VERSION)
|
||||
AC_SUBST(GTK_REQUIRED_VERSION)
|
||||
+AC_SUBST(CAIRO_REQUIRED_VERSION)
|
||||
|
||||
# The symbol GIMP_UNSTABLE is defined above for substitution in
|
||||
# Makefiles and conditionally defined here as a preprocessor symbol
|
||||
diff --git a/gimp.pc.in b/gimp.pc.in
|
||||
index 9d0058a..e61b438 100644
|
||||
--- a/gimp.pc.in
|
||||
+++ b/gimp.pc.in
|
||||
@@ -12,6 +12,6 @@ gimplocaledir=@gimplocaledir@
|
||||
Name: GIMP
|
||||
Description: GIMP Library
|
||||
Version: @GIMP_REAL_VERSION@
|
||||
-Requires: glib-2.0 >= @GLIB_REQUIRED_VERSION@
|
||||
+Requires: glib-2.0 >= @GLIB_REQUIRED_VERSION@ cairo >= @CAIRO_REQUIRED_VERSION@
|
||||
Libs: -L${libdir} -lgimp-@GIMP_API_VERSION@ -lgimpmath-@GIMP_API_VERSION@ -lgimpconfig-@GIMP_API_VERSION@ -lgimpcolor-@GIMP_API_VERSION@ -lgimpbase-@GIMP_API_VERSION@ @RT_LIBS@
|
||||
Cflags: -I${includedir}/gimp-@GIMP_API_VERSION@
|
||||
diff --git a/libgimp/Makefile.am b/libgimp/Makefile.am
|
||||
index f61568d..6912b64 100644
|
||||
--- a/libgimp/Makefile.am
|
||||
+++ b/libgimp/Makefile.am
|
||||
@@ -363,7 +363,7 @@ libgimpui_2_0_la_LDFLAGS = \
|
||||
$(libgimpui_export_symbols)
|
||||
|
||||
libgimpui_2_0_la_LIBADD = $(libgimp) $(libgimpwidgets) $(libgimpcolor) \
|
||||
- $(libgimpbase) $(libgimpmodule) $(GTK_LIBS) $(RT_LIBS)
|
||||
+ $(libgimpbase) $(libgimpmodule) $(CAIRO_LIBS) $(GTK_LIBS) $(RT_LIBS)
|
||||
|
||||
libgimpui_2_0_la_DEPENDENCIES = $(gimpui_def) $(libgimp) $(libgimpwidgets) $(libgimpbase)
|
||||
|
||||
diff --git a/libgimp/gimp.h b/libgimp/gimp.h
|
||||
index 156530f..096dc2d 100644
|
||||
--- a/libgimp/gimp.h
|
||||
+++ b/libgimp/gimp.h
|
||||
@@ -22,6 +22,7 @@
|
||||
#ifndef __GIMP_H__
|
||||
#define __GIMP_H__
|
||||
|
||||
+#include <cairo.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
#include <libgimpbase/gimpbase.h>
|
||||
diff --git a/libgimp/gimplayer.c b/libgimp/gimplayer.c
|
||||
index 719542a..5bee7c6 100644
|
||||
--- a/libgimp/gimplayer.c
|
||||
+++ b/libgimp/gimplayer.c
|
||||
@@ -84,6 +84,217 @@ gimp_layer_copy (gint32 layer_ID)
|
||||
}
|
||||
|
||||
/**
|
||||
+ * GIMP_CAIRO_RGB24_GET_PIXEL:
|
||||
+ * @s: pointer to the source buffer
|
||||
+ * @r: red component
|
||||
+ * @g: green component
|
||||
+ * @b: blue component
|
||||
+ *
|
||||
+ * Gets a single pixel from a Cairo image surface in %CAIRO_FORMAT_RGB24.
|
||||
+ *
|
||||
+ * Since: GIMP 2.8
|
||||
+ **/
|
||||
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
|
||||
+#define GIMP_CAIRO_RGB24_GET_PIXEL(s, r, g, b) \
|
||||
+ G_STMT_START { (b) = s[0]; (g) = s[1]; (r) = s[2]; } G_STMT_END
|
||||
+#else
|
||||
+#define GIMP_CAIRO_RGB24_GET_PIXEL(s, r, g, b) \
|
||||
+ G_STMT_START { (r) = s[1]; (g) = s[2]; (b) = s[3]; } G_STMT_END
|
||||
+#endif
|
||||
+
|
||||
+/**
|
||||
+ * GIMP_CAIRO_ARGB32_GET_PIXEL:
|
||||
+ * @s: pointer to the source buffer
|
||||
+ * @r: red component, not pre-multiplied
|
||||
+ * @g: green component, not pre-multiplied
|
||||
+ * @b: blue component, not pre-multiplied
|
||||
+ * @a: alpha component
|
||||
+ *
|
||||
+ * Gets a single pixel from a Cairo image surface in %CAIRO_FORMAT_ARGB32.
|
||||
+ *
|
||||
+ * Since: GIMP 2.8
|
||||
+ **/
|
||||
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
|
||||
+#define GIMP_CAIRO_ARGB32_GET_PIXEL(s, r, g, b, a) \
|
||||
+ G_STMT_START { \
|
||||
+ const guint tb = (s)[0]; \
|
||||
+ const guint tg = (s)[1]; \
|
||||
+ const guint tr = (s)[2]; \
|
||||
+ const guint ta = (s)[3]; \
|
||||
+ (r) = (tr << 8) / (ta + 1); \
|
||||
+ (g) = (tg << 8) / (ta + 1); \
|
||||
+ (b) = (tb << 8) / (ta + 1); \
|
||||
+ (a) = ta; \
|
||||
+ } G_STMT_END
|
||||
+#else
|
||||
+#define GIMP_CAIRO_ARGB32_GET_PIXEL(s, r, g, b, a) \
|
||||
+ G_STMT_START { \
|
||||
+ const guint ta = (s)[0]; \
|
||||
+ const guint tr = (s)[1]; \
|
||||
+ const guint tg = (s)[2]; \
|
||||
+ const guint tb = (s)[3]; \
|
||||
+ (r) = (tr << 8) / (ta + 1); \
|
||||
+ (g) = (tg << 8) / (ta + 1); \
|
||||
+ (b) = (tb << 8) / (ta + 1); \
|
||||
+ (a) = ta; \
|
||||
+ } G_STMT_END
|
||||
+#endif
|
||||
+
|
||||
+/**
|
||||
+ * gimp_layer_new_from_surface:
|
||||
+ * @image_ID: The RGB image to which to add the layer.
|
||||
+ * @name: The layer name.
|
||||
+ * @cairo_surface_t: A Cairo image surface.
|
||||
+ * @opacity: The layer opacity.
|
||||
+ * @mode: The layer combination mode.
|
||||
+ * @progress_start: start of progress
|
||||
+ * @progress_end: end of progress
|
||||
+ *
|
||||
+ * Create a new layer from a #cairo_surface_t.
|
||||
+ *
|
||||
+ * This procedure creates a new layer from the given
|
||||
+ * #cairo_surface_t. The image has to be an RGB image and just like
|
||||
+ * with gimp_layer_new() you will still need to add the layer to it.
|
||||
+ *
|
||||
+ * If you pass @progress_end > @progress_start to this function,
|
||||
+ * gimp_progress_update() will be called for. You have to call
|
||||
+ * gimp_progress_init() beforehand then.
|
||||
+ *
|
||||
+ * Returns: The newly created layer.
|
||||
+ *
|
||||
+ * Since: GIMP 2.8
|
||||
+ */
|
||||
+gint32
|
||||
+gimp_layer_new_from_surface (gint32 image_ID,
|
||||
+ const gchar *name,
|
||||
+ cairo_surface_t *surface,
|
||||
+ gdouble opacity,
|
||||
+ GimpLayerModeEffects mode,
|
||||
+ gdouble progress_start,
|
||||
+ gdouble progress_end)
|
||||
+{
|
||||
+ GimpDrawable *drawable;
|
||||
+ GimpPixelRgn rgn;
|
||||
+ const guchar *pixels;
|
||||
+ gpointer pr;
|
||||
+ gint32 layer;
|
||||
+ cairo_format_t format;
|
||||
+ gint width;
|
||||
+ gint height;
|
||||
+ gint rowstride;
|
||||
+ gdouble range = progress_end - progress_start;
|
||||
+ guint count = 0;
|
||||
+ guint done = 0;
|
||||
+
|
||||
+ g_return_val_if_fail (surface != NULL, -1);
|
||||
+ g_return_val_if_fail (cairo_surface_get_type (surface) ==
|
||||
+ CAIRO_SURFACE_TYPE_IMAGE, -1);
|
||||
+
|
||||
+ if (gimp_image_base_type (image_ID) != GIMP_RGB)
|
||||
+ {
|
||||
+ g_warning ("gimp_layer_new_from_surface() needs an RGB image");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ width = cairo_image_surface_get_width (surface);
|
||||
+ height = cairo_image_surface_get_height (surface);
|
||||
+ format = cairo_image_surface_get_format (surface);
|
||||
+
|
||||
+ if (format != CAIRO_FORMAT_ARGB32 &&
|
||||
+ format != CAIRO_FORMAT_RGB24)
|
||||
+ {
|
||||
+ g_warning ("gimp_layer_new_from_surface() assumes that surface is RGB");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ layer = gimp_layer_new (image_ID, name, width, height,
|
||||
+ format == CAIRO_FORMAT_RGB24 ?
|
||||
+ GIMP_RGB_IMAGE : GIMP_RGBA_IMAGE,
|
||||
+ opacity, mode);
|
||||
+
|
||||
+ if (layer == -1)
|
||||
+ return -1;
|
||||
+
|
||||
+ drawable = gimp_drawable_get (layer);
|
||||
+
|
||||
+ gimp_pixel_rgn_init (&rgn, drawable, 0, 0, width, height, TRUE, FALSE);
|
||||
+
|
||||
+ rowstride = cairo_image_surface_get_stride (surface);
|
||||
+ pixels = cairo_image_surface_get_data (surface);
|
||||
+
|
||||
+ for (pr = gimp_pixel_rgns_register (1, &rgn);
|
||||
+ pr != NULL;
|
||||
+ pr = gimp_pixel_rgns_process (pr))
|
||||
+ {
|
||||
+ const guchar *src = pixels + rgn.y * rowstride + rgn.x * 4;
|
||||
+ guchar *dest = rgn.data;
|
||||
+ gint y;
|
||||
+
|
||||
+ switch (format)
|
||||
+ {
|
||||
+ case CAIRO_FORMAT_RGB24:
|
||||
+ for (y = 0; y < rgn.h; y++)
|
||||
+ {
|
||||
+ const guchar *s = src;
|
||||
+ guchar *d = dest;
|
||||
+ gint w = rgn.w;
|
||||
+
|
||||
+ while (w--)
|
||||
+ {
|
||||
+ GIMP_CAIRO_RGB24_GET_PIXEL (s, d[0], d[1], d[2]);
|
||||
+
|
||||
+ s += 4;
|
||||
+ d += 3;
|
||||
+ }
|
||||
+
|
||||
+ src += rowstride;
|
||||
+ dest += rgn.rowstride;
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ case CAIRO_FORMAT_ARGB32:
|
||||
+ for (y = 0; y < rgn.h; y++)
|
||||
+ {
|
||||
+ const guchar *s = src;
|
||||
+ guchar *d = dest;
|
||||
+ gint w = rgn.w;
|
||||
+
|
||||
+ while (w--)
|
||||
+ {
|
||||
+ GIMP_CAIRO_ARGB32_GET_PIXEL (s, d[0], d[1], d[2], d[3]);
|
||||
+
|
||||
+ s += 4;
|
||||
+ d += 4;
|
||||
+ }
|
||||
+
|
||||
+ src += rowstride;
|
||||
+ dest += rgn.rowstride;
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (range > 0.0)
|
||||
+ {
|
||||
+ done += rgn.h * rgn.w;
|
||||
+
|
||||
+ if (count++ % 32 == 0)
|
||||
+ gimp_progress_update (progress_start +
|
||||
+ (gdouble) done / (width * height) * range);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (range > 0.0)
|
||||
+ gimp_progress_update (progress_end);
|
||||
+
|
||||
+ gimp_drawable_detach (drawable);
|
||||
+
|
||||
+ return layer;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
* gimp_layer_get_preserve_trans:
|
||||
* @layer_ID: The layer.
|
||||
*
|
||||
diff --git a/libgimp/gimplayer.h b/libgimp/gimplayer.h
|
||||
index cbef025..32d9525 100644
|
||||
--- a/libgimp/gimplayer.h
|
||||
+++ b/libgimp/gimplayer.h
|
||||
@@ -35,6 +35,14 @@ gint32 gimp_layer_new (gint32 image_ID,
|
||||
gdouble opacity,
|
||||
GimpLayerModeEffects mode);
|
||||
gint32 gimp_layer_copy (gint32 layer_ID);
|
||||
+gint32 gimp_layer_new_from_surface (gint32 image_ID,
|
||||
+ const gchar *name,
|
||||
+ cairo_surface_t *surface,
|
||||
+ gdouble opacity,
|
||||
+ GimpLayerModeEffects mode,
|
||||
+ gdouble progress_start,
|
||||
+ gdouble progress_end);
|
||||
+
|
||||
|
||||
#ifndef GIMP_DISABLE_DEPRECATED
|
||||
gboolean gimp_layer_get_preserve_trans (gint32 layer_ID);
|
||||
diff --git a/plug-ins/common/Makefile.am b/plug-ins/common/Makefile.am
|
||||
index d58ecee..612a3e0 100644
|
||||
--- a/plug-ins/common/Makefile.am
|
||||
+++ b/plug-ins/common/Makefile.am
|
||||
@@ -250,7 +250,7 @@ animation_optimize_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -279,7 +279,7 @@ antialias_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -324,7 +324,7 @@ blur_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -595,7 +595,7 @@ contrast_normalize_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -624,7 +624,7 @@ contrast_stretch_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -637,7 +637,7 @@ contrast_stretch_hsv_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -666,7 +666,7 @@ crop_auto_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -679,7 +679,7 @@ crop_zealous_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -868,7 +868,7 @@ edge_laplace_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -978,7 +978,7 @@ file_compressor_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -1007,7 +1007,7 @@ file_desktop_link_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -1052,7 +1052,7 @@ file_gif_load_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -1097,7 +1097,7 @@ file_glob_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -1543,7 +1543,7 @@ gradient_map_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -1572,7 +1572,7 @@ guillotine_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -2052,7 +2052,7 @@ rotate_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -2100,7 +2100,7 @@ semi_flatten_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -2289,7 +2289,7 @@ tile_seamless_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -2350,7 +2350,7 @@ value_invert_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
@@ -2443,7 +2443,7 @@ web_browser_LDADD = \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
- $(GLIB_LIBS) \
|
||||
+ $(GLIB_LIBS) $(CAIRO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
diff --git a/plug-ins/common/file-pdf.c b/plug-ins/common/file-pdf.c
|
||||
index a43b459..ae87a8b 100644
|
||||
index a43b459..43c2b7d 100644
|
||||
--- a/plug-ins/common/file-pdf.c
|
||||
+++ b/plug-ins/common/file-pdf.c
|
||||
@@ -4,6 +4,9 @@
|
||||
@ -570,18 +74,17 @@ index a43b459..ae87a8b 100644
|
||||
gint page,
|
||||
gint preferred_size);
|
||||
|
||||
-static gint32 layer_from_pixbuf (gint32 image,
|
||||
static gint32 layer_from_pixbuf (gint32 image,
|
||||
- const gchar *layer_name,
|
||||
- gint position,
|
||||
- GdkPixbuf *buf,
|
||||
- gdouble progress_start,
|
||||
- gdouble progress_scale);
|
||||
+static gint32 layer_from_surface (gint32 image,
|
||||
+ const gchar *layer_name,
|
||||
+ gint position,
|
||||
+ cairo_surface_t *surface,
|
||||
+ gdouble progress_start,
|
||||
+ gdouble progress_scale);
|
||||
+ const gchar *layer_name,
|
||||
+ gint position,
|
||||
+ GdkPixbuf *pixbuf,
|
||||
+ gdouble progress_start,
|
||||
+ gdouble progress_scale);
|
||||
|
||||
/**
|
||||
** the following was formerly part of
|
||||
@ -594,46 +97,28 @@ index a43b459..ae87a8b 100644
|
||||
- gdouble scale;
|
||||
- gint32 image = -1;
|
||||
- GdkPixbuf *pixbuf = NULL;
|
||||
+ gdouble width = 0;
|
||||
+ gdouble height = 0;
|
||||
+ gdouble scale;
|
||||
+ gint32 image = -1;
|
||||
+ gint num_pages = 0;
|
||||
+ cairo_surface_t *surface = NULL;
|
||||
+ gdouble width = 0;
|
||||
+ gdouble height = 0;
|
||||
+ gdouble scale;
|
||||
+ gint32 image = -1;
|
||||
+ gint num_pages = 0;
|
||||
+ GdkPixbuf *pixbuf = NULL;
|
||||
|
||||
/* Possibly retrieve last settings */
|
||||
gimp_get_data (LOAD_PROC, &loadvals);
|
||||
@@ -455,20 +463,23 @@ run (const gchar *name,
|
||||
@@ -455,7 +463,10 @@ run (const gchar *name,
|
||||
g_object_unref (page);
|
||||
}
|
||||
|
||||
- pixbuf = get_thumbnail (doc, 0, param[1].data.d_int32);
|
||||
+ num_pages = poppler_document_get_n_pages (doc);
|
||||
+
|
||||
+ surface = get_thumb_surface (doc, 0, param[1].data.d_int32);
|
||||
+ pixbuf = get_thumb_pixbuf (doc, 0, param[1].data.d_int32);
|
||||
+
|
||||
g_object_unref (doc);
|
||||
}
|
||||
|
||||
- if (pixbuf)
|
||||
+ if (surface)
|
||||
{
|
||||
- image = gimp_image_new (gdk_pixbuf_get_width (pixbuf),
|
||||
- gdk_pixbuf_get_height (pixbuf),
|
||||
+ image = gimp_image_new (cairo_image_surface_get_width (surface),
|
||||
+ cairo_image_surface_get_height (surface),
|
||||
GIMP_RGB);
|
||||
|
||||
gimp_image_undo_disable (image);
|
||||
|
||||
- layer_from_pixbuf (image, "thumbnail", 0, pixbuf, 0.0, 1.0);
|
||||
- g_object_unref (pixbuf);
|
||||
+ layer_from_surface (image, "thumbnail", 0, surface, 0.0, 1.0);
|
||||
+ cairo_surface_destroy (surface);
|
||||
|
||||
gimp_image_undo_enable (image);
|
||||
gimp_image_clean_all (image);
|
||||
@@ -548,24 +559,260 @@ open_document (const gchar *filename,
|
||||
@@ -548,6 +559,187 @@ open_document (const gchar *filename,
|
||||
return doc;
|
||||
}
|
||||
|
||||
@ -819,30 +304,9 @@ index a43b459..ae87a8b 100644
|
||||
+#endif
|
||||
+
|
||||
static gint32
|
||||
-layer_from_pixbuf (gint32 image,
|
||||
- const gchar *layer_name,
|
||||
- gint position,
|
||||
- GdkPixbuf *pixbuf,
|
||||
- gdouble progress_start,
|
||||
- gdouble progress_scale)
|
||||
+layer_from_surface (gint32 image,
|
||||
+ const gchar *layer_name,
|
||||
+ gint position,
|
||||
+ cairo_surface_t *surface,
|
||||
+ gdouble progress_start,
|
||||
+ gdouble progress_scale)
|
||||
{
|
||||
- gint32 layer = gimp_layer_new_from_pixbuf (image, layer_name, pixbuf,
|
||||
- 100.0, GIMP_NORMAL_MODE,
|
||||
- progress_start,
|
||||
- progress_start + progress_scale);
|
||||
+ gint32 layer = gimp_layer_new_from_surface (image, layer_name, surface,
|
||||
+ 100.0, GIMP_NORMAL_MODE,
|
||||
+ progress_start,
|
||||
+ progress_start + progress_scale);
|
||||
|
||||
gimp_image_add_layer (image, layer, position);
|
||||
|
||||
layer_from_pixbuf (gint32 image,
|
||||
const gchar *layer_name,
|
||||
@@ -566,6 +758,54 @@ layer_from_pixbuf (gint32 image,
|
||||
return layer;
|
||||
}
|
||||
|
||||
@ -876,11 +340,6 @@ index a43b459..ae87a8b 100644
|
||||
+ return surface;
|
||||
+}
|
||||
+
|
||||
+#if 0
|
||||
+
|
||||
+/* This is currently unused, but we'll have it here in case the military
|
||||
+ wants it. */
|
||||
+
|
||||
+static GdkPixbuf *
|
||||
+render_page_to_pixbuf (PopplerPage *page,
|
||||
+ int width,
|
||||
@ -898,46 +357,39 @@ index a43b459..ae87a8b 100644
|
||||
+
|
||||
+ return pixbuf;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
static gint32
|
||||
load_image (PopplerDocument *doc,
|
||||
const gchar *filename,
|
||||
@@ -597,9 +844,9 @@ load_image (PopplerDocument *doc,
|
||||
@@ -597,7 +837,7 @@ load_image (PopplerDocument *doc,
|
||||
gdouble page_width;
|
||||
gdouble page_height;
|
||||
|
||||
- GdkPixbuf *buf;
|
||||
- gint width;
|
||||
- gint height;
|
||||
+ cairo_surface_t *surface;
|
||||
+ gint width;
|
||||
+ gint height;
|
||||
+ GdkPixbuf *pixbuf;
|
||||
gint width;
|
||||
gint height;
|
||||
|
||||
page = poppler_document_get_page (doc, pages->pages[i]);
|
||||
|
||||
@@ -627,15 +874,13 @@ load_image (PopplerDocument *doc,
|
||||
@@ -627,15 +867,13 @@ load_image (PopplerDocument *doc,
|
||||
gimp_image_set_resolution (image_ID, resolution, resolution);
|
||||
}
|
||||
|
||||
- buf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, width, height);
|
||||
+ surface = render_page_to_surface (page, width, height, scale);
|
||||
|
||||
- poppler_page_render_to_pixbuf (page, 0, 0, width, height, scale, 0, buf);
|
||||
-
|
||||
- poppler_page_render_to_pixbuf (page, 0, 0, width, height, scale, 0, buf);
|
||||
+ pixbuf = render_page_to_pixbuf (page, width, height, scale);
|
||||
|
||||
- layer_from_pixbuf (image_ID, page_label, i, buf,
|
||||
- doc_progress, 1.0 / pages->n_pages);
|
||||
+ layer_from_surface (image_ID, page_label, i, surface,
|
||||
+ doc_progress, 1.0 / pages->n_pages);
|
||||
+ layer_from_pixbuf (image_ID, page_label, i, pixbuf,
|
||||
doc_progress, 1.0 / pages->n_pages);
|
||||
|
||||
g_free (page_label);
|
||||
- g_object_unref (buf);
|
||||
+ cairo_surface_destroy (surface);
|
||||
+ g_object_unref(pixbuf);
|
||||
|
||||
doc_progress = (double) (i + 1) / pages->n_pages;
|
||||
gimp_progress_update (doc_progress);
|
||||
@@ -676,30 +921,22 @@ load_image (PopplerDocument *doc,
|
||||
@@ -676,30 +914,22 @@ load_image (PopplerDocument *doc,
|
||||
return image_ID;
|
||||
}
|
||||
|
||||
@ -975,7 +427,7 @@ index a43b459..ae87a8b 100644
|
||||
{
|
||||
gdouble width;
|
||||
gdouble height;
|
||||
@@ -712,15 +949,28 @@ get_thumbnail (PopplerDocument *doc,
|
||||
@@ -712,15 +942,28 @@ get_thumbnail (PopplerDocument *doc,
|
||||
width *= scale;
|
||||
height *= scale;
|
||||
|
||||
@ -1009,7 +461,7 @@ index a43b459..ae87a8b 100644
|
||||
return pixbuf;
|
||||
}
|
||||
|
||||
@@ -769,8 +1019,8 @@ thumbnail_thread (gpointer data)
|
||||
@@ -769,8 +1012,8 @@ thumbnail_thread (gpointer data)
|
||||
idle_data->page_no = i;
|
||||
|
||||
/* FIXME get preferred size from somewhere? */
|
||||
@ -1020,59 +472,6 @@ index a43b459..ae87a8b 100644
|
||||
|
||||
g_idle_add (idle_set_thumbnail, idle_data);
|
||||
|
||||
diff --git a/plug-ins/common/mkgen.pl b/plug-ins/common/mkgen.pl
|
||||
index b0cd786..25ea7a7 100755
|
||||
--- a/plug-ins/common/mkgen.pl
|
||||
+++ b/plug-ins/common/mkgen.pl
|
||||
@@ -131,7 +131,7 @@ foreach (sort keys %plugins) {
|
||||
if (exists $plugins{$_}->{ui}) {
|
||||
$glib = "\$(GTK_LIBS)"
|
||||
} else {
|
||||
- $glib = "\$(GLIB_LIBS)"
|
||||
+ $glib = "\$(GLIB_LIBS) \$(CAIRO_LIBS)"
|
||||
}
|
||||
|
||||
my $optlib = "";
|
||||
diff --git a/plug-ins/file-faxg3/Makefile.am b/plug-ins/file-faxg3/Makefile.am
|
||||
index ac61d86..694127f 100644
|
||||
--- a/plug-ins/file-faxg3/Makefile.am
|
||||
+++ b/plug-ins/file-faxg3/Makefile.am
|
||||
@@ -25,6 +25,7 @@ file_faxg3_SOURCES = \
|
||||
|
||||
INCLUDES = \
|
||||
-I$(top_srcdir) \
|
||||
+ $(CAIRO_CFLAGS) \
|
||||
$(GLIB_CFLAGS) \
|
||||
-I$(includedir)
|
||||
|
||||
@@ -34,6 +35,7 @@ LDADD = \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
$(libgimpmath) \
|
||||
+ $(CAIRO_LIBS) \
|
||||
$(GLIB_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
diff --git a/plug-ins/help/Makefile.am b/plug-ins/help/Makefile.am
|
||||
index c5f49ae..b72d368 100644
|
||||
--- a/plug-ins/help/Makefile.am
|
||||
+++ b/plug-ins/help/Makefile.am
|
||||
@@ -39,6 +39,7 @@ help_SOURCES = help.c
|
||||
|
||||
INCLUDES = \
|
||||
-I$(top_srcdir) \
|
||||
+ $(CAIRO_CFLAGS) \
|
||||
$(GIO_CFLAGS) \
|
||||
-I$(includedir)
|
||||
|
||||
@@ -49,6 +50,7 @@ LDADD = \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
$(libgimpmath) \
|
||||
+ $(CAIRO_LIBS) \
|
||||
$(GIO_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
--
|
||||
1.7.5
|
||||
|
||||
|
@ -38,7 +38,7 @@ Summary: GNU Image Manipulation Program
|
||||
Name: gimp
|
||||
Epoch: 2
|
||||
Version: 2.6.11
|
||||
Release: 10%{?dist}
|
||||
Release: 11%{?dist}
|
||||
%define binver 2.6
|
||||
%define gimp_lang_ver 20
|
||||
%define interfacever 2.0
|
||||
@ -148,7 +148,7 @@ Patch6: gimp-2.6.11-pyslice.patch
|
||||
# backport: work with poppler-0.17
|
||||
Patch7: gimp-2.6.11-poppler-0.17.patch
|
||||
# files changed by autoreconf after applying the above
|
||||
Patch10: gimp-2.6.11-10-autoreconf.patch.bz2
|
||||
Patch10: gimp-2.6.11-11-autoreconf.patch.bz2
|
||||
|
||||
%description
|
||||
GIMP (GNU Image Manipulation Program) is a powerful image composition and
|
||||
@ -505,6 +505,9 @@ fi
|
||||
%{_libdir}/gimp/%{interfacever}/plug-ins/help-browser
|
||||
|
||||
%changelog
|
||||
* Fri May 06 2011 Nils Philippsen <nils@redhat.com> - 2:2.6.11-11
|
||||
- simplify poppler-0.17 patch to avoid adding to libgimp (#698157)
|
||||
|
||||
* Wed May 04 2011 Nils Philippsen <nils@redhat.com> - 2:2.6.11-10
|
||||
- don't use poppler/gdk_pixbuf API removed in poppler >= 0.17 (#698157)
|
||||
- remove obsolete configure options
|
||||
|
Loading…
x
Reference in New Issue
Block a user