synfig-core  1.0.3
target_cairo.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
22 /* ========================================================================= */
23 
24 /* === S T A R T =========================================================== */
25 
26 #ifndef __SYNFIG_TARGET_CAIRO_H
27 #define __SYNFIG_TARGET_CAIRO_H
28 
29 /* === H E A D E R S ======================================================= */
30 
31 #include "target.h"
32 #include "cairo.h"
33 
34 
35 /* === M A C R O S ========================================================= */
36 
37 /* === T Y P E D E F S ===================================================== */
38 
39 /* === C L A S S E S & S T R U C T S ======================================= */
40 
41 namespace synfig {
42 
43 class CairoSurface;
44 
49 class Target_Cairo : public Target
50 {
52  // int threads_;
53 
54 public:
55  typedef etl::handle<Target_Cairo> Handle;
56  typedef etl::loose_handle<Target_Cairo> LooseHandle;
57  typedef etl::handle<const Target_Cairo> ConstHandle;
59  Target_Cairo();
60 
62  virtual bool render(ProgressCallback *cb=NULL);
63 
67  virtual bool obtain_surface(cairo_surface_t*&)=0;
68 
71  virtual int next_frame(Time& time);
72 
74  virtual bool put_surface(cairo_surface_t *surface, ProgressCallback *cb=NULL);
76  static void gamma_filter(cairo_surface_t* surface, const synfig::Gamma gamma);
77 
78 private:
79 }; // END of class Target_Cairo
80 
81 }; // END of namespace synfig
82 
83 /* === E N D =============================================================== */
84 
85 #endif