Author: Carlos Lopez <genet...@gmail.com>
Date:   Mon Apr  8 21:19:43 2013 +0200

Noise: add new member get_cairocolor to make possible render it in Cairo.

---

 synfig-core/src/modules/mod_noise/noise.cpp |   11 +++++++++++
 synfig-core/src/modules/mod_noise/noise.h   |    1 +
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/synfig-core/src/modules/mod_noise/noise.cpp 
b/synfig-core/src/modules/mod_noise/noise.cpp
index 0ad5648..5985c04 100644
--- a/synfig-core/src/modules/mod_noise/noise.cpp
+++ b/synfig-core/src/modules/mod_noise/noise.cpp
@@ -312,6 +312,17 @@ Noise::get_color(Context context, const Point &point)const
                return 
Color::blend(color,context.get_color(point),get_amount(),get_blend_method());
 }
 
+CairoColor
+Noise::get_cairocolor(Context context, const Point &point)const
+{
+       const CairoColor color(color_func(point,0,context));
+       
+       if(get_amount()==1.0 && get_blend_method()==Color::BLEND_STRAIGHT)
+               return color;
+       else
+               return 
CairoColor::blend(color,context.get_cairocolor(point),get_amount(),get_blend_method());
+}
+
 bool
 Noise::accelerated_render(Context context,Surface *surface,int quality, const 
RendDesc &renddesc, ProgressCallback *cb)const
 {
diff --git a/synfig-core/src/modules/mod_noise/noise.h 
b/synfig-core/src/modules/mod_noise/noise.h
index 1ea78d6..070c4a0 100644
--- a/synfig-core/src/modules/mod_noise/noise.h
+++ b/synfig-core/src/modules/mod_noise/noise.h
@@ -75,6 +75,7 @@ public:
        virtual bool set_param(const synfig::String &param, const 
synfig::ValueBase &value);
        virtual synfig::ValueBase get_param(const synfig::String &param)const;
        virtual synfig::Color get_color(synfig::Context context, const 
synfig::Point &pos)const;
+       virtual synfig::CairoColor get_cairocolor(synfig::Context context, 
const synfig::Point &pos)const;
        virtual bool accelerated_render(synfig::Context context,synfig::Surface 
*surface,int quality, const synfig::RendDesc &renddesc, 
synfig::ProgressCallback *cb)const;
        synfig::Layer::Handle hit_check(synfig::Context context, const 
synfig::Point &point)const;
        virtual void set_time(synfig::Context context, synfig::Time time)const;


------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
Synfig-devl mailing list
Synfig-devl@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to