Author: post
Date: 2010-11-07 21:05:44 +0100 (Sun, 07 Nov 2010)
New Revision: 3607
Modified:
trunk/plugins/resample/resample.c
Log:
Add property that allow overriding the quick parameter in the resampler.
Modified: trunk/plugins/resample/resample.c
===================================================================
--- trunk/plugins/resample/resample.c 2010-11-07 19:38:59 UTC (rev 3606)
+++ trunk/plugins/resample/resample.c 2010-11-07 20:05:44 UTC (rev 3607)
@@ -42,6 +42,7 @@
gint new_height;
gfloat scale;
gboolean bounding_box;
+ gboolean never_quick;
};
struct _RSResampleClass {
@@ -69,6 +70,7 @@
PROP_WIDTH,
PROP_HEIGHT,
PROP_BOUNDING_BOX,
+ PROP_NEVER_QUICK,
PROP_SCALE
};
@@ -126,6 +128,11 @@
"scale", "scale", "The expected scaling factor in
bounding box mode",
0.0, 100.0, 1.0, G_PARAM_READABLE)
);
+ g_object_class_install_property(object_class,
+ PROP_NEVER_QUICK, g_param_spec_boolean(
+ "never-quick", "never-quick", "Never use quick
function, even if allowed by request",
+ FALSE, G_PARAM_READWRITE)
+ );
filter_class->name = "Resample filter";
filter_class->get_image = get_image;
@@ -142,6 +149,7 @@
resample->new_height = -1;
resample->bounding_box = FALSE;
resample->scale = 1.0;
+ resample->never_quick = FALSE;
}
static void
@@ -160,6 +168,9 @@
case PROP_BOUNDING_BOX:
g_value_set_boolean(value, resample->bounding_box);
break;
+ case PROP_NEVER_QUICK:
+ g_value_set_boolean(value, resample->never_quick);
+ break;
case PROP_SCALE:
g_value_set_float(value, resample->scale);
break;
@@ -197,6 +208,13 @@
mask |= recalculate_dimensions(resample);
}
break;
+ case PROP_NEVER_QUICK:
+ if (g_value_get_boolean(value) != resample->never_quick)
+ {
+ resample->never_quick =
g_value_get_boolean(value);
+ mask |= RS_FILTER_CHANGED_PIXELDATA;
+ }
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id,
pspec);
}
@@ -376,7 +394,7 @@
/* Use compatible (and slow) version if input isn't 3 channels and
pixelsize 4 */
gboolean use_compatible = ( ! ( input->pixelsize == 4 &&
input->channels == 3));
- if (rs_filter_request_get_quick(request))
+ if (!resample->never_quick && rs_filter_request_get_quick(request))
{
use_fast = TRUE;
rs_filter_response_set_quick(response);
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit