[gegl/soc-2012-ops: 37/58] Wind Operation: Use chant_seed
- From: Michael Murà <mmure src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl/soc-2012-ops: 37/58] Wind Operation: Use chant_seed
- Date: Wed, 29 Aug 2012 11:07:37 +0000 (UTC)
commit 2235a02e1fd1736555ba72fafc8e7d87146af1cc
Author: Hans Lo <hansshulo gmail com>
Date: Wed Aug 8 22:13:43 2012 -0400
Wind Operation: Use chant_seed
operations/common/wind.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/operations/common/wind.c b/operations/common/wind.c
index a1bdd5a..0a6d49e 100644
--- a/operations/common/wind.c
+++ b/operations/common/wind.c
@@ -30,6 +30,8 @@ gegl_chant_double (threshold, _("Threshold"), 0.0, 100.0, 10.0,
gegl_chant_int (strength, _("Strength"), 1, 1000, 40,
_("Higher values increase the magnitude of the effect"))
+gegl_chant_seed (seed, _("Seed"), _("Random seed"))
+
#else
#define GEGL_CHANT_TYPE_AREA_FILTER
@@ -112,10 +114,11 @@ calculate_bleed (GHashTable *h,
gfloat *data,
gfloat threshold,
gfloat max_length,
- GeglRectangle *rect)
+ GeglRectangle *rect,
+ gint seed)
{
gint x, y;
-
+ GRand *gr = g_rand_new_with_seed (seed);
for (y = 0; y < rect->height; y++)
{
for (x = 0; x < rect->width - 3; x++)
@@ -130,7 +133,7 @@ calculate_bleed (GHashTable *h,
{
pair *k = g_new (pair, 1);
gint *v = g_new (gint, 1);
- gint bleed_length = 1 + (gint)(g_random_double () * max_length);
+ gint bleed_length = 1 + (gint)(g_rand_double (gr) * max_length);
k->x = x;
k->y = y;
@@ -140,6 +143,7 @@ calculate_bleed (GHashTable *h,
}
}
}
+ g_rand_free (gr);
}
static void prepare (GeglOperation *operation)
@@ -206,7 +210,7 @@ process (GeglOperation *operation,
gfloat *data = (gfloat*) gegl_buffer_linear_open (input, NULL, NULL, babl_format ("RGBA float"));
bleed_table = g_hash_table_new_full (tuple_hash, tuple_equal, g_free, g_free);
- calculate_bleed (bleed_table, data, o->threshold, (gfloat) o->strength, whole_rect);
+ calculate_bleed (bleed_table, data, o->threshold, (gfloat) o->strength, whole_rect, o->seed);
o->chant_data = bleed_table;
gegl_buffer_linear_close (input, data);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]