[Pixman] [PATCH v14 03/22] demos/scale: Only generate filters when used for separable

spitzak at gmail.com spitzak at gmail.com
Mon Mar 7 01:06:38 UTC 2016


From: Bill Spitzak <spitzak at gmail.com>

This makes the speed of the demo more accurate, as the filter generation
is a visible fraction of the time it takes to do a transform. This also
prevents the output of unused filters in the gnuplot option in the next
patch.

Note this is not dependent on other patches, as use can choose linear
and bilinear in the existing version.

Signed-off-by: Bill Spitzak <spitzak at gmail.com>
Reviewed-by: Oded Gabbay <oded.gabbay at gmail.com>
---
 demos/scale.c | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/demos/scale.c b/demos/scale.c
index 85c12e4..0c6b533 100644
--- a/demos/scale.c
+++ b/demos/scale.c
@@ -256,16 +256,25 @@ rescale (GtkWidget *may_be_null, app_t *app)
     pixman_transform_from_pixman_f_transform (&transform, &ftransform);
     pixman_image_set_transform (app->original, &transform);
 
-    params = pixman_filter_create_separable_convolution (
-        &n_params,
-        sx * 65536.0 + 0.5,
-	sy * 65536.0 + 0.5,
-	get_value (app, filters, "reconstruct_x_combo_box"),
-	get_value (app, filters, "reconstruct_y_combo_box"),
-	get_value (app, filters, "sample_x_combo_box"),
-	get_value (app, filters, "sample_y_combo_box"),
-	gtk_adjustment_get_value (app->subsample_adjustment),
-	gtk_adjustment_get_value (app->subsample_adjustment));
+    if (get_value (app, filter_types, "filter_combo_box") ==
+	PIXMAN_FILTER_SEPARABLE_CONVOLUTION)
+    {
+	params = pixman_filter_create_separable_convolution (
+	    &n_params,
+	    sx * 65536.0 + 0.5,
+	    sy * 65536.0 + 0.5,
+	    get_value (app, filters, "reconstruct_x_combo_box"),
+	    get_value (app, filters, "reconstruct_y_combo_box"),
+	    get_value (app, filters, "sample_x_combo_box"),
+	    get_value (app, filters, "sample_y_combo_box"),
+	    gtk_adjustment_get_value (app->subsample_adjustment),
+	    gtk_adjustment_get_value (app->subsample_adjustment));
+    }
+    else
+    {
+	params = 0;
+	n_params = 0;
+    }
 
     pixman_image_set_filter (app->original,
 	get_value (app, filter_types, "filter_combo_box"),
-- 
1.9.1



More information about the Pixman mailing list