Author: Carlos Lopez <genet...@gmail.com>
Date:   Mon Aug 20 20:18:23 2012 +0200

Translate layer: add support for Cairo render

---

 synfig-core/src/modules/lyr_std/translate.cpp |   23 +++++++++++++++++++++++
 synfig-core/src/modules/lyr_std/translate.h   |    1 +
 2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/synfig-core/src/modules/lyr_std/translate.cpp 
b/synfig-core/src/modules/lyr_std/translate.cpp
index 68f5d5f..4a4654a 100644
--- a/synfig-core/src/modules/lyr_std/translate.cpp
+++ b/synfig-core/src/modules/lyr_std/translate.cpp
@@ -156,6 +156,29 @@ Translate::accelerated_render(Context context,Surface 
*surface,int quality, cons
        return true;
 }
 
+/////
+bool
+Translate::accelerated_cairorender(Context context,cairo_surface_t 
*surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const
+{
+       RendDesc desc(renddesc);
+       
+       desc.clear_flags();
+       desc.set_tl(desc.get_tl()-origin);
+       desc.set_br(desc.get_br()-origin);
+       
+       // Render the scene
+       if(!context.accelerated_cairorender(surface,quality,desc,cb))
+       {
+               if(cb)cb->error(strprintf(__FILE__"%d: Accelerated Cairo 
Renderer Failure",__LINE__));
+               return false;
+       }
+       
+       return true;
+}
+
+/////
+
+
 Rect
 Translate::get_full_bounding_rect(Context context)const
 {
diff --git a/synfig-core/src/modules/lyr_std/translate.h 
b/synfig-core/src/modules/lyr_std/translate.h
index ce1b6a9..e4a39e5 100644
--- a/synfig-core/src/modules/lyr_std/translate.h
+++ b/synfig-core/src/modules/lyr_std/translate.h
@@ -59,6 +59,7 @@ public:
        virtual ValueBase get_param(const String & param)const;
        virtual Color get_color(Context context, const Point &pos)const;
        virtual bool accelerated_render(Context context,Surface *surface,int 
quality, const RendDesc &renddesc, ProgressCallback *cb)const;
+       virtual bool accelerated_cairorender(Context context,cairo_surface_t 
*surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const;
        virtual Vocab get_param_vocab()const;
        virtual synfig::Rect get_full_bounding_rect(Context context)const;
        synfig::Layer::Handle hit_check(synfig::Context context, const 
synfig::Point &point)const;


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Synfig-devl mailing list
Synfig-devl@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to