00001 00020 /* === S T A R T =========================================================== */ 00021 00022 #ifndef __SYNFIG_TRGT_MAGICKPP_H 00023 #define __SYNFIG_TRGT_MAGICKPP_H 00024 00025 /* === H E A D E R S ======================================================= */ 00026 00027 #include <synfig/target_scanline.h> 00028 #include <synfig/string.h> 00029 #include <cstdio> 00030 00031 #include <vector> 00032 #include <Magick++.h> 00033 00034 /* === M A C R O S ========================================================= */ 00035 00036 /* === T Y P E D E F S ===================================================== */ 00037 00038 /* === C L A S S E S & S T R U C T S ======================================= */ 00039 00040 class magickpp_trgt : public synfig::Target_Scanline 00041 { 00042 SYNFIG_TARGET_MODULE_EXT 00043 00044 private: 00045 00046 int width, height; 00047 00048 synfig::String filename; 00049 unsigned char *buffer1, *start_pointer, *buffer_pointer; 00050 unsigned char *buffer2, *previous_buffer_pointer; 00051 bool transparent; 00052 synfig::Color *color_buffer; 00053 std::vector<Magick::Image> images; 00054 00055 public: 00056 00057 magickpp_trgt(const char *filename) : filename(filename) { } 00058 virtual ~magickpp_trgt(); 00059 00060 virtual bool set_rend_desc(synfig::RendDesc *desc); 00061 virtual bool init(); 00062 00063 virtual bool start_frame(synfig::ProgressCallback *cb); 00064 virtual void end_frame(); 00065 00066 virtual synfig::Color* start_scanline(int scanline); 00067 virtual bool end_scanline(); 00068 }; 00069 00070 /* === E N D =============================================================== */ 00071 00072 #endif