Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-studio / trunk / src / gtkmm / asyncrenderer.h
index f9721c9..6678e4e 100644 (file)
@@ -1,28 +1,30 @@
-/* === S I N F G =========================================================== */
+/* === S Y N F I G ========================================================= */
 /*!    \file asyncrenderer.h
 **     \brief Template Header
 **
-**     $Id: asyncrenderer.h,v 1.3 2005/01/12 07:03:42 darco Exp $
+**     $Id$
 **
 **     \legal
-**     Copyright (c) 2002 Robert B. Quattlebaum Jr.
+**     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007 Chris Moore
 **
-**     This software and associated documentation
-**     are CONFIDENTIAL and PROPRIETARY property of
-**     the above-mentioned copyright holder.
+**     This package is free software; you can redistribute it and/or
+**     modify it under the terms of the GNU General Public License as
+**     published by the Free Software Foundation; either version 2 of
+**     the License, or (at your option) any later version.
 **
-**     You may not copy, print, publish, or in any
-**     other way distribute this software without
-**     a prior written agreement with
-**     the copyright holder.
+**     This package is distributed in the hope that it will be useful,
+**     but WITHOUT ANY WARRANTY; without even the implied warranty of
+**     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+**     General Public License for more details.
 **     \endlegal
 */
 /* ========================================================================= */
 
 /* === S T A R T =========================================================== */
 
-#ifndef __SINFG_ASYNCRENDERER_H
-#define __SINFG_ASYNCRENDERER_H
+#ifndef __SYNFIG_ASYNCRENDERER_H
+#define __SYNFIG_ASYNCRENDERER_H
 
 /* === H E A D E R S ======================================================= */
 
@@ -31,9 +33,9 @@
 #include <sigc++/trackable.h>
 #include <sigc++/connection.h>
 
-#include <sinfg/target_scanline.h>
-#include <sinfg/target_tile.h>
-#include <sinfg/surface.h>
+#include <synfig/target_scanline.h>
+#include <synfig/target_tile.h>
+#include <synfig/surface.h>
 #include <glibmm/main.h>
 #include <ETL/ref_count>
 #include <glibmm/thread.h>
 
 /* === M A C R O S ========================================================= */
 
+// uncomment to use a single thread, and hopefully get more stability
+// #define SINGLE_THREADED
+#ifdef SINGLE_THREADED
+#  define single_threaded()    App::single_threaded
+#endif
+
 /* === T Y P E D E F S ===================================================== */
 
 /* === C L A S S E S & S T R U C T S ======================================= */
@@ -53,16 +61,16 @@ class AsyncRenderer : public etl::shared_object, public sigc::trackable
        sigc::signal<void> signal_success_;
 
        std::list<sigc::connection> activity_connection_list;
-       
-       //etl::handle<sinfg::Target_Scanline> target_scanline;
-       //etl::handle<sinfg::Target_Tile> target_tile;
-       etl::handle<sinfg::Target> target;
+
+       //etl::handle<synfig::Target_Scanline> target_scanline;
+       //etl::handle<synfig::Target_Tile> target_tile;
+       etl::handle<synfig::Target> target;
 
        bool error;
        bool success;
-       
-       sinfg::ProgressCallback *cb;
-       
+
+       synfig::ProgressCallback *cb;
+
        sigc::signal<void> signal_stop_;
 
        Glib::Thread* render_thread;
@@ -75,13 +83,17 @@ class AsyncRenderer : public etl::shared_object, public sigc::trackable
        */
 public:
 
-       AsyncRenderer(etl::handle<sinfg::Target> target,sinfg::ProgressCallback *cb=0);
+       AsyncRenderer(etl::handle<synfig::Target> target,synfig::ProgressCallback *cb=0);
        virtual ~AsyncRenderer();
 
        void start();
        void stop();
        void pause();
        void resume();
+#ifdef SINGLE_THREADED
+       void rendering_progress();
+       bool updating;
+#endif
 
        bool has_error()const { return error; }
        bool has_success()const { return success; }
@@ -99,7 +111,7 @@ private:
        */
 
 protected:
-       
+
 };
 
 }; // END of namespace studio