synfig-core  1.0.3
target_scanline.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_SCANLINE_H
27 #define __SYNFIG_TARGET_SCANLINE_H
28 
29 /* === H E A D E R S ======================================================= */
30 
31 #include "target.h"
32 
33 /* === M A C R O S ========================================================= */
34 
35 /* === T Y P E D E F S ===================================================== */
36 
37 /* === C L A S S E S & S T R U C T S ======================================= */
38 
39 namespace synfig {
40 
45 class Target_Scanline : public Target
46 {
48  int threads_;
49 
50 public:
51  typedef etl::handle<Target_Scanline> Handle;
52  typedef etl::loose_handle<Target_Scanline> LooseHandle;
53  typedef etl::handle<const Target_Scanline> ConstHandle;
56 
58  virtual bool render(ProgressCallback *cb=NULL);
59 
61 
64  virtual bool start_frame(ProgressCallback *cb=NULL)=0;
65 
68  virtual int next_frame(Time& time);
69 
71 
72  virtual void end_frame()=0;
73 
75 
81  virtual Color * start_scanline(int scanline)=0;
82 
84 
89  virtual bool end_scanline()=0;
91  void set_threads(int x) { threads_=x; }
93  int get_threads()const { return threads_; }
95  bool add_frame(const synfig::Surface *surface);
96 private:
97 }; // END of class Target_Scanline
98 
99 }; // END of namespace synfig
100 
101 /* === E N D =============================================================== */
102 
103 #endif