synfig-core  1.0.3
trgt_openexr.h
Go to the documentation of this file.
1 /* === S Y N F I G ========================================================= */
25 /* === S T A R T =========================================================== */
26 
27 #ifndef __SYNFIG_TRGT_OPENEXR_H
28 #define __SYNFIG_TRGT_OPENEXR_H
29 
30 /* === H E A D E R S ======================================================= */
31 
32 #include <synfig/target_scanline.h>
33 #include <synfig/string.h>
34 #include <synfig/surface.h>
35 #include <synfig/targetparam.h>
36 #include <cstdio>
37 #include <OpenEXR/ImfArray.h>
38 #include <OpenEXR/ImfRgbaFile.h>
39 #include <exception>
40 
41 /* === M A C R O S ========================================================= */
42 
43 /* === T Y P E D E F S ===================================================== */
44 
45 /* === C L A S S E S & S T R U C T S ======================================= */
46 
48 {
49 public:
50 private:
51  bool multi_image;
52  int imagecount,scanline;
53  synfig::String filename;
54  Imf::RgbaOutputFile *exr_file;
55  Imf::Rgba *buffer;
56  etl::surface<Imf::Rgba> out_surface;
57 #ifndef USE_HALF_TYPE
58  synfig::Color *buffer_color;
59 #endif
60 
61  bool ready();
62  synfig::String sequence_separator;
63 public:
64  exr_trgt(const char *filename, const synfig::TargetParam& /* params */);
65  virtual ~exr_trgt();
66 
67  virtual bool set_rend_desc(synfig::RendDesc *desc);
68  virtual bool start_frame(synfig::ProgressCallback *cb);
69  virtual void end_frame();
70 
71  virtual synfig::Color * start_scanline(int scanline);
72  virtual bool end_scanline(void);
73 
74 
76 };
77 
78 /* === E N D =============================================================== */
79 
80 #endif