X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fasyncrenderer.h;h=6678e4efa74655d5eba8b5a86d63bcc0a1639572;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=f9721c919f7a795ef9e067782c86160e1a2afe3f;hpb=3a3c4bca3a17137bec5d7960560934b91ef4146e;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/asyncrenderer.h b/synfig-studio/trunk/src/gtkmm/asyncrenderer.h index f9721c9..6678e4e 100644 --- a/synfig-studio/trunk/src/gtkmm/asyncrenderer.h +++ b/synfig-studio/trunk/src/gtkmm/asyncrenderer.h @@ -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 #include -#include -#include -#include +#include +#include +#include #include #include #include @@ -41,6 +43,12 @@ /* === 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 signal_success_; std::list activity_connection_list; - - //etl::handle target_scanline; - //etl::handle target_tile; - etl::handle target; + + //etl::handle target_scanline; + //etl::handle target_tile; + etl::handle target; bool error; bool success; - - sinfg::ProgressCallback *cb; - + + synfig::ProgressCallback *cb; + sigc::signal signal_stop_; Glib::Thread* render_thread; @@ -75,13 +83,17 @@ class AsyncRenderer : public etl::shared_object, public sigc::trackable */ public: - AsyncRenderer(etl::handle target,sinfg::ProgressCallback *cb=0); + AsyncRenderer(etl::handle 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