[gimp] app: Fix dynamics mixing for inputs&outputs that have paint options toggles
- From: Alexia Death <alexiade src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Fix dynamics mixing for inputs&outputs that have paint options toggles
- Date: Fri, 18 Dec 2009 18:52:09 +0000 (UTC)
commit b95dda6eeac7fc31f4dc70d7c4c27572d4df229f
Author: Alexia Death <alexiadeath gmail com>
Date: Fri Dec 18 20:20:45 2009 +0200
app: Fix dynamics mixing for inputs&outputs that have paint options toggles
app/core/gimpdynamicsoutput.c | 39 ++++++++++++++++++++++++++++++---------
app/core/gimpdynamicsoutput.h | 3 +++
app/paint/gimpairbrush.c | 2 ++
app/paint/gimpbrushcore.c | 8 ++++++++
app/paint/gimpclone.c | 1 +
app/paint/gimpconvolve.c | 2 ++
app/paint/gimpdodgeburn.c | 2 ++
app/paint/gimperaser.c | 2 ++
app/paint/gimpheal.c | 1 +
app/paint/gimppaintbrush.c | 3 +++
app/paint/gimpsmudge.c | 3 +++
app/paint/gimpsourcecore.c | 1 +
12 files changed, 58 insertions(+), 9 deletions(-)
---
diff --git a/app/core/gimpdynamicsoutput.c b/app/core/gimpdynamicsoutput.c
index 7e5ad8e..4c179d3 100644
--- a/app/core/gimpdynamicsoutput.c
+++ b/app/core/gimpdynamicsoutput.c
@@ -24,6 +24,9 @@
#include "core-types.h"
+#include "paint/gimppaintoptions.h"
+
+
#include "gimpcurve.h"
#include "gimpdynamicsoutput.h"
@@ -243,6 +246,7 @@ gimp_dynamics_output_is_enabled (GimpDynamicsOutput *output)
gdouble
gimp_dynamics_output_get_linear_value (GimpDynamicsOutput *output,
const GimpCoords *coords,
+ GimpPaintOptions *options,
gdouble fade_point)
{
gdouble total = 0.0;
@@ -279,10 +283,15 @@ gimp_dynamics_output_get_linear_value (GimpDynamicsOutput *output,
factors++;
}
- if (output->use_fade)
+ if ((output->use_fade) && (options))
{
- total += fade_point;
- factors++;
+ GimpFadeOptions *fade_options = options->fade_options;
+
+ if (fade_options->use_fade)
+ {
+ total += fade_point;
+ factors++;
+ }
}
if (factors > 0)
@@ -299,6 +308,7 @@ gimp_dynamics_output_get_linear_value (GimpDynamicsOutput *output,
gdouble
gimp_dynamics_output_get_angular_value (GimpDynamicsOutput *output,
const GimpCoords *coords,
+ GimpPaintOptions *options,
gdouble fade_point)
{
gdouble total = 0.0;
@@ -368,10 +378,15 @@ gimp_dynamics_output_get_angular_value (GimpDynamicsOutput *output,
factors++;
}
- if (output->use_fade)
+ if ((output->use_fade) && (options))
{
- total += fade_point;
- factors++;
+ GimpFadeOptions *fade_options = options->fade_options;
+
+ if (fade_options->use_fade)
+ {
+ total += fade_point;
+ factors++;
+ }
}
if (factors > 0)
@@ -388,6 +403,7 @@ gimp_dynamics_output_get_angular_value (GimpDynamicsOutput *output,
gdouble
gimp_dynamics_output_get_aspect_value (GimpDynamicsOutput *output,
const GimpCoords *coords,
+ GimpPaintOptions *options,
gdouble fade_point)
{
gdouble total = 0.0;
@@ -438,10 +454,15 @@ gimp_dynamics_output_get_aspect_value (GimpDynamicsOutput *output,
factors++;
}
- if (output->use_fade)
+ if ((output->use_fade) && (options))
{
- total += fade_point;
- factors++;
+ GimpFadeOptions *fade_options = options->fade_options;
+
+ if (fade_options->use_fade)
+ {
+ total += fade_point;
+ factors++;
+ }
}
if (factors > 0)
diff --git a/app/core/gimpdynamicsoutput.h b/app/core/gimpdynamicsoutput.h
index 6dac2fe..07df88e 100644
--- a/app/core/gimpdynamicsoutput.h
+++ b/app/core/gimpdynamicsoutput.h
@@ -65,12 +65,15 @@ gboolean gimp_dynamics_output_is_enabled (GimpDynamicsOutput *output);
gdouble gimp_dynamics_output_get_linear_value (GimpDynamicsOutput *output,
const GimpCoords *coords,
+ GimpPaintOptions *options,
gdouble fade_point);
gdouble gimp_dynamics_output_get_angular_value (GimpDynamicsOutput *output,
const GimpCoords *coords,
+ GimpPaintOptions *options,
gdouble fade_point);
gdouble gimp_dynamics_output_get_aspect_value (GimpDynamicsOutput *output,
const GimpCoords *coords,
+ GimpPaintOptions *options,
gdouble fade_point);
diff --git a/app/paint/gimpairbrush.c b/app/paint/gimpairbrush.c
index feca5b0..8cdbcf9 100644
--- a/app/paint/gimpairbrush.c
+++ b/app/paint/gimpairbrush.c
@@ -156,6 +156,7 @@ gimp_airbrush_paint (GimpPaintCore *paint_core,
dynamic_rate =
gimp_dynamics_output_get_linear_value (dynamics->rate_output,
coords,
+ paint_options,
fade_point);
timeout = 10000 / (options->rate * dynamic_rate);
@@ -198,6 +199,7 @@ gimp_airbrush_motion (GimpPaintCore *paint_core,
opacity = options->pressure / 100.0;
opacity *= gimp_dynamics_output_get_linear_value(GIMP_BRUSH_CORE(paint_core)->dynamics->opacity_output,
coords,
+ paint_options,
fade_point);
diff --git a/app/paint/gimpbrushcore.c b/app/paint/gimpbrushcore.c
index cecdc9d..82b2c73 100644
--- a/app/paint/gimpbrushcore.c
+++ b/app/paint/gimpbrushcore.c
@@ -425,14 +425,17 @@ gimp_brush_core_start (GimpPaintCore *paint_core,
core->scale *= gimp_dynamics_output_get_linear_value (core->dynamics->size_output,
coords,
+ paint_options,
fade_point);
core->angle += gimp_dynamics_output_get_angular_value (core->dynamics->angle_output,
coords,
+ paint_options,
fade_point);
core->aspect_ratio *= gimp_dynamics_output_get_aspect_value (core->dynamics->aspect_ratio_output,
coords,
+ paint_options,
fade_point);
}
}
@@ -519,6 +522,7 @@ gimp_brush_core_interpolate (GimpPaintCore *paint_core,
{
dyn_spacing = gimp_dynamics_output_get_linear_value (core->dynamics->spacing_output,
¤t_coords,
+ paint_options,
fade_point);
/* Dynamic spacing assumes that the value set in core is the min value
* and the max is full 200% spacing. This approach differs ofrom the usual
@@ -747,6 +751,7 @@ gimp_brush_core_interpolate (GimpPaintCore *paint_core,
dyn_jitter = core->jitter * gimp_dynamics_output_get_linear_value (core->dynamics->jitter_output,
¤t_coords,
+ paint_options,
fade_point);
jitter_dist = g_rand_double_range (core->rand, 0, dyn_jitter);
@@ -814,14 +819,17 @@ gimp_brush_core_get_paint_area (GimpPaintCore *paint_core,
core->scale *= gimp_dynamics_output_get_linear_value (core->dynamics->size_output,
coords,
+ paint_options,
fade_point);
core->angle += gimp_dynamics_output_get_angular_value (core->dynamics->angle_output,
coords,
+ paint_options,
fade_point);
core->aspect_ratio *= gimp_dynamics_output_get_aspect_value (core->dynamics->aspect_ratio_output,
coords,
+ paint_options,
fade_point);
}
}
diff --git a/app/paint/gimpclone.c b/app/paint/gimpclone.c
index d51c57e..8f1486c 100644
--- a/app/paint/gimpclone.c
+++ b/app/paint/gimpclone.c
@@ -245,6 +245,7 @@ gimp_clone_motion (GimpSourceCore *source_core,
hardness = gimp_dynamics_output_get_linear_value (dynamics->hardness_output,
coords,
+ paint_options,
fade_point);
gimp_brush_core_paste_canvas (GIMP_BRUSH_CORE (paint_core), drawable,
diff --git a/app/paint/gimpconvolve.c b/app/paint/gimpconvolve.c
index e166406..d4934c7 100644
--- a/app/paint/gimpconvolve.c
+++ b/app/paint/gimpconvolve.c
@@ -151,6 +151,7 @@ gimp_convolve_motion (GimpPaintCore *paint_core,
opacity = gimp_dynamics_output_get_linear_value (dynamics->opacity_output,
coords,
+ paint_options,
fade_point);
if (opacity == 0.0)
return;
@@ -164,6 +165,7 @@ gimp_convolve_motion (GimpPaintCore *paint_core,
rate *= gimp_dynamics_output_get_linear_value (dynamics->rate_output,
coords,
+ paint_options,
fade_point);
gimp_convolve_calculate_matrix (convolve, options->type,
diff --git a/app/paint/gimpdodgeburn.c b/app/paint/gimpdodgeburn.c
index 5e5bf39..1546fc2 100644
--- a/app/paint/gimpdodgeburn.c
+++ b/app/paint/gimpdodgeburn.c
@@ -190,6 +190,7 @@ gimp_dodge_burn_motion (GimpPaintCore *paint_core,
opacity = gimp_dynamics_output_get_linear_value (dynamics->opacity_output,
coords,
+ paint_options,
fade_point);
if (opacity == 0.0)
return;
@@ -256,6 +257,7 @@ gimp_dodge_burn_motion (GimpPaintCore *paint_core,
hardness = gimp_dynamics_output_get_linear_value (dynamics->hardness_output,
coords,
+ paint_options,
fade_point);
/* Replace the newly dodgedburned area (canvas_buf) to the image */
diff --git a/app/paint/gimperaser.c b/app/paint/gimperaser.c
index 4f90b1c..53d605a 100644
--- a/app/paint/gimperaser.c
+++ b/app/paint/gimperaser.c
@@ -125,6 +125,7 @@ gimp_eraser_motion (GimpPaintCore *paint_core,
opacity = gimp_dynamics_output_get_linear_value (dynamics->opacity_output,
coords,
+ paint_options,
fade_point);
if (opacity == 0.0)
return;
@@ -146,6 +147,7 @@ gimp_eraser_motion (GimpPaintCore *paint_core,
hardness = gimp_dynamics_output_get_linear_value (dynamics->hardness_output,
coords,
+ paint_options,
fade_point);
gimp_brush_core_paste_canvas (GIMP_BRUSH_CORE (paint_core), drawable,
diff --git a/app/paint/gimpheal.c b/app/paint/gimpheal.c
index d26cb63..a5a6bac 100644
--- a/app/paint/gimpheal.c
+++ b/app/paint/gimpheal.c
@@ -450,6 +450,7 @@ gimp_heal_motion (GimpSourceCore *source_core,
hardness = gimp_dynamics_output_get_linear_value (dynamics->hardness_output,
coords,
+ paint_options,
fade_point);
mask_buf = gimp_brush_core_get_brush_mask (GIMP_BRUSH_CORE (source_core),
diff --git a/app/paint/gimppaintbrush.c b/app/paint/gimppaintbrush.c
index ab558b4..d2bc7b0 100644
--- a/app/paint/gimppaintbrush.c
+++ b/app/paint/gimppaintbrush.c
@@ -128,6 +128,7 @@ _gimp_paintbrush_motion (GimpPaintCore *paint_core,
opacity *= gimp_dynamics_output_get_linear_value (dynamics->opacity_output,
coords,
+ paint_options,
fade_point);
if (opacity == 0.0)
return;
@@ -141,6 +142,7 @@ _gimp_paintbrush_motion (GimpPaintCore *paint_core,
grad_point = gimp_dynamics_output_get_linear_value (dynamics->color_output,
coords,
+ paint_options,
fade_point);
/* optionally take the color from the current gradient */
@@ -188,6 +190,7 @@ _gimp_paintbrush_motion (GimpPaintCore *paint_core,
hardness = gimp_dynamics_output_get_linear_value (dynamics->hardness_output,
coords,
+ paint_options,
fade_point);
/* finally, let the brush core paste the colored area on the canvas */
diff --git a/app/paint/gimpsmudge.c b/app/paint/gimpsmudge.c
index 3102eb3..6f77710 100644
--- a/app/paint/gimpsmudge.c
+++ b/app/paint/gimpsmudge.c
@@ -262,6 +262,7 @@ gimp_smudge_motion (GimpPaintCore *paint_core,
opacity = gimp_dynamics_output_get_linear_value (dynamics->opacity_output,
coords,
+ paint_options,
fade_point);
if (opacity == 0.0)
return;
@@ -281,6 +282,7 @@ gimp_smudge_motion (GimpPaintCore *paint_core,
/* Enable dynamic rate */
dynamic_rate = gimp_dynamics_output_get_linear_value (dynamics->rate_output,
coords,
+ paint_options,
fade_point);
rate = (options->rate / 100.0) * dynamic_rate;
@@ -324,6 +326,7 @@ gimp_smudge_motion (GimpPaintCore *paint_core,
hardness = gimp_dynamics_output_get_linear_value (dynamics->hardness_output,
coords,
+ paint_options,
fade_point);
gimp_brush_core_replace_canvas (GIMP_BRUSH_CORE (paint_core), drawable,
diff --git a/app/paint/gimpsourcecore.c b/app/paint/gimpsourcecore.c
index 3e644d3..9218d7e 100644
--- a/app/paint/gimpsourcecore.c
+++ b/app/paint/gimpsourcecore.c
@@ -366,6 +366,7 @@ gimp_source_core_motion (GimpSourceCore *source_core,
opacity = gimp_dynamics_output_get_linear_value (dynamics->opacity_output,
coords,
+ paint_options,
fade_point);
if (opacity == 0.0)
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]