diff --git a/app/pdb/gimppdb.c b/app/pdb/gimppdb.c index 570ad12c5c..b1281f123a 100644 --- a/app/pdb/gimppdb.c +++ b/app/pdb/gimppdb.c @@ -447,7 +447,6 @@ gimp_pdb_execute_procedure_by_name (GimpPDB *pdb, if (GIMP_VALUE_HOLDS_INT32_ARRAY (value) || GIMP_VALUE_HOLDS_FLOAT_ARRAY (value) || - GIMP_VALUE_HOLDS_RGB_ARRAY (value) || GIMP_VALUE_HOLDS_OBJECT_ARRAY (value)) { /* Array arguments don't have their size information when they @@ -465,10 +464,6 @@ gimp_pdb_execute_procedure_by_name (GimpPDB *pdb, gimp_value_set_float_array (value, (const gdouble *) va_arg (va_args, gpointer), prev_int_value); - else if (GIMP_VALUE_HOLDS_RGB_ARRAY (value)) - gimp_value_set_rgb_array (value, - (const GimpRGB *) va_arg (va_args, gpointer), - prev_int_value); else if (GIMP_VALUE_HOLDS_OBJECT_ARRAY (value)) gimp_value_set_object_array (value, GIMP_TYPE_ITEM, va_arg (va_args, gpointer), diff --git a/libgimp/gimp.c b/libgimp/gimp.c index 079990ae67..5d02804262 100644 --- a/libgimp/gimp.c +++ b/libgimp/gimp.c @@ -426,7 +426,6 @@ gimp_main (GType plug_in_type, GIMP_TYPE_ARRAY, GIMP_TYPE_PARAM_ARRAY, GIMP_TYPE_INT32_ARRAY, GIMP_TYPE_PARAM_INT32_ARRAY, GIMP_TYPE_FLOAT_ARRAY, GIMP_TYPE_PARAM_FLOAT_ARRAY, - GIMP_TYPE_RGB_ARRAY, GIMP_TYPE_PARAM_RGB_ARRAY, GIMP_TYPE_OBJECT_ARRAY, GIMP_TYPE_PARAM_OBJECT_ARRAY, GIMP_TYPE_DISPLAY, GIMP_TYPE_PARAM_DISPLAY, diff --git a/libgimp/gimpgpparams-body.c b/libgimp/gimpgpparams-body.c index 9778a31a87..51008b3bdd 100644 --- a/libgimp/gimpgpparams-body.c +++ b/libgimp/gimpgpparams-body.c @@ -44,9 +44,6 @@ _gimp_gp_param_def_to_param_spec (const GPParamDef *param_def) if (! strcmp (param_def->type_name, "GimpParamFloatArray")) return gimp_param_spec_float_array (name, nick, blurb, flags); - if (! strcmp (param_def->type_name, "GimpParamRGBArray")) - return gimp_param_spec_rgb_array (name, nick, blurb, flags); - if (! strcmp (param_def->type_name, "GimpParamParasite")) return gimp_param_spec_parasite (name, nick, blurb, flags); @@ -781,14 +778,6 @@ gimp_gp_param_to_value (gpointer gimp, param->data.d_array.size / sizeof (gdouble)); } - else if (GIMP_VALUE_HOLDS_RGB_ARRAY (value)) - { - gimp_value_set_rgb_array (value, - (GimpRGB *) - param->data.d_array.data, - param->data.d_array.size / - sizeof (GimpRGB)); - } else if (GIMP_VALUE_HOLDS_COLOR_ARRAY (value)) { GeglColor **colors; @@ -1133,8 +1122,7 @@ gimp_value_to_gp_param (const GValue *value, } } else if (GIMP_VALUE_HOLDS_INT32_ARRAY (value) || - GIMP_VALUE_HOLDS_FLOAT_ARRAY (value) || - GIMP_VALUE_HOLDS_RGB_ARRAY (value)) + GIMP_VALUE_HOLDS_FLOAT_ARRAY (value)) { GimpArray *array = g_value_get_boxed (value); diff --git a/libgimp/gimpprocedure-params.h b/libgimp/gimpprocedure-params.h index 71760eace9..ccce8cec54 100644 --- a/libgimp/gimpprocedure-params.h +++ b/libgimp/gimpprocedure-params.h @@ -526,36 +526,6 @@ G_BEGIN_DECLS g_value_take_boxed (gimp_value_array_index (args, n), value) -/* rgb array */ - -#define GIMP_PROC_ARG_RGB_ARRAY(procedure, name, nick, blurb, flags) \ - gimp_procedure_add_argument (procedure,\ - gimp_param_spec_rgb_array (name, nick, blurb,\ - flags)) - -#define GIMP_PROC_AUX_ARG_RGB_ARRAY(procedure, name, nick, blurb, flags) \ - gimp_procedure_add_aux_argument (procedure,\ - gimp_param_spec_rgb_array (name, nick, blurb,\ - flags)) - -#define GIMP_PROC_VAL_RGB_ARRAY(procedure, name, nick, blurb, flags) \ - gimp_procedure_add_return_value (procedure,\ - gimp_param_spec_rgb_array (name, nick, blurb,\ - flags)) - -#define GIMP_VALUES_GET_RGB_ARRAY(args, n) \ - gimp_value_get_rgb_array (gimp_value_array_index (args, n)) - -#define GIMP_VALUES_DUP_RGB_ARRAY(args, n) \ - gimp_value_dup_rgb_array (gimp_value_array_index (args, n)) - -#define GIMP_VALUES_SET_RGB_ARRAY(args, n, value, length) \ - gimp_value_set_rgb_array (gimp_value_array_index (args, n), value, length) - -#define GIMP_VALUES_TAKE_RGB_ARRAY(args, n, value, length) \ - gimp_value_take_rgb_array (gimp_value_array_index (args, n), value, length) - - /* object array */ #define GIMP_PROC_ARG_OBJECT_ARRAY(procedure, name, nick, blurb, object_type, flags) \ diff --git a/libgimpbase/gimpbase.def b/libgimpbase/gimpbase.def index 74fdd53447..0ca356fc7a 100644 --- a/libgimpbase/gimpbase.def +++ b/libgimpbase/gimpbase.def @@ -128,7 +128,6 @@ EXPORTS gimp_param_memsize_get_type gimp_param_object_array_get_type gimp_param_parasite_get_type - gimp_param_rgb_array_get_type gimp_param_spec_array gimp_param_spec_choice gimp_param_spec_float_array @@ -136,7 +135,6 @@ EXPORTS gimp_param_spec_memsize gimp_param_spec_object_array gimp_param_spec_parasite - gimp_param_spec_rgb_array gimp_param_spec_unit gimp_param_spec_value_array gimp_param_unit_get_type @@ -174,7 +172,6 @@ EXPORTS gimp_rectangle_intersect gimp_rectangle_union gimp_repeat_mode_get_type - gimp_rgb_array_get_type gimp_rotation_type_get_type gimp_run_mode_get_type gimp_select_criterion_get_type @@ -237,23 +234,18 @@ EXPORTS gimp_value_dup_float_array gimp_value_dup_int32_array gimp_value_dup_object_array - gimp_value_dup_rgb_array gimp_value_get_float_array gimp_value_get_int32_array gimp_value_get_object_array - gimp_value_get_rgb_array gimp_value_set_float_array gimp_value_set_int32_array gimp_value_set_object_array - gimp_value_set_rgb_array gimp_value_set_static_float_array gimp_value_set_static_int32_array gimp_value_set_static_object_array - gimp_value_set_static_rgb_array gimp_value_take_float_array gimp_value_take_int32_array gimp_value_take_object_array - gimp_value_take_rgb_array gimp_vectors_stroke_type_get_type gimp_wire_clear_error gimp_wire_destroy diff --git a/libgimpbase/gimpparamspecs.c b/libgimpbase/gimpparamspecs.c index 134a9740b3..c1c964894d 100644 --- a/libgimpbase/gimpparamspecs.c +++ b/libgimpbase/gimpparamspecs.c @@ -837,177 +837,6 @@ gimp_color_array_get_length (GimpColorArray array) } -/* - * GIMP_TYPE_RGB_ARRAY - */ - -typedef GimpArray GimpRGBArray; -G_DEFINE_BOXED_TYPE (GimpRGBArray, gimp_rgb_array, gimp_array_copy, gimp_array_free) - - -/* - * GIMP_TYPE_PARAM_RGB_ARRAY - */ - -static void gimp_param_rgb_array_class_init (GParamSpecClass *klass); -static void gimp_param_rgb_array_init (GParamSpec *pspec); - -GType -gimp_param_rgb_array_get_type (void) -{ - static GType type = 0; - - if (! type) - { - const GTypeInfo info = - { - sizeof (GParamSpecClass), - NULL, NULL, - (GClassInitFunc) gimp_param_rgb_array_class_init, - NULL, NULL, - sizeof (GimpParamSpecRGBArray), - 0, - (GInstanceInitFunc) gimp_param_rgb_array_init - }; - - type = g_type_register_static (G_TYPE_PARAM_BOXED, - "GimpParamRGBArray", &info, 0); - } - - return type; -} - -static void -gimp_param_rgb_array_class_init (GParamSpecClass *klass) -{ - klass->value_type = GIMP_TYPE_RGB_ARRAY; -} - -static void -gimp_param_rgb_array_init (GParamSpec *pspec) -{ -} - -/** - * gimp_param_spec_rgb_array: - * @name: Canonical name of the property specified. - * @nick: Nick name of the property specified. - * @blurb: Description of the property specified. - * @flags: Flags for the property specified. - * - * Creates a new #GimpParamSpecRGBArray specifying a - * %GIMP_TYPE_RGB_ARRAY property. - * - * See g_param_spec_internal() for details on property names. - * - * Returns: (transfer full): The newly created #GimpParamSpecRGBArray. - * - * Since: 3.0 - **/ -GParamSpec * -gimp_param_spec_rgb_array (const gchar *name, - const gchar *nick, - const gchar *blurb, - GParamFlags flags) -{ - GimpParamSpecRGBArray *array_spec; - - array_spec = g_param_spec_internal (GIMP_TYPE_PARAM_RGB_ARRAY, - name, nick, blurb, flags); - - return G_PARAM_SPEC (array_spec); -} - -/** - * gimp_value_get_rgb_array: - * @value: A valid value of type %GIMP_TYPE_RGB_ARRAY - * - * Gets the contents of a %GIMP_TYPE_RGB_ARRAY #GValue - * - * Returns: (transfer none) (array): The contents of @value - */ -const GimpRGB * -gimp_value_get_rgb_array (const GValue *value) -{ - g_return_val_if_fail (GIMP_VALUE_HOLDS_RGB_ARRAY (value), NULL); - - return (const GimpRGB *) gimp_value_get_array (value); -} - -/** - * gimp_value_dup_rgb_array: - * @value: A valid value of type %GIMP_TYPE_RGB_ARRAY - * - * Gets the contents of a %GIMP_TYPE_RGB_ARRAY #GValue - * - * Returns: (transfer full) (array): The contents of @value - */ -GimpRGB * -gimp_value_dup_rgb_array (const GValue *value) -{ - g_return_val_if_fail (GIMP_VALUE_HOLDS_RGB_ARRAY (value), NULL); - - return (GimpRGB *) gimp_value_dup_array (value); -} - -/** - * gimp_value_set_rgb_array: - * @value: A valid value of type %GIMP_TYPE_RGB_ARRAY - * @data: (array length=length): A #GimpRGB array - * @length: The number of elements in @data - * - * Sets the contents of @value to @data. - */ -void -gimp_value_set_rgb_array (GValue *value, - const GimpRGB *data, - gsize length) -{ - g_return_if_fail (GIMP_VALUE_HOLDS_RGB_ARRAY (value)); - - gimp_value_set_array (value, (const guint8 *) data, - length * sizeof (GimpRGB)); -} - -/** - * gimp_value_set_static_rgb_array: - * @value: A valid value of type %GIMP_TYPE_RGB_ARRAY - * @data: (array length=length): A #GimpRGB array - * @length: The number of elements in @data - * - * Sets the contents of @value to @data, without copying the data. - */ -void -gimp_value_set_static_rgb_array (GValue *value, - const GimpRGB *data, - gsize length) -{ - g_return_if_fail (GIMP_VALUE_HOLDS_RGB_ARRAY (value)); - - gimp_value_set_static_array (value, (const guint8 *) data, - length * sizeof (GimpRGB)); -} - -/** - * gimp_value_take_rgb_array: - * @value: A valid value of type %GIMP_TYPE_RGB_ARRAY - * @data: (transfer full) (array length=length): A #GimpRGB array - * @length: The number of elements in @data - * - * Sets the contents of @value to @data, and takes ownership of @data. - */ -void -gimp_value_take_rgb_array (GValue *value, - GimpRGB *data, - gsize length) -{ - g_return_if_fail (GIMP_VALUE_HOLDS_RGB_ARRAY (value)); - - gimp_value_take_array (value, (guint8 *) data, - length * sizeof (GimpRGB)); -} - - /* * GIMP_TYPE_OBJECT_ARRAY */ diff --git a/libgimpbase/gimpparamspecs.h b/libgimpbase/gimpparamspecs.h index 040aeafead..e13e263bc6 100644 --- a/libgimpbase/gimpparamspecs.h +++ b/libgimpbase/gimpparamspecs.h @@ -294,52 +294,6 @@ void gimp_color_array_free (GimpColorArray array); gint gimp_color_array_get_length (GimpColorArray array); - -/* - * GIMP_TYPE_RGB_ARRAY - */ - -#define GIMP_TYPE_RGB_ARRAY (gimp_rgb_array_get_type ()) -#define GIMP_VALUE_HOLDS_RGB_ARRAY(value) (G_TYPE_CHECK_VALUE_TYPE ((value), GIMP_TYPE_RGB_ARRAY)) - -GType gimp_rgb_array_get_type (void) G_GNUC_CONST; - - -/* - * GIMP_TYPE_PARAM_RGB_ARRAY - */ - -#define GIMP_TYPE_PARAM_RGB_ARRAY (gimp_param_rgb_array_get_type ()) -#define GIMP_PARAM_SPEC_RGB_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), GIMP_TYPE_PARAM_RGB_ARRAY, GimpParamSpecRGBArray)) -#define GIMP_IS_PARAM_SPEC_RGB_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), GIMP_TYPE_PARAM_RGB_ARRAY)) - -typedef struct _GimpParamSpecRGBArray GimpParamSpecRGBArray; - -struct _GimpParamSpecRGBArray -{ - GParamSpecBoxed parent_instance; -}; - -GType gimp_param_rgb_array_get_type (void) G_GNUC_CONST; - -GParamSpec * gimp_param_spec_rgb_array (const gchar *name, - const gchar *nick, - const gchar *blurb, - GParamFlags flags); - -const GimpRGB * gimp_value_get_rgb_array (const GValue *value); -GimpRGB * gimp_value_dup_rgb_array (const GValue *value); -void gimp_value_set_rgb_array (GValue *value, - const GimpRGB *data, - gsize length); -void gimp_value_set_static_rgb_array (GValue *value, - const GimpRGB *data, - gsize length); -void gimp_value_take_rgb_array (GValue *value, - GimpRGB *data, - gsize length); - - /* * GIMP_TYPE_OBJECT_ARRAY */ diff --git a/libgimpconfig/gimpconfig-params.c b/libgimpconfig/gimpconfig-params.c index 2aafe4634e..8cbf7baf54 100644 --- a/libgimpconfig/gimpconfig-params.c +++ b/libgimpconfig/gimpconfig-params.c @@ -330,11 +330,6 @@ gimp_config_param_spec_duplicate (GParamSpec *pspec) copy = gimp_param_spec_float_array (name, nick, blurb, flags); } - else if (GIMP_IS_PARAM_SPEC_RGB_ARRAY (pspec)) - { - copy = gimp_param_spec_rgb_array (name, nick, blurb, - flags); - } } else if (GIMP_IS_PARAM_SPEC_OBJECT_ARRAY (pspec)) { diff --git a/plug-ins/script-fu/libscriptfu/scheme-marshal-return.c b/plug-ins/script-fu/libscriptfu/scheme-marshal-return.c index 59d431b1aa..606320eb21 100644 --- a/plug-ins/script-fu/libscriptfu/scheme-marshal-return.c +++ b/plug-ins/script-fu/libscriptfu/scheme-marshal-return.c @@ -293,8 +293,7 @@ marshal_returned_PDB_values (scheme *sc, /* In some cases previous value is array_length. */ if ( GIMP_VALUE_HOLDS_INT32_ARRAY (value) - || GIMP_VALUE_HOLDS_FLOAT_ARRAY (value) - || GIMP_VALUE_HOLDS_RGB_ARRAY (value)) + || GIMP_VALUE_HOLDS_FLOAT_ARRAY (value)) { array_length = GIMP_VALUES_GET_INT (values, i); } @@ -549,37 +548,6 @@ marshal_returned_PDB_value (scheme *sc, result = temp_val; } - else if (GIMP_VALUE_HOLDS_RGB_ARRAY (value)) - { - const GimpRGB *v = gimp_value_get_rgb_array (value); - pointer vector = sc->vptr->mk_vector (sc, array_length); - - for (j = 0; j < array_length; j++) - { - /* FIXME this is duplicated in scheme_marshal.c - * Refactor so our repr of pixels is always the same. - * OR ... this is not needed because RGB_ARRAY is no longer in the API? - */ - guchar r, g, b; - pointer temp_val; - - gimp_rgb_get_uchar (&v[j], &r, &g, &b); - - temp_val = sc->vptr->cons - (sc, - sc->vptr->mk_integer (sc, r), - sc->vptr->cons - (sc, - sc->vptr->mk_integer (sc, g), - sc->vptr->cons - (sc, - sc->vptr->mk_integer (sc, b), - sc->NIL))); - sc->vptr->set_vector_elem (vector, j, temp_val); - } - - result = vector; - } else if (GIMP_VALUE_HOLDS_COLOR_ARRAY (value)) { /* unlike RBG_ARRAY, gimp_value_get_color_array (value) is not defined */ diff --git a/plug-ins/script-fu/libscriptfu/scheme-wrapper.c b/plug-ins/script-fu/libscriptfu/scheme-wrapper.c index 136e35e91a..a29a64c349 100644 --- a/plug-ins/script-fu/libscriptfu/scheme-wrapper.c +++ b/plug-ins/script-fu/libscriptfu/scheme-wrapper.c @@ -1262,14 +1262,16 @@ script_fu_marshal_procedure_call (scheme *sc, /* Transfer ownership. */ g_value_take_object (&value, color); } - else if (GIMP_VALUE_HOLDS_RGB_ARRAY (&value)) + else if (GIMP_VALUE_HOLDS_COLOR_ARRAY (&value)) { vector = sc->vptr->pair_car (a); if (! sc->vptr->is_vector (vector)) - return script_type_error (sc, "vector", i, proc_name); + { + return script_type_error (sc, "vector", i, proc_name); + } else { - GimpRGB *array; + GeglColor **colors; if (i == 0) return script_error (sc, "The first argument cannot be an array", a); @@ -1281,20 +1283,20 @@ script_fu_marshal_procedure_call (scheme *sc, if (n_elements > sc->vptr->vector_length (vector)) return script_length_error_in_vector (sc, i, proc_name, n_elements, vector); - array = g_new0 (GimpRGB, n_elements); + colors = g_new0 (GeglColor *, n_elements + 1); for (j = 0; j < n_elements; j++) { pointer v_element = sc->vptr->vector_elem (vector, j); pointer color_list; - guchar r, g, b; + guchar rgb[3]; if (! (sc->vptr->is_list (sc, sc->vptr->pair_car (v_element)) && sc->vptr->list_length (sc, sc->vptr->pair_car (v_element)) == 3)) { - g_free (array); + gimp_color_array_free (colors); g_snprintf (error_str, sizeof (error_str), "Item %d in vector is not a color " "(argument %d for function %s)", @@ -1303,19 +1305,20 @@ script_fu_marshal_procedure_call (scheme *sc, } color_list = sc->vptr->pair_car (v_element); - r = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), - 0, 255); + rgb[0] = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), + 0, 255); color_list = sc->vptr->pair_cdr (color_list); - g = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), - 0, 255); + rgb[1] = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), + 0, 255); color_list = sc->vptr->pair_cdr (color_list); - b = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), - 0, 255); + rgb[2] = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)), + 0, 255); - gimp_rgba_set_uchar (&array[i], r, g, b, 255); + colors[j] = gegl_color_new (NULL); + gegl_color_set_pixel (colors[j], babl_format ("R'G'B' u8"), rgb); } - gimp_value_take_rgb_array (&value, array, n_elements); + g_value_take_boxed (&value, colors); g_debug ("color vector has %ld elements", sc->vptr->vector_length (vector)); }