synfig-core  1.0.3
trgt_jpeg.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_JPEG_H
28 #define __SYNFIG_TRGT_JPEG_H
29 
30 /* === H E A D E R S ======================================================= */
31 
32 #define NOMINMAX
33 #include <synfig/target_scanline.h>
34 #include <synfig/string.h>
35 #include <synfig/targetparam.h>
36 #include <cstdio>
37 _ETL_BEGIN_CDECLS
38 #include <jpeglib.h>
39 _ETL_END_CDECLS
40 #include <setjmp.h>
41 
42 /* === M A C R O S ========================================================= */
43 
44 /* === T Y P E D E F S ===================================================== */
45 
46 /* === C L A S S E S & S T R U C T S ======================================= */
47 
49 {
51 private:
52  FILE *file;
53  int /*w,h,*/quality;
54  struct jpeg_compress_struct cinfo;
55  struct jpeg_error_mgr jerr;
56 
57 
58  bool multi_image,ready;
59  int imagecount;
60  synfig::String filename;
61  unsigned char *buffer;
62  synfig::Color *color_buffer;
63  synfig::String sequence_separator;
64 public:
65  jpeg_trgt(const char *filename, const synfig::TargetParam& /* params */);
66  virtual ~jpeg_trgt();
67 
68  virtual bool set_rend_desc(synfig::RendDesc *desc);
69  virtual bool start_frame(synfig::ProgressCallback *cb);
70  virtual void end_frame();
71 
72  virtual synfig::Color * start_scanline(int scanline);
73  virtual bool end_scanline();
74 };
75 
76 /* === E N D =============================================================== */
77 
78 #endif