synfig-core  1.0.3
trgt_png.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_PNG_H
28 #define __SYNFIG_TRGT_PNG_H
29 
30 /* === H E A D E R S ======================================================= */
31 
32 #include <png.h>
33 #include <synfig/target_scanline.h>
34 #include <synfig/string.h>
35 #include <synfig/targetparam.h>
36 #include <cstdio>
37 
38 /* === M A C R O S ========================================================= */
39 
40 /* === T Y P E D E F S ===================================================== */
41 
42 /* === C L A S S E S & S T R U C T S ======================================= */
43 
45 {
47 private:
48  FILE *file;
49  //int w,h;
50  png_structp png_ptr;
51  png_infop info_ptr;
52 
53  static void png_out_error(png_struct *png,const char *msg);
54  static void png_out_warning(png_struct *png,const char *msg);
55  bool multi_image,ready;
56  int imagecount;
57  synfig::String filename;
58  unsigned char *buffer;
59  synfig::Color *color_buffer;
60  synfig::String sequence_separator;
61 public:
62  png_trgt(const char *filename, const synfig::TargetParam& /* params */);
63  virtual ~png_trgt();
64 
65  virtual bool set_rend_desc(synfig::RendDesc *desc);
66  virtual bool start_frame(synfig::ProgressCallback *cb);
67  virtual void end_frame();
68 
69  virtual synfig::Color * start_scanline(int scanline);
70  virtual bool end_scanline();
71 };
72 
73 /* === E N D =============================================================== */
74 
75 #endif