diff options
author | Stefan Talpalaru (stefantalpalaru) <stefantalpalaru@yahoo.com> | 2010-07-08 18:40:20 +0000 |
---|---|---|
committer | Stefan Talpalaru (stefantalpalaru) <stefantalpalaru@yahoo.com> | 2010-07-08 18:40:20 +0000 |
commit | 4e6ceedf12ae13b005571de501487ccd7b42413c (patch) | |
tree | 2c372a72e9a12b8238654db740c98a168093609b /media-plugins/gimp-refocus | |
parent | media-sound/gogglesmm: Bump. Added USE=mp4,asf,old-miniplayer, as mp4,asf are... (diff) | |
download | sunrise-reviewed-4e6ceedf12ae13b005571de501487ccd7b42413c.tar.gz sunrise-reviewed-4e6ceedf12ae13b005571de501487ccd7b42413c.tar.bz2 sunrise-reviewed-4e6ceedf12ae13b005571de501487ccd7b42413c.zip |
media-plugins/gimp-refocus: new ebuild for bug #327179
svn path=/sunrise/; revision=10965
Diffstat (limited to 'media-plugins/gimp-refocus')
-rw-r--r-- | media-plugins/gimp-refocus/ChangeLog | 11 | ||||
-rw-r--r-- | media-plugins/gimp-refocus/Manifest | 8 | ||||
-rw-r--r-- | media-plugins/gimp-refocus/files/gimp-refocus-atlas.patch | 117 | ||||
-rw-r--r-- | media-plugins/gimp-refocus/files/gimp-refocus-gimp2.6.patch | 530 | ||||
-rw-r--r-- | media-plugins/gimp-refocus/files/refocus-0.9.0-gimp-2.2_rlx.diff | 255 | ||||
-rw-r--r-- | media-plugins/gimp-refocus/files/refocus-gimp-2.0.patch | 265 | ||||
-rw-r--r-- | media-plugins/gimp-refocus/gimp-refocus-0.9.0.ebuild | 55 | ||||
-rw-r--r-- | media-plugins/gimp-refocus/metadata.xml | 9 |
8 files changed, 1250 insertions, 0 deletions
diff --git a/media-plugins/gimp-refocus/ChangeLog b/media-plugins/gimp-refocus/ChangeLog new file mode 100644 index 000000000..43f1f3f5c --- /dev/null +++ b/media-plugins/gimp-refocus/ChangeLog @@ -0,0 +1,11 @@ +# ChangeLog for media-plugins/gimp-refocus +# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 +# $Header: $ + + 08 Jul 2010; Stefan Talpalaru (stefantalpalaru) + <stefantalpalaru@yahoo.com> +files/refocus-0.9.0-gimp-2.2_rlx.diff, + +files/gimp-refocus-gimp2.6.patch, +gimp-refocus-0.9.0.ebuild, + +files/refocus-gimp-2.0.patch, +files/gimp-refocus-atlas.patch, + +metadata.xml: + new ebuild for bug #327179 + diff --git a/media-plugins/gimp-refocus/Manifest b/media-plugins/gimp-refocus/Manifest new file mode 100644 index 000000000..3aae832df --- /dev/null +++ b/media-plugins/gimp-refocus/Manifest @@ -0,0 +1,8 @@ +AUX gimp-refocus-atlas.patch 3730 RMD160 83bee52ac298c86e9605180fdd9eed1492a28698 SHA1 7cbcb07139322b86a1999809273f7e809fd7c90f SHA256 c4226648480adf5bd2f2c52832ff80b098ff698523e1ace56150137f4b3cf2cd +AUX gimp-refocus-gimp2.6.patch 19331 RMD160 f1c5302ad29778263bdff68bcec1f61c2f82235b SHA1 bc04a980ab9f2938b75685f6c4cdecfe80969c76 SHA256 7ea11c07bf6b229e29d10add90c708508f6cb51e5ebeb080846820f7aec9a08c +AUX refocus-0.9.0-gimp-2.2_rlx.diff 8466 RMD160 9c8834c71a5c94f795758aaa1aab82d2008bdd97 SHA1 2fc4827eead2414dfb3c218fd2dc793a8bf71707 SHA256 2069cee465fcd6996b6cce17a718a40786a288e57ed54498a0ed9ef104cb54f1 +AUX refocus-gimp-2.0.patch 9790 RMD160 4bf37760a190c97d656b012f87f553bb8c29ad7f SHA1 3c6bd6ff6e426c514e8ea095ded4b3dd7794eeef SHA256 f0bf2f4ae2ba51b6f823731af35a4d4575f2212ec7e737bc36f1b4b508922267 +DIST refocus-0.9.0.tar.gz 381967 RMD160 085c9cd93c1fc8988182a08885a2dd1e782d2a7b SHA1 eab0f7e4df9fd4c82cda574f908e2e43205ddaec SHA256 35cc4ed11c14406a71a27977dd6c1fb3a3071695511cb9546643709b904befe4 +EBUILD gimp-refocus-0.9.0.ebuild 1156 RMD160 1830ff1a6d6f35aa2f01aa1f7a867e993e48dd18 SHA1 90d7e85737a410abd80c55f0aace5c7c2df49bca SHA256 76ebba982dea22275cd9cb21f1f67aa34801543627143beeba936a0d9a321716 +MISC ChangeLog 425 RMD160 ad1aeee347965d6f87062d5cfd154a3546cfbfee SHA1 4ebc03dc06a8469ccee0a6e93b310a1011855bac SHA256 11dd254d2add4b714a94fa96344a613db525fe6eee59275e78a9976b871851dd +MISC metadata.xml 308 RMD160 e78f26e00f2ed9f8e465a1864f7542d137a29c96 SHA1 6aa601b494f99eae14b7328a40f34ae8f74e6e91 SHA256 9dae132d4ea12bdaf97b173295078b8689511c83987d604dc55b2a5264a0ac72 diff --git a/media-plugins/gimp-refocus/files/gimp-refocus-atlas.patch b/media-plugins/gimp-refocus/files/gimp-refocus-atlas.patch new file mode 100644 index 000000000..d1a359531 --- /dev/null +++ b/media-plugins/gimp-refocus/files/gimp-refocus-atlas.patch @@ -0,0 +1,117 @@ +diff -ur refocus-0.9.0/configure.in refocus-0.9.0-patched/configure.in +--- refocus-0.9.0/configure.in 2010-07-06 18:32:20.047863465 +0200 ++++ refocus-0.9.0-patched/configure.in 2010-07-06 18:32:44.900864017 +0200 +@@ -16,26 +16,49 @@ + AC_PROG_RANLIB + + # Check if the user has ATLAS installed in ./lib-atlas +-fw_save_LIBS=$LIBS +-LIBS=-L./lib-atlas/lib ${LDFLAGS} +-AC_CHECK_LIB(lapack, clapack_dgesv, +-AC_MSG_RESULT([using atlas in lib-atlas/lib]) +-AC_DEFINE(HAVE_ATLAS) +-have_atlas=yes +-LAPACK_LIB_DIR='${top_srcdir}/lib-atlas/lib' +-LAPACK_INCLUDE_DIR='${top_srcdir}/lib-atlas/include' +-, +-AC_MSG_RESULT([using unoptimized lapack in lib]) ++dnl fw_save_LIBS=$LIBS ++dnl LIBS=-L./lib-atlas/lib ${LDFLAGS} ++dnl AC_CHECK_LIB(lapack, clapack_dgesv, ++dnl AC_MSG_RESULT([using atlas in lib-atlas/lib]) ++dnl AC_DEFINE(HAVE_ATLAS) ++dnl have_atlas=yes ++dnl LAPACK_LIB_DIR='${top_srcdir}/lib-atlas/lib' ++dnl LAPACK_INCLUDE_DIR='${top_srcdir}/lib-atlas/include' ++dnl , ++dnl AC_MSG_RESULT([using unoptimized lapack in lib]) ++dnl have_atlas=no ++dnl LAPACK_LIB_DIR='${top_srcdir}/lib' ++dnl LAPACK_INCLUDE_DIR='${top_srcdir}/lib' ++dnl , ++dnl [-lcblas -latlas]) ++dnl LIBS=$fw_save_LIBS ++dnl AC_SUBST(LAPACK_LIB_DIR) ++dnl AC_SUBST(LAPACK_INCLUDE_DIR) ++dnl AM_CONDITIONAL(HAVE_ATLAS, test x${have_atlas} = xyes) ++ ++BUNDLED_LAPACK_LIB_DIR='${top_srcdir}/lib' ++AC_SUBST(BUNDLED_LAPACK_LIB_DIR) ++ + have_atlas=no +-LAPACK_LIB_DIR='${top_srcdir}/lib' +-LAPACK_INCLUDE_DIR='${top_srcdir}/lib' +-, +-[-lcblas -latlas]) +-LIBS=$fw_save_LIBS +-AC_SUBST(LAPACK_LIB_DIR) +-AC_SUBST(LAPACK_INCLUDE_DIR) ++AC_ARG_WITH(lapack-libs, [ --with-lapack-libs=LIBS ]) ++if test "x$with_lapack_libs" = "x" ; then ++ LAPACK_LIBS='-L${top_srcdir}/lib -llapack' ++else ++ LAPACK_LIBS="$with_lapack_libs" ++ have_atlas=yes ++fi ++AC_SUBST(LAPACK_LIBS) + AM_CONDITIONAL(HAVE_ATLAS, test x${have_atlas} = xyes) + ++AC_ARG_WITH(lapack-includes, [ --with-lapack-includes=INCLUDES ]) ++if test "x$with_lapack_includes" = "x" ; then ++ LAPACK_INCLUDES='-I ${top_srcdir}/lib' ++else ++ LAPACK_INCLUDES="$with_lapack_includes" ++fi ++AC_SUBST(LAPACK_INCLUDES) ++ ++ + AM_PATH_GIMP_2_0(2.0.0) + AM_PATH_GTK_2_0(2.0.0) + AM_PATH_GLIB_2_0(2.0.0) +diff -ur refocus-0.9.0/src/Makefile.am refocus-0.9.0-patched/src/Makefile.am +--- refocus-0.9.0/src/Makefile.am 2010-07-06 18:32:19.991863838 +0200 ++++ refocus-0.9.0-patched/src/Makefile.am 2010-07-06 18:35:40.403879796 +0200 +@@ -1,22 +1,28 @@ + ## Process this file with automake to produce Makefile.in + +-INCLUDES=@GTK_CFLAGS@ @GIMP_CFLAGS@ -I @LAPACK_INCLUDE_DIR@ ++INCLUDES=@GTK_CFLAGS@ @GIMP_CFLAGS@ @LAPACK_INCLUDES@ + + bin_PROGRAMS = refocus + noinst_PROGRAMS = test-matrix + +-ldadd_atlas=-L@LAPACK_LIB_DIR@ -llapack -lcblas -latlas ++ldadd_atlas=@LAPACK_LIBS@ + + noinst_HEADERS=bdclosure.h refocus.h matrix.h tilebuf.h conv.h fwlapack.h gimppreview.h prevman.h util.h + 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 = @GIMP_LIBS@ ${ldadd_atlas} +-refocus_DEPENDENCIES=@LAPACK_LIB_DIR@/liblapack.a ++if HAVE_ATLAS ++else ++refocus_DEPENDENCIES=@BUNDLED_LAPACK_LIB_DIR@/liblapack.a ++endif + + test_matrix_SOURCES = matrix.c test-matrix.c fwlapack.c + test_matrix_LDADD = -lm ${ldadd_atlas} @GLIB_LIBS@ +-test_matrix_DEPENDENCIES=@LAPACK_LIB_DIR@/liblapack.a ++if HAVE_ATLAS ++else ++test_matrix_DEPENDENCIES=@BUNDLED_LAPACK_LIB_DIR@/liblapack.a ++endif + + install-bin: refocus + @if test "x@GIMPTOOL@" = "x" ; then \ +@@ -36,8 +42,8 @@ + @GIMPTOOL@ --install-admin-bin refocus ; \ + fi + +-@LAPACK_LIB_DIR@/liblapack.a: +- cd @LAPACK_LIB_DIR@; make ++@BUNDLED_LAPACK_LIB_DIR@/liblapack.a: ++ cd @BUNDLED_LAPACK_LIB_DIR@; make + + %.s: %.c + ${CC} ${CFLAGS} -S $< -o $@ diff --git a/media-plugins/gimp-refocus/files/gimp-refocus-gimp2.6.patch b/media-plugins/gimp-refocus/files/gimp-refocus-gimp2.6.patch new file mode 100644 index 000000000..ece7a4bdb --- /dev/null +++ b/media-plugins/gimp-refocus/files/gimp-refocus-gimp2.6.patch @@ -0,0 +1,530 @@ +diff -ur refocus-0.9.0/configure.in refocus-0.9.0-patched/configure.in +--- refocus-0.9.0/configure.in 2010-07-04 16:33:24.307364434 +0200 ++++ refocus-0.9.0-patched/configure.in 2010-07-04 16:34:09.679615391 +0200 +@@ -96,13 +96,6 @@ + AC_DEFINE(PREVIEW_DEBUG) + fi + +-# If we have gcc set the CFLAGS +-# This is done here because otherwise configure would use +-# these flags for compiling test-programs. +-if test "$GCC" = yes; then +- CFLAGS="-Wall -ansi -pedantic -ggdb -fomit-frame-pointer -O3 -funroll-all-loops" +-fi +- + #Check if erf is defined in the mathlibrary + AC_CHECK_LIB(m, erf, AC_DEFINE(HAVE_ERF)) + +diff -ur refocus-0.9.0/src/gimppreview.c refocus-0.9.0-patched/src/gimppreview.c +--- refocus-0.9.0/src/gimppreview.c 2010-07-04 16:33:24.310366565 +0200 ++++ refocus-0.9.0-patched/src/gimppreview.c 2010-07-04 16:42:46.016366709 +0200 +@@ -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 (myGimpPreview * preview); ++static void gimp_preview_class_init (myGimpPreviewClass * 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 (myGimpPreview * preview, + gdouble newscale); +-static void gimp_preview_update_preview (GimpPreview * preview); ++static void gimp_preview_update_preview (myGimpPreview * preview); + +-static void gimp_preview_image_set_size (GimpPreview * preview, gint width, ++static void gimp_preview_image_set_size (myGimpPreview * 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 (myGimpPreview * 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 myGimpPreview widget should not be accessing the private + * data! + */ + #define PREVIEW_DATA(preview) \ +- ((GimpPreviewData*)(GIMP_PREVIEW (preview)->private_data)) ++ ((myGimpPreviewData*)(MY_GIMP_PREVIEW (preview)->private_data)) + + typedef struct + { +@@ -126,7 +126,7 @@ + GtkWidget *image; + GtkWidget *progress_bar; + } +-GimpPreviewData; ++myGimpPreviewData; + + + /* Convert coordinate in preview space to image coordinates */ +@@ -155,20 +155,20 @@ + if (!preview_type) + { + GTypeInfo preview_info = { +- sizeof (GimpPreviewClass), ++ sizeof (myGimpPreviewClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) gimp_preview_class_init, + (GClassFinalizeFunc) NULL, + (gconstpointer) NULL, /* class_data */ +- sizeof (GimpPreview), ++ sizeof (myGimpPreview), + 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, "myGimpPreview", + &preview_info, 0); + } + +@@ -181,7 +181,7 @@ + * by GTK's internal mechanisms. + */ + static void +-gimp_preview_class_init (GimpPreviewClass * klass) ++gimp_preview_class_init (myGimpPreviewClass * 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 (myGimpPreviewClass, 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 (myGimpPreviewClass, 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(myGimpPreview *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 (myGimpPreview * 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 (myGimpPreviewData)); + + + 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; ++ myGimpPreview *preview; + GtkWidget *frame; + GtkWidget *hbox; + GtkWidget *event_box; +@@ -337,7 +337,7 @@ + + + /* Now allocate the actual preview window. */ +- preview = GIMP_PREVIEW (g_object_new (gimp_preview_get_type (), NULL)); ++ preview = MY_GIMP_PREVIEW (g_object_new (gimp_preview_get_type (), NULL)); + + /* Set the scale amount. */ + gimp_preview_set_scale_amount(preview, cb_scale_amount); +@@ -352,8 +352,8 @@ + preview_width = i2p (drawable->width, preview->scale); + preview_height = i2p (drawable->height, preview->scale); + +- GIMP_PREVIEW (preview)->width = preview_width; +- GIMP_PREVIEW (preview)->height = preview_height; ++ MY_GIMP_PREVIEW (preview)->width = preview_width; ++ MY_GIMP_PREVIEW (preview)->height = preview_height; + } + else + { +@@ -454,7 +454,7 @@ + static void + gimp_preview_size_request (GtkWidget * widget, GtkRequisition * requisition) + { +- GimpPreview *preview = GIMP_PREVIEW (widget); ++ myGimpPreview *preview = MY_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); ++ myGimpPreview *preview = MY_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); ++ myGimpPreview *preview = MY_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 (myGimpPreview * preview) + { + gimp_preview_recompute_sizes (preview, preview->scale); + gimp_preview_update_preview (preview); +@@ -579,11 +579,11 @@ + static void + gimp_preview_plus_callback (GtkWidget * widget, gpointer data) + { +- GimpPreview *preview; ++ myGimpPreview *preview; + gchar buffer[10]; + gdouble new_scale; + +- preview = GIMP_PREVIEW (data); ++ preview = MY_GIMP_PREVIEW (data); + if (PREVIEW_DATA (preview)->scale_n == PREVIEW_SCALE_LAST) + return; + +@@ -616,11 +616,11 @@ + static void + gimp_preview_minus_callback (GtkWidget * widget, gpointer data) + { +- GimpPreview *preview; ++ myGimpPreview *preview; + gchar buffer[10]; + gdouble new_scale; + +- preview = GIMP_PREVIEW (data); ++ preview = MY_GIMP_PREVIEW (data); + if (PREVIEW_DATA (preview)->scale_n == 0) + return; + +@@ -651,12 +651,12 @@ + static gint + gimp_preview_event (GtkWidget * widget, GdkEvent * event, gpointer data) + { +- GimpPreview *preview; ++ myGimpPreview *preview; + GdkEventButton *button_event; + gint x, y; + gint dx, dy; + +- preview = GIMP_PREVIEW (data); ++ preview = MY_GIMP_PREVIEW (data); + button_event = (GdkEventButton *) event; + + switch (event->type) +@@ -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 (myGimpPreview * 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 (myGimpPreview * 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; ++ myGimpPreviewEvent 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 (myGimpPreview * preview) + { + GimpPixelRgn region; + guchar *image_data = NULL; +@@ -1012,7 +1012,7 @@ + + + void +-gimp_preview_force_redraw (GimpPreview * preview) ++gimp_preview_force_redraw (myGimpPreview * 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); ++ myGimpPreview *preview = MY_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 (myGimpPreview * 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 (myGimpPreview * 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 #myGimpPreview ++ * @event_id: event_id that was sent with the #myGimpPreviewEvent. + * @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 (myGimpPreview * 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 #myGimpPreview ++ * @event_id: event_id that was sent with the #myGimpPreviewEvent. + * @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 (myGimpPreview * 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 #myGimpPreview. ++ * @event_id: event_id that was sent with the #myGimpPreviewEvent. + * @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 (myGimpPreview * preview, + const gint event_id, double fraction) + { + const gboolean return_status = +diff -ur refocus-0.9.0/src/gimppreview.h refocus-0.9.0-patched/src/gimppreview.h +--- refocus-0.9.0/src/gimppreview.h 2003-01-30 22:30:18.000000000 +0100 ++++ refocus-0.9.0-patched/src/gimppreview.h 2010-07-04 16:42:33.885366354 +0200 +@@ -32,25 +32,25 @@ + + #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_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; ++//#define GIMP_TYPE_PREVIEW (gimp_preview_get_type ()) ++#define MY_GIMP_PREVIEW(obj) (GTK_CHECK_CAST ((obj), GIMP_TYPE_PREVIEW, myGimpPreview)) ++#define MY_GIMP_PREVIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, myGimpPreviewClass)) ++//#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 _myGimpPreview myGimpPreview; ++typedef struct _myGimpPreviewClass myGimpPreviewClass; ++typedef struct _myGimpPreviewEvent myGimpPreviewEvent; + +-struct _GimpPreviewClass ++struct _myGimpPreviewClass + { + GtkContainerClass parent_class; + +- void (*update_preview) (GimpPreview * preview, GimpPreviewEvent * event); +- void (*preview_changed) (GimpPreview * preview); ++ void (*update_preview) (myGimpPreview * preview, myGimpPreviewEvent * event); ++ void (*preview_changed) (myGimpPreview * preview); + }; + + +-struct _GimpPreview ++struct _myGimpPreview + { + GtkContainer parent; + +@@ -75,13 +75,13 @@ + }; + + /** +- * GimpPreviewEvent: ++ * myGimpPreviewEvent: + * @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 _myGimpPreviewEvent + { + 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 (myGimpPreview * preview); + +-gboolean gimp_preview_draw_row (GimpPreview * preview, const gint event_id, ++gboolean gimp_preview_draw_row (myGimpPreview * 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 (myGimpPreview * 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 (myGimpPreview * preview); + +-gboolean gimp_preview_progress_set_fraction (GimpPreview * preview, ++gboolean gimp_preview_progress_set_fraction (myGimpPreview * preview, + const gint event_id, + double fraction); + +diff -ur refocus-0.9.0/src/refocus.c refocus-0.9.0-patched/src/refocus.c +--- refocus-0.9.0/src/refocus.c 2010-07-04 16:33:24.312364787 +0200 ++++ refocus-0.9.0-patched/src/refocus.c 2010-07-04 16:43:02.753363951 +0200 +@@ -335,7 +335,7 @@ + (void) data; + set_busy_cursor (widget, TRUE); + update_matrix (); +- gimp_preview_update (GIMP_PREVIEW (my_widgets.preview)); ++ gimp_preview_update (MY_GIMP_PREVIEW (my_widgets.preview)); + set_busy_cursor (widget, FALSE); + } + +@@ -368,11 +368,11 @@ + { + gint event_id = GPOINTER_TO_INT (data); + return (gimp_preview_progress_set_fraction +- (GIMP_PREVIEW (my_widgets.preview), event_id, arg)); ++ (MY_GIMP_PREVIEW (my_widgets.preview), event_id, arg)); + } + + static void +-preview_callback (GtkWidget * widget, GimpPreviewEvent * event, gpointer data) ++preview_callback (GtkWidget * widget, myGimpPreviewEvent * event, gpointer data) + { + TileSource source; + TileSink sink; +@@ -392,7 +392,7 @@ + im_width, im_height); + tile_sink_init_for_preview (&sink, drawable, image_x, image_y, + im_width, im_height); +- gimp_preview_progress_set_fraction (GIMP_PREVIEW (my_widgets.preview), ++ gimp_preview_progress_set_fraction (MY_GIMP_PREVIEW (my_widgets.preview), + event->event_id, 0); + bd_closure_init (&update_progress_closure, + preview_progress_update_fun, +@@ -408,7 +408,7 @@ + { + tile_sink_get_row (&sink, buf, image_x, image_y + row, im_width); + event_is_current = +- gimp_preview_draw_unscaled_row (GIMP_PREVIEW (my_widgets.preview), ++ gimp_preview_draw_unscaled_row (MY_GIMP_PREVIEW (my_widgets.preview), + event->event_id, + gimp_drawable_type (drawable->drawable_id), + row, buf); +@@ -582,7 +582,7 @@ + + gtk_widget_show (dlg); + redraw_all (); +- gimp_preview_update (GIMP_PREVIEW (preview)); ++ gimp_preview_update (MY_GIMP_PREVIEW (preview)); + gtk_main (); + gdk_flush (); + return run_flag; diff --git a/media-plugins/gimp-refocus/files/refocus-0.9.0-gimp-2.2_rlx.diff b/media-plugins/gimp-refocus/files/refocus-0.9.0-gimp-2.2_rlx.diff new file mode 100644 index 000000000..c2c3a25b4 --- /dev/null +++ b/media-plugins/gimp-refocus/files/refocus-0.9.0-gimp-2.2_rlx.diff @@ -0,0 +1,255 @@ +diff -ur refocus-0.9.0/ChangeLog refocus-0.9.0-patched/ChangeLog +--- refocus-0.9.0/ChangeLog 2003-01-31 14:02:03.000000000 +0100 ++++ refocus-0.9.0-patched/ChangeLog 2010-07-04 15:13:21.414365851 +0200 +@@ -2,3 +2,9 @@ + + * This is the first public release (0.9.0) of the refocus plug-in. + ++2007-09-28 Richard Lemieux <rlemieu(at)cooptel(dot)qc(dot)ca ++ ++ * The plugin failed for some picture sizes because of buffer ++ overflow on the last row of tiles. I corrected the code ++ handling the upper boundary of the picture. ++ +\ No newline at end of file +diff -ur refocus-0.9.0/src/conv.c refocus-0.9.0-patched/src/conv.c +--- refocus-0.9.0/src/conv.c 2003-01-30 22:30:18.000000000 +0100 ++++ refocus-0.9.0-patched/src/conv.c 2010-07-04 15:13:21.415365014 +0200 +@@ -421,13 +421,19 @@ + gint x, buf_start_y, total_tiles, tile_nr = 0; + /* Will be false when progress_update tells us that the data is no longer needed */ + gboolean ok = TRUE; +- ++ /* ++ tile_height() [util.c] ++ tile_width() [util.c] ++ */ + initialize_buf (&buf, source, mat_size / 2, sx, sy, width, height, + boundary_type); + total_tiles = (1 + floor ((buf.x + buf.width - 1) / tile_width ()) + - floor ((buf.x) / tile_width ())) * + (1 + floor ((buf.y_limit - 1) / tile_height ()) + - floor ((buf.y) / tile_height ())); ++#ifdef RLXTEST ++ printf("convolve_image: total_tiles %d\n",total_tiles); ++#endif + + buf_start_y = buf.y; + while (ok && shift_buf (&buf, source)) +@@ -437,6 +443,10 @@ + { + const gint ncolors = source->bpp - source->has_alpha; + GimpTile *tile = tile_sink_get_tile (sink, x, buf.y); ++#ifdef RLXTEST ++ printf("convolve_image: x %d, y %d, tile->eheight %d\n", ++ x, buf.y, tile->eheight); ++#endif + convolve_tile (tile, pixpos_in_buf (&buf, x, buf.y), buf.row_stride, + ncolors, sink->bpp, mat->data, mat_size); + tile_sink_tile_unref (sink, tile); +diff -ur refocus-0.9.0/src/tilebuf.c refocus-0.9.0-patched/src/tilebuf.c +--- refocus-0.9.0/src/tilebuf.c 2010-07-04 15:12:14.223365075 +0200 ++++ refocus-0.9.0-patched/src/tilebuf.c 2010-07-04 15:17:46.752381257 +0200 +@@ -18,6 +18,7 @@ + * Version $Id: tilebuf.c,v 1.1.1.1 2003/01/30 21:30:19 ernstl Exp $ + */ + ++#include <stdio.h> + #include "tilebuf.h" + #include "util.h" + #include <string.h> +@@ -39,6 +40,11 @@ + guchar * + pixpos_in_buf (TileStripBuffer * buf, const gint x, const gint y) + { ++ /* ++ & data = array(? lines x row_stride columns) ++ & pixpos_in_buf = &data[(x - real_x)*bytes_per_pixel, y - real_y] ++ & (real_x, real_y) = origin of tile. ++ */ + return (&buf->data[buf->row_stride * (y - buf->real_y) + + buf->bpp * (x - buf->real_x)]); + } +@@ -220,7 +226,7 @@ + static void + fix_bottom_boundary (TileStripBuffer * buf, const gint y_hi) + { +- if (y_hi >= buf->real_y + buf->real_height) ++ if (y_hi >= buf->real_y + buf->real_height) /* (1) */ + { + return; + }; +@@ -234,13 +240,32 @@ + break; + case TB_BOUNDARY_MIRROR: + { +- register gint y; ++ register gint y2; + +- for (y = y_hi; y < buf->real_y + buf->real_height; y++) ++ /*if (y_hi < buf->y_limit)*/ ++ for (y2 = y_hi; y2 < buf->real_y + buf->real_height; y2++) /*(2)*/ + { +- 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); ++ /* ++ &1 y < y_hi [domain of y, definition of y_hi, (1)] ++ &2 y_hi <= y2 < buf->real_y + buf->real_height [(1),(2)] ++ &3 i = 0, 1, ... ++ &4 y=y_hi-i-1 -> y2=y_hi+i [definition of mirror] ++ &5 y = y2 - 2*i - 1 [4] ++ &6 y = 2*y2 - 2*i - y2 - 1 [5,algebra] ++ &7 y = 2*y_hi - y2 - 1 [4,6] ++ */ ++ gint y = 2*y_hi - y2 - 1; ++ if (y < buf->real_y) break; ++#ifdef RLXTEST ++ printf("fix_bottom_boundary: Copying row %d to %d, width %d, buf_loc %d %d, real_y %d\n", ++ 2*y_hi - y2 - 1, y2, buf->real_width, ++ buf->row_stride * (2*y_hi - y2 - 1 - buf->real_y) + ++ buf->bpp * (buf->real_x - buf->real_x), ++ buf->row_stride * (y2 - buf->real_y) + ++ buf->bpp * (buf->real_x - buf->real_x), ++ buf->real_y); ++#endif ++ copy_row (buf, buf->real_x, y, buf->real_width,y2); + }; + } + break; +@@ -262,7 +287,21 @@ + const gint y_lo = MAX (buf->real_y, source->y); + const gint y_hi = MIN (buf->real_y + buf->real_height, + source->y + source->height); +- ++ /* ++ y: domain of y. ++ & 0 <= y. y is a 0-index. ++ & | & y in the source image ++ & 0 <= source->y <= y < source->y + source->height ++ | & y in the buffer ++ & 0 <= buf->real_y <= y < buf->real_y + buf->real_height ++ x: domain of x = domain of y with mapping y -> x, height -> width. ++ */ ++ ++#ifdef RLXTEST ++ printf("buf->real_y %d, buf->real_height %d, source->y %d, source->heigh %d, y_hi %d\n", ++ buf->real_y, buf->real_height, ++ source->y, source->height, y_hi); ++#endif + fix_left_boundary (buf, x_lo, first_time ? buf->y : buf->y + tile_height (), + y_hi); + fix_right_boundary (buf, x_hi, +@@ -271,7 +310,15 @@ + { + fix_top_boundary (buf, y_lo); + }; ++#ifdef RLXTEST ++ printf("fix_boundaries: Now goto fix_bottom_boundary: y_hi %d, real_y + real_height %d, data[%d]\n", ++ y_hi, buf->real_y + buf->real_height, ++ buf->real_height * buf->row_stride); ++#endif + fix_bottom_boundary (buf, y_hi); ++#ifdef RLXTEST ++ printf("bottom boundary fixed\n"); ++#endif + } + + void +@@ -318,6 +365,14 @@ + gint x; + gboolean not_finished = TRUE; + ++ /* ++ & y_limit = height of picture, if full picture. ++ */ ++#ifdef RLXTEST ++ printf("buf->y %d + tile_height%d () >= buf->y_limit %d\n", ++ buf->y,tile_height(),buf->y_limit); ++#endif ++ + if (buf->first_time) + { + /* Buf must already have been initialized so there is nothing to do */ +@@ -330,19 +385,31 @@ + } + else + { ++#ifdef RLXTEST ++ printf("shift_buf: tile_height %d\n", tile_height()); ++#endif + memmove (pixpos_in_buf (buf, buf->real_x, + buf->real_y), + pixpos_in_buf (buf, buf->real_x, + buf->real_y + tile_height ()), + buf->row_stride * (tile_height () + buf->border_width)); + buf->y += tile_height (); ++#ifdef RLXTEST ++ printf("shift_buf: y %d, y_limit %d\n", buf->y, buf->y_limit); ++#endif + buf->real_y = buf->y - buf->border_width; + for (x = buf->x - tile_width (); + x <= buf->x + buf->width; x += tile_width ()) + { + copy_tile_to_buf (buf, source, x, buf->y + tile_height ()); ++#ifdef RLXTEST ++ printf("shift_buf: x %d\n", x); ++#endif + }; + fix_boundaries (buf, source, FALSE); + }; ++#ifdef RLXTEST ++ printf("shift_buf: done\n"); ++#endif + return (not_finished); + } +diff -ur refocus-0.9.0/src/util.c refocus-0.9.0-patched/src/util.c +--- refocus-0.9.0/src/util.c 2003-01-30 22:30:19.000000000 +0100 ++++ refocus-0.9.0-patched/src/util.c 2010-07-04 15:13:21.416365300 +0200 +@@ -18,6 +18,7 @@ + * Version $Id: util.c,v 1.1.1.1 2003/01/30 21:30:19 ernstl Exp $ + */ + ++#include <stdio.h> + #include "util.h" + #include <string.h> + #include <math.h> +@@ -30,14 +31,38 @@ + gint + floorm (gint a, gint b) + /* return largest multiple of b that is <= a */ ++ /* ++ & & m = floorm(a,b) ++ & a = b*m + r ++ & 0 <= r < b ++ */ + { ++#ifdef RLXTEST ++ printf("floorm: a/b %d, fl %g\n", a/b, floor ((gdouble) a / b)); ++#endif + return (b * floor ((gdouble) a / b)); + } + + gint + ceilm (gint a, gint b) + /* return least multiple of b that is >= a */ ++ /* ++ & m = ceilm(a,b) ++ & a = b*m - r; ++ & m = a/b ++ % r = a%b ++ & -a = -b*m + r ++ ++ & ceilm = (r == 0 ? b*m : (b+1)*m) ++ */ + { ++#ifdef RLXTEST ++ printf("ceil: a %d, b %d, -(-a/b) %d,a/b+(a%b != 0 ? 1:0) %d, fl %g\n", ++ a,b, ++ -((-a)/b), ++ a/b+(a%b != 0 ? 1:0), ++ ceil ((gdouble) a / b) ); ++#endif + return (b * ceil ((gdouble) a / b)); + } + diff --git a/media-plugins/gimp-refocus/files/refocus-gimp-2.0.patch b/media-plugins/gimp-refocus/files/refocus-gimp-2.0.patch new file mode 100644 index 000000000..a95cc2f39 --- /dev/null +++ b/media-plugins/gimp-refocus/files/refocus-gimp-2.0.patch @@ -0,0 +1,265 @@ +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 @@ + "<Image>/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); + } +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; + + diff --git a/media-plugins/gimp-refocus/gimp-refocus-0.9.0.ebuild b/media-plugins/gimp-refocus/gimp-refocus-0.9.0.ebuild new file mode 100644 index 000000000..487e26532 --- /dev/null +++ b/media-plugins/gimp-refocus/gimp-refocus-0.9.0.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=2 + +inherit autotools eutils toolchain-funcs + +MY_PN=${PN#gimp-} +MY_P=${MY_PN}-${PV} + +DESCRIPTION="refocus images using FIR Wiener filtering" +HOMEPAGE="http://refocus.sourceforge.net" +SRC_URI="mirror://sourceforge/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="lapack-atlas" + +RDEPEND="lapack-atlas? ( + dev-libs/libf2c + sci-libs/lapack-atlas + ) + media-gfx/gimp:2 + x11-libs/gtk+:2" +DEPEND="${RDEPEND} + dev-util/pkgconfig" + +S=${WORKDIR}/${MY_P} + +src_prepare() { + epatch "${FILESDIR}"/${MY_PN}-gimp-2.0.patch + epatch "${FILESDIR}"/${MY_PN}-0.9.0-gimp-2.2_rlx.diff + epatch "${FILESDIR}"/${PN}-gimp2.6.patch + epatch "${FILESDIR}"/${PN}-atlas.patch + + eautoreconf +} + +src_configure() { + export GIMPTOOL="/usr/bin/gimptool-2.0" + + if use lapack-atlas; then + econf --with-lapack-libs="$($(tc-getPKG_CONFIG) --libs lapack)" \ + --with-lapack-includes="$($(tc-getPKG_CONFIG) --cflags lapack)" + else + econf + fi +} + +src_install() { + exeinto "$(gimptool-2.0 --gimpplugindir)/plug-ins" + doexe src/refocus || die +} diff --git a/media-plugins/gimp-refocus/metadata.xml b/media-plugins/gimp-refocus/metadata.xml new file mode 100644 index 000000000..d841dd4d7 --- /dev/null +++ b/media-plugins/gimp-refocus/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>no-herd</herd> +<maintainer><email>maintainer-wanted@gentoo.org</email></maintainer> +<use> + <flag name='lapack-atlas'>Use the ATLAS version of lapack</flag> +</use> +</pkgmetadata> |