[gimp] app: add imp_dash_pattern_from,to_double_array()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add imp_dash_pattern_from,to_double_array()
- Date: Tue, 10 Nov 2015 23:48:54 +0000 (UTC)
commit 3d19e4acfb339c804daa3ecf9b97e48fea3265a8
Author: Michael Natterer <mitch gimp org>
Date: Wed Nov 11 00:34:11 2015 +0100
app: add imp_dash_pattern_from,to_double_array()
which converts stroke dash pattern from/to arrays as used in the PDB.
app/core/gimpdashpattern.c | 63 ++++++++++++++++++++++++++++++++++++++++---
app/core/gimpdashpattern.h | 5 +++
2 files changed, 63 insertions(+), 5 deletions(-)
---
diff --git a/app/core/gimpdashpattern.c b/app/core/gimpdashpattern.c
index 0d4d2f2..60ffcf7 100644
--- a/app/core/gimpdashpattern.c
+++ b/app/core/gimpdashpattern.c
@@ -251,11 +251,7 @@ gimp_dash_pattern_from_value_array (GimpValueArray *value_array)
GimpValueArray *
gimp_dash_pattern_to_value_array (GArray *pattern)
{
- if (pattern == NULL || pattern->len == 0)
- {
- return NULL;
- }
- else
+ if (pattern != NULL && pattern->len > 0)
{
GimpValueArray *value_array = gimp_value_array_new (pattern->len);
GValue item = { 0, };
@@ -273,6 +269,63 @@ gimp_dash_pattern_to_value_array (GArray *pattern)
return value_array;
}
+
+ return NULL;
+}
+
+GArray *
+gimp_dash_pattern_from_double_array (gint n_dashes,
+ const gdouble *dashes)
+{
+ if (n_dashes > 0 && dashes != NULL)
+ {
+ GArray *pattern;
+ gint i;
+
+ pattern = g_array_new (FALSE, FALSE, sizeof (gdouble));
+
+ for (i = 0; i < n_dashes; i++)
+ {
+ if (dashes[i] >= 0.0)
+ {
+ g_array_append_val (pattern, dashes[i]);
+ }
+ else
+ {
+ g_array_free (pattern, TRUE);
+ return NULL;
+ }
+ }
+
+ return pattern;
+ }
+
+ return NULL;
+}
+
+gdouble *
+gimp_dash_pattern_to_double_array (GArray *pattern,
+ gint *n_dashes)
+{
+ if (pattern != NULL && pattern->len > 0)
+ {
+ gdouble *dashes;
+ gint i;
+
+ dashes = g_new0 (gdouble, pattern->len);
+
+ for (i = 0; i < pattern->len; i++)
+ {
+ dashes[i] = g_array_index (pattern, gdouble, i);
+ }
+
+ if (n_dashes)
+ *n_dashes = pattern->len;
+
+ return dashes;
+ }
+
+ return NULL;
}
GArray *
diff --git a/app/core/gimpdashpattern.h b/app/core/gimpdashpattern.h
index 24821c2..138cc4f 100644
--- a/app/core/gimpdashpattern.h
+++ b/app/core/gimpdashpattern.h
@@ -41,6 +41,11 @@ void gimp_dash_pattern_fill_segments (GArray *pattern,
GArray * gimp_dash_pattern_from_value_array (GimpValueArray *value_array);
GimpValueArray * gimp_dash_pattern_to_value_array (GArray *pattern);
+GArray * gimp_dash_pattern_from_double_array (gint n_dashes,
+ const gdouble *dashes);
+gdouble * gimp_dash_pattern_to_double_array (GArray *pattern,
+ gint *n_dashes);
+
GArray * gimp_dash_pattern_copy (GArray *pattern);
void gimp_dash_pattern_free (GArray *pattern);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]