From 415856bdd4f48ab4f2732996f0bae58595092bbe Mon Sep 17 00:00:00 2001 From: Parabola Date: Tue, 5 Apr 2011 14:26:38 +0000 Subject: Tue Apr 5 14:26:38 UTC 2011 --- extra/gimp-refocus/PKGBUILD | 34 ++ extra/gimp-refocus/refocus-gimp-2.0.patch | 209 ++++++++++++ extra/gimp-refocus/refocus-gimp-preview.patch | 440 ++++++++++++++++++++++++++ extra/gimp-refocus/refocus-mirror-fix.patch | 54 ++++ 4 files changed, 737 insertions(+) create mode 100644 extra/gimp-refocus/PKGBUILD create mode 100644 extra/gimp-refocus/refocus-gimp-2.0.patch create mode 100644 extra/gimp-refocus/refocus-gimp-preview.patch create mode 100644 extra/gimp-refocus/refocus-mirror-fix.patch (limited to 'extra/gimp-refocus') diff --git a/extra/gimp-refocus/PKGBUILD b/extra/gimp-refocus/PKGBUILD new file mode 100644 index 000000000..6d78aad67 --- /dev/null +++ b/extra/gimp-refocus/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 54791 2009-10-11 19:30:09Z giovanni $ +# Maintainer: Tobias Kieslich +# Contributor: Tobias Kieslich + +pkgname=gimp-refocus +_pname=refocus +pkgver=0.9.0 +pkgrel=2 +arch=(i686 x86_64) +license=(GPL2) +pkgdesc="a sharpen plugin for gimp using FIR Wiener filtering" +depends=('gimp>=2.0.0') +url="http://refocus.sourceforge.net/" +source=(http://downloads.sourceforge.net/sourceforge/${_pname}/${_pname}-${pkgver}.tar.gz +\ + ${_pname}-gimp-2.0.patch ${_pname}-mirror-fix.patch ${_pname}-gimp-preview.patch) +md5sums=('8d4eac4ef45c904fb5e73021696bec94' '8ef9dfe697cd20be2be14c1ee53a240a'\ + '532593cba030feab8ffa7800fc9cd782' '6b55dbdc656646c765064cf21e1a3c57') + +build() { + cd ${startdir}/src/${_pname}-${pkgver} + # we need a *load of patches now to compile + patch -Np0 -i ../${_pname}-gimp-2.0.patch || return 1 + patch -Np0 -i ../${_pname}-mirror-fix.patch || return 1 + patch -Np0 -i ../${_pname}-gimp-preview.patch || return 1 + aclocal + automake -a --gnu --include-deps Makefile + automake -a --gnu --include-deps lib/Makefile + autoconf + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + ./configure --prefix=/usr --bindir=/usr/lib/gimp/2.0/plug-ins + make || return 1 + make DESTDIR=${startdir}/pkg install +} diff --git a/extra/gimp-refocus/refocus-gimp-2.0.patch b/extra/gimp-refocus/refocus-gimp-2.0.patch new file mode 100644 index 000000000..259ee9f87 --- /dev/null +++ b/extra/gimp-refocus/refocus-gimp-2.0.patch @@ -0,0 +1,209 @@ +Index: configure.in +=================================================================== +RCS file: /cvsroot/refocus/refocus/configure.in,v +retrieving revision 1.1.1.1 +diff -u -u -r1.1.1.1 configure.in +--- configure.in 30 Jan 2003 21:29:29 -0000 1.1.1.1 ++++ configure.in 6 Apr 2004 20:26:54 -0000 +@@ -1,8 +1,8 @@ + dnl Process this file with autoconf to produce a configure script. + +-AC_INIT(README) +- +-AM_INIT_AUTOMAKE(refocus, 0.9.0) ++AC_INIT([refocus],[0.9.0]) ++AC_CONFIG_SRCDIR(README) ++AM_INIT_AUTOMAKE + + AC_PROG_CC + AC_CHECK_PROG(GCC3, gcc3, gcc3) +@@ -12,7 +12,7 @@ + AC_MSG_RESULT([using $CC as compiler]) + fi + +-AC_STDC_HEADERS ++AC_HEADER_STDC([]) + AC_PROG_RANLIB + + # Check if the user has ATLAS installed in ./lib-atlas +@@ -36,7 +36,7 @@ + AC_SUBST(LAPACK_INCLUDE_DIR) + AM_CONDITIONAL(HAVE_ATLAS, test x${have_atlas} = xyes) + +-AM_PATH_GIMP(1.2.0) ++AM_PATH_GIMP_2_0(2.0.0) + AM_PATH_GTK_2_0(2.0.0) + AM_PATH_GLIB_2_0(2.0.0) + +@@ -106,5 +106,6 @@ + #Check if erf is defined in the mathlibrary + AC_CHECK_LIB(m, erf, AC_DEFINE(HAVE_ERF)) + +-AC_OUTPUT([Makefile src/Makefile lib/Makefile doc/Makefile gtk-doc/Makefile ]) ++AC_CONFIG_FILES([Makefile src/Makefile lib/Makefile doc/Makefile gtk-doc/Makefile ]) ++AC_OUTPUT + +Index: lib/Makefile.am +=================================================================== +RCS file: /cvsroot/refocus/refocus/lib/Makefile.am,v +retrieving revision 1.1.1.1 +diff -u -u -r1.1.1.1 Makefile.am +--- lib/Makefile.am 30 Jan 2003 21:29:52 -0000 1.1.1.1 ++++ lib/Makefile.am 6 Apr 2004 20:26:55 -0000 +@@ -1,4 +1,4 @@ +-CFLAGS=-fomit-frame-pointer -O3 -funroll-all-loops ++AM_CFLAGS=-fomit-frame-pointer -O3 -funroll-all-loops + + + noinst_LIBRARIES = liblapack.a libatlas.a libcblas.a +Index: src/Makefile.am +=================================================================== +RCS file: /cvsroot/refocus/refocus/src/Makefile.am,v +retrieving revision 1.1.1.1 +diff -u -u -r1.1.1.1 Makefile.am +--- src/Makefile.am 30 Jan 2003 21:30:18 -0000 1.1.1.1 ++++ src/Makefile.am 6 Apr 2004 20:26:55 -0000 +@@ -11,7 +11,7 @@ + EXTRA_DIST = dummy-plugin.c + + refocus_SOURCES = refocus.c conv.c gimppreview.c prevman.c util.c matrix.c tilebuf.c bdclosure.c fwlapack.c +-refocus_LDADD = @GTK_LIBS@ -lgimp ${ldadd_atlas} ++refocus_LDADD = @GIMP_LIBS@ ${ldadd_atlas} + refocus_DEPENDENCIES=@LAPACK_LIB_DIR@/liblapack.a + + test_matrix_SOURCES = matrix.c test-matrix.c fwlapack.c +Index: src/gimppreview.c +=================================================================== +RCS file: /cvsroot/refocus/refocus/src/gimppreview.c,v +retrieving revision 1.1.1.1 +diff -u -u -r1.1.1.1 gimppreview.c +--- src/gimppreview.c 30 Jan 2003 21:30:18 -0000 1.1.1.1 ++++ src/gimppreview.c 6 Apr 2004 20:26:55 -0000 +@@ -344,7 +344,7 @@ + + /* Save the drawable info. */ + preview->drawable = drawable; +- preview->drawable_has_alpha = gimp_drawable_has_alpha (drawable->id); ++ preview->drawable_has_alpha = gimp_drawable_has_alpha (drawable->drawable_id); + + /* Calculate our preview size. */ + if (preview_size == PREVIEW_FIXED_SIZE) +Index: src/prevman.c +=================================================================== +RCS file: /cvsroot/refocus/refocus/src/prevman.c,v +retrieving revision 1.1.1.1 +diff -u -u -r1.1.1.1 prevman.c +--- src/prevman.c 30 Jan 2003 21:30:18 -0000 1.1.1.1 ++++ src/prevman.c 6 Apr 2004 20:26:56 -0000 +@@ -52,7 +52,7 @@ + tile_source->width = drawable->width; + tile_source->height = drawable->height; + tile_source->bpp = drawable->bpp; +- tile_source->has_alpha = gimp_drawable_has_alpha (drawable->id); ++ tile_source->has_alpha = gimp_drawable_has_alpha (drawable->drawable_id); + tile_source->un.drw.drawable = drawable; + gimp_pixel_rgn_init (&tile_source->un.drw.pixel_rgn, drawable, x, y, width, + height, FALSE, FALSE); +@@ -144,7 +144,7 @@ + tile_sink->width = drawable->width; + tile_sink->height = drawable->height; + tile_sink->bpp = drawable->bpp; +- tile_sink->has_alpha = gimp_drawable_has_alpha (drawable->id); ++ tile_sink->has_alpha = gimp_drawable_has_alpha (drawable->drawable_id); + gimp_pixel_rgn_init (&tile_sink->un.drw.pixel_rgn, drawable, x, y, width, + height, TRUE, TRUE); + } +@@ -159,7 +159,7 @@ + tile_sink->width = width; + tile_sink->height = height; + tile_sink->bpp = drawable->bpp; +- tile_sink->has_alpha = gimp_drawable_has_alpha (drawable->id); ++ tile_sink->has_alpha = gimp_drawable_has_alpha (drawable->drawable_id); + tile_sink->un.prv.data = g_new (guchar, + tile_sink->width * tile_sink->height * + tile_sink->bpp); +Index: src/refocus.c +=================================================================== +RCS file: /cvsroot/refocus/refocus/src/refocus.c,v +retrieving revision 1.1.1.1 +diff -u -u -r1.1.1.1 refocus.c +--- src/refocus.c 30 Jan 2003 21:30:19 -0000 1.1.1.1 ++++ src/refocus.c 6 Apr 2004 20:26:56 -0000 +@@ -45,9 +45,9 @@ + + /* Declare local functions. */ + static void query (void); +-static void run (char *name, ++static void run (const gchar *name, + gint nparams, +- GimpParam * param, ++ const GimpParam * param, + gint * nreturn_vals, GimpParam ** return_vals); + static gint dialog (); + static void doit (void); +@@ -111,7 +111,6 @@ + {GIMP_PDB_FLOAT, "noise", "Noise to Signal ratio"}, + }; + static GimpParamDef *return_vals = NULL; +- static gint nargs = (gint) (sizeof (args) / sizeof (args[0])); + static gint nreturn_vals = 0; + + gimp_install_procedure ("plug_in_refocus", +@@ -123,15 +122,15 @@ + "/Filters/Enhance/Refocus ...", + "RGB*, GRAY*", + GIMP_PLUGIN, +- nargs, nreturn_vals, args, return_vals); ++ G_N_ELEMENTS(args), nreturn_vals, args, return_vals); + } + + static void +-run (char *name, gint n_params, GimpParam * param, ++run (const gchar *name, gint n_params, const GimpParam * param, + gint * nreturn_vals, GimpParam ** return_vals) + { + static GimpParam values[1]; +- GimpRunModeType run_mode; ++ GimpRunMode run_mode; + GimpPDBStatusType status = GIMP_PDB_SUCCESS; + + (void) name; /* Shut up warnings about unused parameters. */ +@@ -186,8 +185,8 @@ + { + + /* Make sure that the drawable is gray or RGB color */ +- if (gimp_drawable_is_rgb (drawable->id) || +- gimp_drawable_is_gray (drawable->id)) ++ if (gimp_drawable_is_rgb (drawable->drawable_id) || ++ gimp_drawable_is_gray (drawable->drawable_id)) + { + doit (); + +@@ -411,7 +410,7 @@ + event_is_current = + gimp_preview_draw_unscaled_row (GIMP_PREVIEW (my_widgets.preview), + event->event_id, +- gimp_drawable_type (drawable->id), ++ gimp_drawable_type (drawable->drawable_id), + row, buf); + }; + g_free (buf); +@@ -608,7 +607,7 @@ + gimp_progress_init ("Computing matrix"); + update_matrix (); + gimp_progress_init ("Applying convolution"); +- gimp_drawable_mask_bounds (drawable->id, &sx1, &sy1, &sx2, &sy2); ++ gimp_drawable_mask_bounds (drawable->drawable_id, &sx1, &sy1, &sx2, &sy2); + width = sx2 - sx1; + height = sy2 - sy1; + tile_source_init_from_drawable (&source, drawable, sx1, sy1, width, height); +@@ -618,7 +617,7 @@ + matrix, 2 * my_config.mat_width + 1, + &update_progress_closure); + gimp_drawable_flush (drawable); +- gimp_drawable_merge_shadow (drawable->id, TRUE); +- gimp_drawable_update (drawable->id, sx1, sy1, width, height); ++ gimp_drawable_merge_shadow (drawable->drawable_id, TRUE); ++ gimp_drawable_update (drawable->drawable_id, sx1, sy1, width, height); + g_free (matrix); + } diff --git a/extra/gimp-refocus/refocus-gimp-preview.patch b/extra/gimp-refocus/refocus-gimp-preview.patch new file mode 100644 index 000000000..089365dcb --- /dev/null +++ b/extra/gimp-refocus/refocus-gimp-preview.patch @@ -0,0 +1,440 @@ +diff -ur src/gimppreview.c src/gimppreview.c +--- src/gimppreview.c 2008-03-17 17:20:49.000000000 -0700 ++++ src/gimppreview.c 2008-03-17 17:15:51.000000000 -0700 +@@ -36,18 +36,18 @@ + #include "gimppreview.h" + + +-static void gimp_preview_init (GimpPreview * preview); +-static void gimp_preview_class_init (GimpPreviewClass * klass); ++static void gimp_preview_init (RefocusPreview * preview); ++static void gimp_preview_class_init (RefocusPreviewClass * klass); + + static void gimp_preview_plus_callback (GtkWidget * widget, gpointer data); + static void gimp_preview_minus_callback (GtkWidget * widget, gpointer data); + static gint gimp_preview_event (GtkWidget * widget, GdkEvent * event, + gpointer data); +-static void gimp_preview_recompute_sizes (GimpPreview * preview, ++static void gimp_preview_recompute_sizes (RefocusPreview * preview, + gdouble newscale); +-static void gimp_preview_update_preview (GimpPreview * preview); ++static void gimp_preview_update_preview (RefocusPreview * preview); + +-static void gimp_preview_image_set_size (GimpPreview * preview, gint width, ++static void gimp_preview_image_set_size (RefocusPreview * preview, gint width, + gint height); + static void gimp_preview_size_request (GtkWidget * widget, + GtkRequisition * requisition); +@@ -58,7 +58,7 @@ + GtkCallback callback, + gpointer callback_data); + gboolean gimp_preview_update_preview_idle_fun (gpointer data); +-void gimp_preview_schedule_update (GimpPreview * preview); ++void gimp_preview_schedule_update (RefocusPreview * preview); + + #define PROGRESS_BAR_HEIGHT (10) + #define PREVIEW_SIZE (100) +@@ -94,11 +94,11 @@ + + + /* +- * Apps which use a GimpPreview widget should not be accessing the private ++ * Apps which use a RefocusPreview widget should not be accessing the private + * data! + */ + #define PREVIEW_DATA(preview) \ +- ((GimpPreviewData*)(GIMP_PREVIEW (preview)->private_data)) ++ ((RefocusPreviewData*)(GIMP_PREVIEW (preview)->private_data)) + + typedef struct + { +@@ -126,7 +126,7 @@ + GtkWidget *image; + GtkWidget *progress_bar; + } +-GimpPreviewData; ++RefocusPreviewData; + + + /* Convert coordinate in preview space to image coordinates */ +@@ -155,20 +155,20 @@ + if (!preview_type) + { + GTypeInfo preview_info = { +- sizeof (GimpPreviewClass), ++ sizeof (RefocusPreviewClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) gimp_preview_class_init, + (GClassFinalizeFunc) NULL, + (gconstpointer) NULL, /* class_data */ +- sizeof (GimpPreview), ++ sizeof (RefocusPreview), + 0, /* n_preallocs */ + (GInstanceInitFunc) gimp_preview_init, + (GTypeValueTable *) NULL /* value_table */ + }; + + preview_type = +- g_type_register_static (GTK_TYPE_CONTAINER, "GimpPreview", ++ g_type_register_static (GTK_TYPE_CONTAINER, "RefocusPreview", + &preview_info, 0); + } + +@@ -181,7 +181,7 @@ + * by GTK's internal mechanisms. + */ + static void +-gimp_preview_class_init (GimpPreviewClass * klass) ++gimp_preview_class_init (RefocusPreviewClass * klass) + { + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); +@@ -190,7 +190,7 @@ + g_signal_new ("update_preview", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_FIRST, +- G_STRUCT_OFFSET (GimpPreviewClass, update_preview), ++ G_STRUCT_OFFSET (RefocusPreviewClass, update_preview), + NULL, + NULL, + g_cclosure_marshal_VOID__POINTER, +@@ -200,7 +200,7 @@ + g_signal_new ("preview_changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_FIRST, +- G_STRUCT_OFFSET (GimpPreviewClass, preview_changed), ++ G_STRUCT_OFFSET (RefocusPreviewClass, preview_changed), + NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + + klass->update_preview = NULL; +@@ -212,7 +212,7 @@ + + + void +-gimp_preview_set_scale_amount(GimpPreview *preview, gdouble scale_amount) ++gimp_preview_set_scale_amount(RefocusPreview *preview, gdouble scale_amount) + { + /* + * If the caller wants to set the scale amount, let them do so. +@@ -269,7 +269,7 @@ + * by GTK's internal mechanisms. + */ + static void +-gimp_preview_init (GimpPreview * preview) ++gimp_preview_init (RefocusPreview * preview) + { + gchar buffer[10]; + +@@ -277,7 +277,7 @@ + GTK_WIDGET_SET_FLAGS (preview, GTK_NO_WINDOW); + GTK_CONTAINER (preview)->resize_mode = GTK_RESIZE_IMMEDIATE; + +- preview->private_data = g_malloc0 (sizeof (GimpPreviewData)); ++ preview->private_data = g_malloc0 (sizeof (RefocusPreviewData)); + + + PREVIEW_DATA (preview)->label = gtk_label_new (""); +@@ -307,7 +307,7 @@ + gimp_preview_new_with_args (GimpDrawable * drawable, gint cb_preview_size, + gdouble cb_scale_amount, gint cb_allow_scale) + { +- GimpPreview *preview; ++ RefocusPreview *preview; + GtkWidget *frame; + GtkWidget *hbox; + GtkWidget *event_box; +@@ -454,7 +454,7 @@ + static void + gimp_preview_size_request (GtkWidget * widget, GtkRequisition * requisition) + { +- GimpPreview *preview = GIMP_PREVIEW (widget); ++ RefocusPreview *preview = GIMP_PREVIEW (widget); + GtkRequisition resize_box_requisition; + + #ifdef PREVIEW_DEBUG +@@ -478,7 +478,7 @@ + static void + gimp_preview_size_allocate (GtkWidget * widget, GtkAllocation * allocation) + { +- GimpPreview *preview = GIMP_PREVIEW (widget); ++ RefocusPreview *preview = GIMP_PREVIEW (widget); + GtkAllocation resize_box_allocation, progress_bar_allocation, + event_box_allocation; + GtkRequisition resize_box_requisition; +@@ -543,7 +543,7 @@ + gboolean include_internals, + GtkCallback callback, gpointer callback_data) + { +- GimpPreview *preview = GIMP_PREVIEW (container); ++ RefocusPreview *preview = GIMP_PREVIEW (container); + + if (PREVIEW_DATA (preview)->resize_box) + { +@@ -564,7 +564,7 @@ + * Plug-ins call this to do an update of the preview area. + */ + void +-gimp_preview_update (GimpPreview * preview) ++gimp_preview_update (RefocusPreview * preview) + { + gimp_preview_recompute_sizes (preview, preview->scale); + gimp_preview_update_preview (preview); +@@ -579,7 +579,7 @@ + static void + gimp_preview_plus_callback (GtkWidget * widget, gpointer data) + { +- GimpPreview *preview; ++ RefocusPreview *preview; + gchar buffer[10]; + gdouble new_scale; + +@@ -616,7 +616,7 @@ + static void + gimp_preview_minus_callback (GtkWidget * widget, gpointer data) + { +- GimpPreview *preview; ++ RefocusPreview *preview; + gchar buffer[10]; + gdouble new_scale; + +@@ -651,7 +651,7 @@ + static gint + gimp_preview_event (GtkWidget * widget, GdkEvent * event, gpointer data) + { +- GimpPreview *preview; ++ RefocusPreview *preview; + GdkEventButton *button_event; + gint x, y; + gint dx, dy; +@@ -733,7 +733,7 @@ + * This function is also used for initializing the preview. + */ + static void +-gimp_preview_recompute_sizes (GimpPreview * preview, gdouble new_scale) ++gimp_preview_recompute_sizes (RefocusPreview * preview, gdouble new_scale) + { + + /* The center of the preview in image coordinates. +@@ -765,7 +765,7 @@ + } + + void +-gimp_preview_generate_update_event (GimpPreview * preview) ++gimp_preview_generate_update_event (RefocusPreview * preview) + /* Signal the user that the preview must be updated */ + { + const gdouble scale = preview->scale; +@@ -783,7 +783,7 @@ + 0, + preview->drawable->height - image_y); + +- GimpPreviewEvent preview_event; ++ RefocusPreviewEvent preview_event; + + preview_event.event_id = PREVIEW_DATA (preview)->current_event_id; + preview_event.scale = preview->scale; +@@ -814,7 +814,7 @@ + * to step through source and destination! + */ + static void +-gimp_preview_update_preview (GimpPreview * preview) ++gimp_preview_update_preview (RefocusPreview * preview) + { + GimpPixelRgn region; + guchar *image_data = NULL; +@@ -1012,7 +1012,7 @@ + + + void +-gimp_preview_force_redraw (GimpPreview * preview) ++gimp_preview_force_redraw (RefocusPreview * preview) + { + gtk_widget_queue_draw (GTK_WIDGET (PREVIEW_DATA (preview)->image)); + } +@@ -1022,7 +1022,7 @@ + gboolean + gimp_preview_update_preview_idle_fun (gpointer data) + { +- GimpPreview *preview = GIMP_PREVIEW (data); ++ RefocusPreview *preview = GIMP_PREVIEW (data); + gint event_id = PREVIEW_DATA (preview)->current_event_id; + + #ifdef PREVIEW_DEBUG +@@ -1041,7 +1041,7 @@ + } + + void +-gimp_preview_schedule_update (GimpPreview * preview) ++gimp_preview_schedule_update (RefocusPreview * preview) + { + PREVIEW_DATA (preview)->current_event_id++; + +@@ -1082,7 +1082,7 @@ + } + + void +-gimp_preview_image_set_size (GimpPreview * preview, gint width, gint height) ++gimp_preview_image_set_size (RefocusPreview * preview, gint width, gint height) + { + const gint real_width = MIN (preview->max_width, width); + const gint real_height = MIN (preview->max_height, height); +@@ -1120,8 +1120,8 @@ + + /** + * gimp_preview_draw_row: +- * @preview: the #GimpPreview +- * @event_id: event_id that was sent with the #GimpPreviewEvent. ++ * @preview: the #RefocusPreview ++ * @event_id: event_id that was sent with the #RefocusPreviewEvent. + * @type: the format of the data (e.g. %GIMP_RGBA_IMAGE). + * @row:the relative number of the row within the preview. + * The top row of the preview is number 0. +@@ -1137,7 +1137,7 @@ + * with the same event-id will be ignored by the preview. + **/ + gboolean +-gimp_preview_draw_row (GimpPreview * preview, const gint event_id, ++gimp_preview_draw_row (RefocusPreview * preview, const gint event_id, + GimpImageType type, gint row, + const guchar * const data) + { +@@ -1247,8 +1247,8 @@ + + /** + * gimp_preview_draw_unscaled_row: +- * @preview: the #GimpPreview +- * @event_id: event_id that was sent with the #GimpPreviewEvent. ++ * @preview: the #RefocusPreview ++ * @event_id: event_id that was sent with the #RefocusPreviewEvent. + * @type: the format of the data (e.g. %GIMP_RGBA_IMAGE). + * @row:row is the relative position of the row w.r.t. preview_event->image_y. + * The top row has number 0. +@@ -1267,7 +1267,7 @@ + * with the same event-id will be ignored by the preview. + **/ + gboolean +-gimp_preview_draw_unscaled_row (GimpPreview * preview, const gint event_id, ++gimp_preview_draw_unscaled_row (RefocusPreview * preview, const gint event_id, + GimpImageType type, const gint row, + const guchar * const data) + { +@@ -1445,8 +1445,8 @@ + + /** + * gimp_preview_progress_set_fraction: +- * @preview: the #GimpPreview. +- * @event_id: event_id that was sent with the #GimpPreviewEvent. ++ * @preview: the #RefocusPreview. ++ * @event_id: event_id that was sent with the #RefocusPreviewEvent. + * @fraction: the fraction completed. + * + * Set the progress bar of the preview to @fraction completed. +@@ -1456,7 +1456,7 @@ + * with the same event-id will be ignored by the preview. + **/ + gboolean +-gimp_preview_progress_set_fraction (GimpPreview * preview, ++gimp_preview_progress_set_fraction (RefocusPreview * preview, + const gint event_id, double fraction) + { + const gboolean return_status = +diff -ur src/gimppreview.h src/gimppreview.h +--- src/gimppreview.h 2003-01-30 13:30:18.000000000 -0800 ++++ src/gimppreview.h 2008-03-17 17:16:29.000000000 -0700 +@@ -33,24 +33,24 @@ + #define PREVIEW_FIXED_SIZE 0 + #define PREVIEW_DEFAULT_SIZE -1 + #define GIMP_TYPE_PREVIEW (gimp_preview_get_type ()) +-#define GIMP_PREVIEW(obj) (GTK_CHECK_CAST ((obj), GIMP_TYPE_PREVIEW, GimpPreview)) +-#define GIMP_PREVIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, GimpPreviewClass)) ++#define GIMP_PREVIEW(obj) (GTK_CHECK_CAST ((obj), GIMP_TYPE_PREVIEW, RefocusPreview)) ++#define GIMP_PREVIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, RefocusPreviewClass)) + #define GIMP_IS_PREVIEW(obj) (GTK_CHECK_TYPE ((obj), GIMP_TYPE_PREVIEW)) + #define GIMP_IS_PREVIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_PREVIEW)) +-typedef struct _GimpPreview GimpPreview; +-typedef struct _GimpPreviewClass GimpPreviewClass; +-typedef struct _GimpPreviewEvent GimpPreviewEvent; ++typedef struct _RefocusPreview RefocusPreview; ++typedef struct _RefocusPreviewClass RefocusPreviewClass; ++typedef struct _RefocusPreviewEvent RefocusPreviewEvent; + +-struct _GimpPreviewClass ++struct _RefocusPreviewClass + { + GtkContainerClass parent_class; + +- void (*update_preview) (GimpPreview * preview, GimpPreviewEvent * event); +- void (*preview_changed) (GimpPreview * preview); ++ void (*update_preview) (RefocusPreview * preview, RefocusPreviewEvent * event); ++ void (*preview_changed) (RefocusPreview * preview); + }; + + +-struct _GimpPreview ++struct _RefocusPreview + { + GtkContainer parent; + +@@ -75,13 +75,13 @@ + }; + + /** +- * GimpPreviewEvent: ++ * RefocusPreviewEvent: + * @event_id: Id of this event. This is needed for gimp_preview_draw_row, + * gimp_preview_draw_unscaled_row and gimp_preview_progress_set_fraction. + * @scale: Current scale of the preview. + * + **/ +-struct _GimpPreviewEvent ++struct _RefocusPreviewEvent + { + gint event_id; /* Id of this event */ + gdouble scale; /* Scale of preview */ +@@ -113,20 +113,20 @@ + gint preview_size, + gdouble scale_amount, + gint allow_scale); +-void gimp_preview_update (GimpPreview * preview); ++void gimp_preview_update (RefocusPreview * preview); + +-gboolean gimp_preview_draw_row (GimpPreview * preview, const gint event_id, ++gboolean gimp_preview_draw_row (RefocusPreview * preview, const gint event_id, + GimpImageType type, const gint row, + const guchar * const data); + +-gboolean gimp_preview_draw_unscaled_row (GimpPreview * preview, ++gboolean gimp_preview_draw_unscaled_row (RefocusPreview * preview, + const gint event_id, + GimpImageType type, const gint row, + const guchar * const data); + +-void gimp_preview_force_redraw (GimpPreview * preview); ++void gimp_preview_force_redraw (RefocusPreview * preview); + +-gboolean gimp_preview_progress_set_fraction (GimpPreview * preview, ++gboolean gimp_preview_progress_set_fraction (RefocusPreview * preview, + const gint event_id, + double fraction); + +diff -ur src/refocus.c src/refocus.c +--- src/refocus.c 2008-03-17 17:20:49.000000000 -0700 ++++ src/refocus.c 2008-03-17 17:18:48.000000000 -0700 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -372,7 +373,7 @@ + } + + static void +-preview_callback (GtkWidget * widget, GimpPreviewEvent * event, gpointer data) ++preview_callback (GtkWidget * widget, RefocusPreviewEvent * event, gpointer data) + { + TileSource source; + TileSink sink; diff --git a/extra/gimp-refocus/refocus-mirror-fix.patch b/extra/gimp-refocus/refocus-mirror-fix.patch new file mode 100644 index 000000000..af79dd893 --- /dev/null +++ b/extra/gimp-refocus/refocus-mirror-fix.patch @@ -0,0 +1,54 @@ +Index: src/tilebuf.c +=================================================================== +RCS file: /cvsroot/refocus/refocus/src/tilebuf.c,v +retrieving revision 1.1.1.1 +diff -u -u -r1.1.1.1 tilebuf.c +--- src/tilebuf.c 30 Jan 2003 21:30:19 -0000 1.1.1.1 ++++ src/tilebuf.c 6 Apr 2004 20:26:56 -0000 +@@ -140,7 +140,10 @@ + + for (x = x_lo - 1; x >= buf->real_x; x--) + { +- copy_col (buf, 2 * x_lo - x, y_start, y_end - y_start, x); ++ gint sx = 2 * x_lo - x; ++ copy_col (buf, ++ sx<=buf->real_x+buf->real_width-1?sx:buf->real_x+buf->real_width-1, ++ y_start, y_end - y_start, x); + }; + } + break; +@@ -171,7 +174,9 @@ + + for (x = x_hi; x < buf->real_x + buf->real_width; x++) + { +- copy_col (buf, 2 * (x_hi - 1) - x, y_start, y_end - y_start, x); ++ gint sx = 2 * (x_hi - 1) - x; ++ copy_col (buf, sx>=buf->real_x?sx:buf->real_x, ++ y_start, y_end - y_start, x); + }; + } + break; +@@ -200,7 +205,10 @@ + + for (y = y_lo - 1; y >= buf->real_y; y--) + { +- copy_row (buf, buf->real_x, 2 * y_lo - y, buf->real_width, y); ++ gint sy = 2 * y_lo - y; ++ copy_row (buf, buf->real_x, ++ sy<=buf->real_y+buf->real_height-1?sy:buf->real_y+buf->real_height-1, ++ buf->real_width, y); + }; + } + break; +@@ -230,8 +238,9 @@ + + for (y = y_hi; y < buf->real_y + buf->real_height; y++) + { +- copy_row (buf, buf->real_x, 2 * (y_hi - 1) - y, buf->real_width, +- y); ++ gint sy = 2 * (y_hi - 1) - y; ++ copy_row (buf, buf->real_x, sy>=buf->real_y?sy:buf->real_y, ++ buf->real_width, y); + }; + } + break; -- cgit v1.2.3-54-g00ecf