[gnome-photos] operation-insta-curve: Class-wide variable can't rely on instance value
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] operation-insta-curve: Class-wide variable can't rely on instance value
- Date: Thu, 14 Jan 2016 08:49:49 +0000 (UTC)
commit a547053e0a0ac7bcad260b0d89de91bd427fb77a
Author: Debarshi Ray <debarshir gnome org>
Date: Tue Jan 12 12:20:16 2016 +0100
operation-insta-curve: Class-wide variable can't rely on instance value
src/photos-operation-insta-curve.c | 71 ++++++++++++++++++------------------
1 files changed, 36 insertions(+), 35 deletions(-)
---
diff --git a/src/photos-operation-insta-curve.c b/src/photos-operation-insta-curve.c
index b25b869..e80ad23 100644
--- a/src/photos-operation-insta-curve.c
+++ b/src/photos-operation-insta-curve.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2015 Red Hat, Inc.
+ * Copyright © 2015, 2016 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -32,10 +32,13 @@
#include "photos-operation-insta-curve.h"
+typedef void (*PhotosOperationProcessFunc) (GeglOperation *, void *, void *, glong, const GeglRectangle *,
gint);
+
struct _PhotosOperationInstaCurve
{
GeglOperationPointFilter parent_instance;
PhotosOperationInstaPreset preset;
+ PhotosOperationProcessFunc process;
};
struct _PhotosOperationInstaCurveClass
@@ -324,7 +327,7 @@ photos_operation_insta_curve_interpolate (gfloat input, const guint8 *curve1, co
}
-static gboolean
+static void
photos_operation_insta_curve_1977_process_float (GeglOperation *operation,
void *in_buf,
void *out_buf,
@@ -345,12 +348,10 @@ photos_operation_insta_curve_1977_process_float (GeglOperation *operation,
in += 3;
out += 3;
}
-
- return TRUE;
}
-static gboolean
+static void
photos_operation_insta_curve_1977_process_u8 (GeglOperation *operation,
void *in_buf,
void *out_buf,
@@ -375,12 +376,10 @@ photos_operation_insta_curve_1977_process_u8 (GeglOperation *operation,
in += 3;
out += 3;
}
-
- return TRUE;
}
-static gboolean
+static void
photos_operation_insta_curve_brannan_process_float (GeglOperation *operation,
void *in_buf,
void *out_buf,
@@ -416,12 +415,10 @@ photos_operation_insta_curve_brannan_process_float (GeglOperation *operation,
in += 3;
out += 3;
}
-
- return TRUE;
}
-static gboolean
+static void
photos_operation_insta_curve_brannan_process_u8 (GeglOperation *operation,
void *in_buf,
void *out_buf,
@@ -461,12 +458,10 @@ photos_operation_insta_curve_brannan_process_u8 (GeglOperation *operation,
in += 3;
out += 3;
}
-
- return TRUE;
}
-static gboolean
+static void
photos_operation_insta_curve_gotham_process_float (GeglOperation *operation,
void *in_buf,
void *out_buf,
@@ -487,12 +482,10 @@ photos_operation_insta_curve_gotham_process_float (GeglOperation *operation,
in += 3;
out += 3;
}
-
- return TRUE;
}
-static gboolean
+static void
photos_operation_insta_curve_gotham_process_u8 (GeglOperation *operation,
void *in_buf,
void *out_buf,
@@ -517,12 +510,10 @@ photos_operation_insta_curve_gotham_process_u8 (GeglOperation *operation,
in += 3;
out += 3;
}
-
- return TRUE;
}
-static gboolean
+static void
photos_operation_insta_curve_nashville_process_float (GeglOperation *operation,
void *in_buf,
void *out_buf,
@@ -550,12 +541,10 @@ photos_operation_insta_curve_nashville_process_float (GeglOperation *operation,
in += 3;
out += 3;
}
-
- return TRUE;
}
-static gboolean
+static void
photos_operation_insta_curve_nashville_process_u8 (GeglOperation *operation,
void *in_buf,
void *out_buf,
@@ -599,8 +588,6 @@ photos_operation_insta_curve_nashville_process_u8 (GeglOperation *operation,
in += 3;
out += 3;
}
-
- return TRUE;
}
@@ -608,7 +595,6 @@ static void
photos_operation_insta_curve_prepare (GeglOperation *operation)
{
PhotosOperationInstaCurve *self = PHOTOS_OPERATION_INSTA_CURVE (operation);
- GeglOperationPointFilterClass *point_filter_class = GEGL_OPERATION_POINT_FILTER_GET_CLASS (operation);
const Babl *format;
const Babl *format_float;
const Babl *format_u8;
@@ -632,12 +618,12 @@ photos_operation_insta_curve_prepare (GeglOperation *operation)
if (type == type_u8)
{
format = format_u8;
- point_filter_class->process = photos_operation_insta_curve_1977_process_u8;
+ self->process = photos_operation_insta_curve_1977_process_u8;
}
else
{
format = format_float;
- point_filter_class->process = photos_operation_insta_curve_1977_process_float;
+ self->process = photos_operation_insta_curve_1977_process_float;
}
break;
@@ -645,12 +631,12 @@ photos_operation_insta_curve_prepare (GeglOperation *operation)
if (type == type_u8)
{
format = format_u8;
- point_filter_class->process = photos_operation_insta_curve_brannan_process_u8;
+ self->process = photos_operation_insta_curve_brannan_process_u8;
}
else
{
format = format_float;
- point_filter_class->process = photos_operation_insta_curve_brannan_process_float;
+ self->process = photos_operation_insta_curve_brannan_process_float;
}
break;
@@ -658,12 +644,12 @@ photos_operation_insta_curve_prepare (GeglOperation *operation)
if (type == type_u8)
{
format = format_u8;
- point_filter_class->process = photos_operation_insta_curve_gotham_process_u8;
+ self->process = photos_operation_insta_curve_gotham_process_u8;
}
else
{
format = format_float;
- point_filter_class->process = photos_operation_insta_curve_gotham_process_float;
+ self->process = photos_operation_insta_curve_gotham_process_float;
}
break;
@@ -671,12 +657,12 @@ photos_operation_insta_curve_prepare (GeglOperation *operation)
if (type == type_u8)
{
format = format_u8;
- point_filter_class->process = photos_operation_insta_curve_nashville_process_u8;
+ self->process = photos_operation_insta_curve_nashville_process_u8;
}
else
{
format = format_float;
- point_filter_class->process = photos_operation_insta_curve_nashville_process_float;
+ self->process = photos_operation_insta_curve_nashville_process_float;
}
break;
@@ -691,6 +677,21 @@ photos_operation_insta_curve_prepare (GeglOperation *operation)
}
+static gboolean
+photos_operation_insta_curve_process (GeglOperation *operation,
+ void *in_buf,
+ void *out_buf,
+ glong n_pixels,
+ const GeglRectangle *roi,
+ gint level)
+{
+ PhotosOperationInstaCurve *self = PHOTOS_OPERATION_INSTA_CURVE (operation);
+
+ self->process (operation, in_buf, out_buf, n_pixels, roi, level);
+ return TRUE;
+}
+
+
static void
photos_operation_insta_curve_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
@@ -745,7 +746,7 @@ photos_operation_insta_curve_class_init (PhotosOperationInstaCurveClass *class)
object_class->get_property = photos_operation_insta_curve_get_property;
object_class->set_property = photos_operation_insta_curve_set_property;
operation_class->prepare = photos_operation_insta_curve_prepare;
- point_filter_class->process = NULL; /* will be assigned in prepare */
+ point_filter_class->process = photos_operation_insta_curve_process;
g_object_class_install_property (object_class,
PROP_PRESET,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]