Author: abrander
Date: 2009-07-05 21:36:59 +0200 (Sun, 05 Jul 2009)
New Revision: 2556

Modified:
   trunk/librawstudio/rs-filter.c
   trunk/librawstudio/rs-filter.h
   trunk/plugins/basic-render/basic-render.c
   trunk/plugins/cache/cache.c
   trunk/plugins/crop/crop.c
   trunk/plugins/demosaic/demosaic.c
   trunk/plugins/denoise/denoise.c
   trunk/plugins/exposure-mask/exposure-mask.c
   trunk/plugins/input-file/input-file.c
   trunk/plugins/input-image16/input-image16.c
   trunk/plugins/lensfun/lensfun.c
   trunk/plugins/resample/resample.c
   trunk/plugins/rotate/rotate.c
   trunk/src/rs-loupe.c
   trunk/src/rs-preview-widget.c
Log:
Ported all filters and filter users to RSFilterParam.

Modified: trunk/librawstudio/rs-filter.c
===================================================================
--- trunk/librawstudio/rs-filter.c      2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/librawstudio/rs-filter.c      2009-07-05 19:36:59 UTC (rev 2556)
@@ -159,11 +159,11 @@
 /**
  * Get the output image from a RSFilter
  * @param filter A RSFilter
- * @param param A RS_FILTER_PARAM defining parameters for a image request
+ * @param param A RSFilterParam defining parameters for a image request
  * @return A RS_IMAGE16, this must be unref'ed
  */
 RS_IMAGE16 *
-rs_filter_get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+rs_filter_get_image(RSFilter *filter, const RSFilterParam *param)
 {
        filter_debug("rs_filter_get_image(%s [%p])", RS_FILTER_NAME(filter), 
filter);
 
@@ -212,11 +212,11 @@
 /**
  * Get 8 bit output image from a RSFilter
  * @param filter A RSFilter
- * @param param A RS_FILTER_PARAM defining parameters for a image request
+ * @param param A RSFilterParam defining parameters for a image request
  * @return A RS_IMAGE16, this must be unref'ed
  */
 GdkPixbuf *
-rs_filter_get_image8(RSFilter *filter, RS_FILTER_PARAM *param)
+rs_filter_get_image8(RSFilter *filter, const RSFilterParam *param)
 {
        filter_debug("rs_filter_get_image8(%s [%p])", RS_FILTER_NAME(filter), 
filter);
 

Modified: trunk/librawstudio/rs-filter.h
===================================================================
--- trunk/librawstudio/rs-filter.h      2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/librawstudio/rs-filter.h      2009-07-05 19:36:59 UTC (rev 2556)
@@ -76,10 +76,6 @@
        RS_FILTER_CHANGED_ICC_PROFILE = 1<<2
 } RSFilterChangedMask;
 
-typedef struct {
-       GdkRectangle *roi;
-} RS_FILTER_PARAM;
-
 typedef struct _RSFilter RSFilter;
 typedef struct _RSFilterClass RSFilterClass;
 
@@ -93,8 +89,8 @@
 struct _RSFilterClass {
        GObjectClass parent_class;
        const gchar *name;
-       RS_IMAGE16 *(*get_image)(RSFilter *filter, RS_FILTER_PARAM *param);
-       GdkPixbuf *(*get_image8)(RSFilter *filter, RS_FILTER_PARAM *param);
+       RS_IMAGE16 *(*get_image)(RSFilter *filter, const RSFilterParam *param);
+       GdkPixbuf *(*get_image8)(RSFilter *filter, const RSFilterParam *param);
        RSIccProfile *(*get_icc_profile)(RSFilter *filter);
        gint (*get_width)(RSFilter *filter);
        gint (*get_height)(RSFilter *filter);
@@ -129,19 +125,19 @@
 /**
  * Get the output image from a RSFilter
  * @param filter A RSFilter
- * @param param A RS_FILTER_PARAM defining parameters for a image request
+ * @param param A RSFilterParam defining parameters for a image request
  * @return A RS_IMAGE16, this must be unref'ed
  */
-extern RS_IMAGE16 *rs_filter_get_image(RSFilter *filter, RS_FILTER_PARAM 
*param);
+extern RS_IMAGE16 *rs_filter_get_image(RSFilter *filter, const RSFilterParam 
*param);
 
 /**
  * Get 8 bit output image from a RSFilter
  * @param filter A RSFilter
- * @param param A RS_FILTER_PARAM defining parameters for a image request
+ * @param param A RSFilterParam defining parameters for a image request
  * @return A RS_IMAGE16, this must be unref'ed
  */
 GdkPixbuf *
-rs_filter_get_image8(RSFilter *filter, RS_FILTER_PARAM *param);
+rs_filter_get_image8(RSFilter *filter, const RSFilterParam *param);
 
 /**
  * Get the ICC profile from a filter

Modified: trunk/plugins/basic-render/basic-render.c
===================================================================
--- trunk/plugins/basic-render/basic-render.c   2009-07-05 19:34:52 UTC (rev 
2555)
+++ trunk/plugins/basic-render/basic-render.c   2009-07-05 19:36:59 UTC (rev 
2556)
@@ -121,8 +121,8 @@
 static gpointer thread_func_sse8(gpointer _thread_info);
 static gpointer thread_func_sse8_cms(gpointer _thread_info);
 #endif /* __i386__ || __x86_64__ */
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
-static GdkPixbuf *get_image8(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
+static GdkPixbuf *get_image8(RSFilter *filter, const RSFilterParam *param);
 static RSIccProfile *get_icc_profile(RSFilter *filter);
 
 static RSFilterClass *rs_basic_render_parent_class = NULL;
@@ -925,7 +925,7 @@
 #endif /* __i386__ || __x86_64__ */
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSBasicRenderClass *klass = RS_BASIC_RENDER_GET_CLASS(filter);
        guint i, y_offset, y_per_thread, threaded_h;
@@ -978,7 +978,7 @@
 }
 
 static GdkPixbuf *
-get_image8(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image8(RSFilter *filter, const RSFilterParam *param)
 {
        RSBasicRenderClass *klass = RS_BASIC_RENDER_GET_CLASS(filter);
        guint i, x_offset, y_offset, y_per_thread, threaded_h;
@@ -987,6 +987,7 @@
        RS_IMAGE16 *input;
        GdkPixbuf *output = NULL;
        gint width, height;
+       GdkRectangle *roi;
 
        input = rs_filter_get_image(filter->previous, param);
        if (!RS_IS_IMAGE16(input))
@@ -998,12 +999,12 @@
        render_matrix(basic_render);
        prepare_lcms(basic_render);
 
-       if (param && param->roi)
+       if ((roi = rs_filter_param_get_roi(param)))
        {
-               width = MIN(param->roi->width, input->w);
-               height = MIN(param->roi->height, input->h);
-               x_offset = MAX(param->roi->x, 0);
-               y_offset = MAX(param->roi->y, 0);
+               width = MIN(roi->width, input->w);
+               height = MIN(roi->height, input->h);
+               x_offset = MAX(roi->x, 0);
+               y_offset = MAX(roi->y, 0);
        }
        else
        {

Modified: trunk/plugins/cache/cache.c
===================================================================
--- trunk/plugins/cache/cache.c 2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/plugins/cache/cache.c 2009-07-05 19:36:59 UTC (rev 2556)
@@ -56,8 +56,8 @@
 static void finalize(GObject *object);
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
-static GdkPixbuf *get_image8(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
+static GdkPixbuf *get_image8(RSFilter *filter, const RSFilterParam *param);
 static void flush(RSCache *cache);
 static void previous_changed(RSFilter *filter, RSFilter *parent, 
RSFilterChangedMask mask);
 
@@ -170,15 +170,16 @@
 }
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSCache *cache = RS_CACHE(filter);
+       GdkRectangle *roi = rs_filter_param_get_roi(param);
 
-       if (!cache->ignore_roi && (param && param->roi))
+       if (!cache->ignore_roi && roi)
        {
                if (cache->last_roi)
                {
-                       if (!rectangle_is_inside(cache->last_roi, param->roi))
+                       if (!rectangle_is_inside(cache->last_roi, roi))
                                flush(cache);
                }
 
@@ -186,7 +187,7 @@
                if (!cache->last_roi)
                {
                        cache->last_roi = g_new(GdkRectangle, 1);
-                       *cache->last_roi = *param->roi;
+                       *cache->last_roi = *roi;
                }
        }
 
@@ -197,15 +198,16 @@
 }
 
 static GdkPixbuf *
-get_image8(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image8(RSFilter *filter, const RSFilterParam *param)
 {
        RSCache *cache = RS_CACHE(filter);
+       GdkRectangle *roi = rs_filter_param_get_roi(param);
 
-       if (!cache->ignore_roi && (param && param->roi))
+       if (!cache->ignore_roi && roi)
        {
                if (cache->last_roi)
                {
-                       if (!rectangle_is_inside(cache->last_roi, param->roi))
+                       if (!rectangle_is_inside(cache->last_roi, roi))
                                flush(cache);
                }
 
@@ -213,7 +215,7 @@
                if (!cache->last_roi)
                {
                        cache->last_roi = g_new(GdkRectangle, 1);
-                       *cache->last_roi = *param->roi;
+                       *cache->last_roi = *roi;
                }
        }
 

Modified: trunk/plugins/crop/crop.c
===================================================================
--- trunk/plugins/crop/crop.c   2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/plugins/crop/crop.c   2009-07-05 19:36:59 UTC (rev 2556)
@@ -53,7 +53,7 @@
 
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
 static gint get_width(RSFilter *filter);
 static gint get_height(RSFilter *filter);
 
@@ -177,7 +177,7 @@
 }
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        g_assert(RS_IS_FILTER(filter));
        RSCrop *crop = RS_CROP(filter);

Modified: trunk/plugins/demosaic/demosaic.c
===================================================================
--- trunk/plugins/demosaic/demosaic.c   2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/plugins/demosaic/demosaic.c   2009-07-05 19:36:59 UTC (rev 2556)
@@ -71,7 +71,7 @@
 
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
 static inline int fc_INDI (const unsigned int filters, const int row, const 
int col);
 static void border_interpolate_INDI (RS_IMAGE16 *image, const unsigned int 
filters, int colors, int border);
 static void lin_interpolate_INDI(RS_IMAGE16 *image, const unsigned int 
filters, const int colors);
@@ -160,7 +160,7 @@
   (int)(filters >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSDemosaic *demosaic = RS_DEMOSAIC(filter);
        RS_IMAGE16 *input;

Modified: trunk/plugins/denoise/denoise.c
===================================================================
--- trunk/plugins/denoise/denoise.c     2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/plugins/denoise/denoise.c     2009-07-05 19:36:59 UTC (rev 2556)
@@ -59,7 +59,7 @@
 
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
 static void settings_changed(RSSettings *settings, RSSettingsMask mask, 
RSDenoise *denoise);
 
 static RSFilterClass *rs_denoise_parent_class = NULL;
@@ -232,9 +232,10 @@
 }
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSDenoise *denoise = RS_DENOISE(filter);
+       GdkRectangle *roi;
        RS_IMAGE16 *input;
        RS_IMAGE16 *output;
        RS_IMAGE16 *tmp;
@@ -248,8 +249,8 @@
        output = rs_image16_copy(input, TRUE);
        g_object_unref(input);
 
-       if (param && param->roi)
-               tmp = rs_image16_new_subframe(output, param->roi);
+       if ((roi = rs_filter_param_get_roi(param)))
+               tmp = rs_image16_new_subframe(output, roi);
        else
                tmp = g_object_ref(output);
 

Modified: trunk/plugins/exposure-mask/exposure-mask.c
===================================================================
--- trunk/plugins/exposure-mask/exposure-mask.c 2009-07-05 19:34:52 UTC (rev 
2555)
+++ trunk/plugins/exposure-mask/exposure-mask.c 2009-07-05 19:36:59 UTC (rev 
2556)
@@ -48,7 +48,7 @@
 
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
-static GdkPixbuf *get_image8(RSFilter *filter, RS_FILTER_PARAM *param);
+static GdkPixbuf *get_image8(RSFilter *filter, const RSFilterParam *param);
 
 static RSFilterClass *rs_exposure_mask_parent_class = NULL;
 
@@ -116,7 +116,7 @@
 }
 
 static GdkPixbuf *
-get_image8(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image8(RSFilter *filter, const RSFilterParam *param)
 {
        RSExposureMask *exposure_mask = RS_EXPOSURE_MASK(filter);
        GdkPixbuf *input;
@@ -129,6 +129,7 @@
 
        input = rs_filter_get_image8(filter->previous, param);
 
+       /* FIXME: Support ROI */
        if (exposure_mask->exposure_mask)
        {
                output = gdk_pixbuf_copy(input);

Modified: trunk/plugins/input-file/input-file.c
===================================================================
--- trunk/plugins/input-file/input-file.c       2009-07-05 19:34:52 UTC (rev 
2555)
+++ trunk/plugins/input-file/input-file.c       2009-07-05 19:36:59 UTC (rev 
2556)
@@ -47,7 +47,7 @@
 
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
 static gint get_width(RSFilter *filter);
 static gint get_height(RSFilter *filter);
 
@@ -125,7 +125,7 @@
 }
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSInputFile *input = RS_INPUT_FILE(filter);
 

Modified: trunk/plugins/input-image16/input-image16.c
===================================================================
--- trunk/plugins/input-image16/input-image16.c 2009-07-05 19:34:52 UTC (rev 
2555)
+++ trunk/plugins/input-image16/input-image16.c 2009-07-05 19:36:59 UTC (rev 
2556)
@@ -51,7 +51,7 @@
 
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
 static RSIccProfile *get_icc_profile(RSFilter *filter);
 static void dispose (GObject *object);
 static gint get_width(RSFilter *filter);
@@ -163,7 +163,7 @@
 }
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSInputImage16 *input_image16 = RS_INPUT_IMAGE16(filter);
 

Modified: trunk/plugins/lensfun/lensfun.c
===================================================================
--- trunk/plugins/lensfun/lensfun.c     2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/plugins/lensfun/lensfun.c     2009-07-05 19:36:59 UTC (rev 2556)
@@ -61,7 +61,7 @@
 
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
 static void inline rs_image16_nearest_full(RS_IMAGE16 *in, gushort *out, 
gfloat *pos);
 static void inline rs_image16_bilinear_full(RS_IMAGE16 *in, gushort *out, 
gfloat *pos);
 
@@ -233,7 +233,7 @@
        return NULL;
 }
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSLensfun *lensfun = RS_LENSFUN(filter);
        RS_IMAGE16 *input;

Modified: trunk/plugins/resample/resample.c
===================================================================
--- trunk/plugins/resample/resample.c   2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/plugins/resample/resample.c   2009-07-05 19:36:59 UTC (rev 2556)
@@ -73,7 +73,7 @@
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
 static void previous_changed(RSFilter *filter, RSFilter *parent, 
RSFilterChangedMask mask);
 static RSFilterChangedMask recalculate_dimensions(RSResample *resample);
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
 static gint get_width(RSFilter *filter);
 static gint get_height(RSFilter *filter);
 static void ResizeH(ResampleInfo *info);
@@ -269,7 +269,7 @@
 }
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSResample *resample = RS_RESAMPLE(filter);
        RS_IMAGE16 *afterHorizontal;
@@ -279,11 +279,12 @@
        gint input_height = rs_filter_get_height(filter->previous);
 
        /* Remove ROI, it doesn't make sense across resampler */
-       if (param && param->roi)
+       if (rs_filter_param_get_roi(param))
        {
-               RS_FILTER_PARAM new_param = *param;
-               new_param.roi = NULL;
-               input = rs_filter_get_image(filter->previous, &new_param);
+               RSFilterParam *new_param = rs_filter_param_clone(param);
+               rs_filter_param_set_roi(new_param, NULL);
+               input = rs_filter_get_image(filter->previous, new_param);
+               g_object_unref(new_param);
        }
        else
                input = rs_filter_get_image(filter->previous, param);

Modified: trunk/plugins/rotate/rotate.c
===================================================================
--- trunk/plugins/rotate/rotate.c       2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/plugins/rotate/rotate.c       2009-07-05 19:36:59 UTC (rev 2556)
@@ -71,7 +71,7 @@
 static void get_property (GObject *object, guint property_id, GValue *value, 
GParamSpec *pspec);
 static void set_property (GObject *object, guint property_id, const GValue 
*value, GParamSpec *pspec);
 static void previous_changed(RSFilter *filter, RSFilter *parent, 
RSFilterChangedMask mask);
-static RS_IMAGE16 *get_image(RSFilter *filter, RS_FILTER_PARAM *param);
+static RS_IMAGE16 *get_image(RSFilter *filter, const RSFilterParam *param);
 static void turn_right_angle(RS_IMAGE16 *in, RS_IMAGE16 *out, gint start_y, 
gint end_y, const int direction);
 static gint get_width(RSFilter *filter);
 static gint get_height(RSFilter *filter);
@@ -188,7 +188,7 @@
 }
 
 static RS_IMAGE16 *
-get_image(RSFilter *filter, RS_FILTER_PARAM *param)
+get_image(RSFilter *filter, const RSFilterParam *param)
 {
        RSRotate *rotate = RS_ROTATE(filter);
        RS_IMAGE16 *input;

Modified: trunk/src/rs-loupe.c
===================================================================
--- trunk/src/rs-loupe.c        2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/src/rs-loupe.c        2009-07-05 19:36:59 UTC (rev 2556)
@@ -232,16 +232,18 @@
        gtk_window_get_size(GTK_WINDOW(loupe), &window_width, &window_height);
 
        /* Create request ROI */
-       RS_FILTER_PARAM param;
+       RSFilterParam *param = rs_filter_param_new();
        GdkRectangle request;
        request.x = CLAMP(loupe->center_x - window_width/2, 0, 
width-window_width-1);
        request.y = CLAMP(loupe->center_y - window_height/2, 0, 
height-window_height-1);
        request.width = window_width;
        request.height = window_height;
-       param.roi = &request;
+       rs_filter_param_set_roi(param, &request);
 
-       GdkPixbuf *buffer = rs_filter_get_image8(loupe->filter, &param);
+       GdkPixbuf *buffer = rs_filter_get_image8(loupe->filter, param);
 
+       g_object_unref(param);
+
        add_border(loupe, buffer, &request);
 
        gdk_draw_pixbuf(drawable, gc, buffer, request.x, request.y, 0, 0, 
request.width, request.height, GDK_RGB_DITHER_NONE, 0, 0);

Modified: trunk/src/rs-preview-widget.c
===================================================================
--- trunk/src/rs-preview-widget.c       2009-07-05 19:34:52 UTC (rev 2555)
+++ trunk/src/rs-preview-widget.c       2009-07-05 19:36:59 UTC (rev 2556)
@@ -1309,7 +1309,7 @@
                /* Render the photo itself */
                if (gdk_rectangle_intersect(dirty_area, &placement, &area))
                {
-                       RS_FILTER_PARAM param;
+                       RSFilterParam *param = rs_filter_param_new();
                        GdkRectangle roi = area;
                        roi.x -= placement.x;
                        roi.y -= placement.y;
@@ -1318,8 +1318,9 @@
                                preview->last_roi[i] = g_new(GdkRectangle, 1);
                        *preview->last_roi[i] = roi;
 
-                       param.roi = &roi;
-                       GdkPixbuf *buffer = 
rs_filter_get_image8(preview->filter_end[i], &param);
+                       rs_filter_param_set_roi(param, &roi);
+                       GdkPixbuf *buffer = 
rs_filter_get_image8(preview->filter_end[i], param);
+                       g_object_unref(param);
 
                        if (buffer)
                        {
@@ -2369,12 +2370,14 @@
 
        if (!preview->last_roi[view])
                return FALSE;
-       RS_FILTER_PARAM param;
-       param.roi = preview->last_roi[view];
+       RSFilterParam *param = rs_filter_param_new();
+       rs_filter_param_set_roi(param, preview->last_roi[view]);
 
-       RS_IMAGE16 *image = rs_filter_get_image(preview->filter_cache1[view], 
&param);
-       GdkPixbuf *buffer = rs_filter_get_image8(preview->filter_end[view], 
&param);
+       RS_IMAGE16 *image = rs_filter_get_image(preview->filter_cache1[view], 
param);
+       GdkPixbuf *buffer = rs_filter_get_image8(preview->filter_end[view], 
param);
 
+       g_object_unref(param);
+
        /* Get the real coordinates */
        cbdata->pixel = rs_image16_get_pixel(image, screen_x, screen_y, TRUE);
 


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to